SlideShare a Scribd company logo
1 of 29
Download to read offline
What’s New In Cincom Smalltalk
Alan Knight (knight@acm.org)
Cincom Systems of Canada
About the Talk
Some New and Interesting Stuff
Things already shipping
Things in the next release
Longer term goals
Non-technical items (consolidation, releasing)
Both major features and selected smaller
items
Not nearly comprehensive
Some technical detail
ObjectStudio 8
Separate product
Shipping now-ish
Full Re-implementation
ObjectStudio semantics
ObjectStudio class libraries
Native Widgets (Windows)
Access to all VisualWorks facilities
Greatly improved VM performance
Object Studio 8 – Technical Challenges
VM issues for native widgets
Different semantics
Methods, assigning to parameters, {}
File-based
Solutions
Namespaces for classes
Different compiler, and code rewriting
Message rewriting, and code
transformation
ObjectStudio 8 – ObjectStudio Users
Ability to use VisualWorks tools where
they are an improvement
Access to class libraries
Web/Application Server
Web Services and Networking
Database
VM performance
Continuing Development
ObjectStudio 8 – VisualWorks Users
Native Widgets
Vista certification pending
COM and ActiveX support
“Legacy” connects
APPC
EHLLAPI
Virtual Machine
Intel Mac OS X Support
Shipped in 7.5
General Mac OS X Stability and
Performance
Improved in 7.5
Much continuing work
Single threaded VM
Mac OS X Virtual Machine
Single Threaded VM
Worse performance right now
Better performance once optimized
Much more stable
Much easier interface to Mac system
code
Virtual Machine
VM as DLL
Smalltalk doesn’t have to be in charge
Detailed planning stages
64-bit stability and exploiting features
E.g. hashing
Socket and THAPI performance
Meta-issues
Source code control
Consolidate platform-specific code
Regression test suite
Aside: Hashing
Major rework of hashes
Analyze existing hashes for better
distribution
String hash that takes into account all
characters
Single level hash for symbols
Note: Hash Analysis Tool in public
repository
Widgetry
Entirely new windowing framework
In progress for a long time
Version 1.0 shipping shortly
“Service Pack” release
Supported product
Widgetry - Benefits
Simpler, cleaner model
“Wrapper” system not comprehensively
updated for many years
More functionality
Better compatibility with other systems
Easier to support native widgets
(eventually)
Widgetry - Issues
Documentation not shipping with 1.0
Some web resources available
No UIBuilder or migration support
Tools migration slower than planned
Suitable for
Early adopters
Those with sophisticated UI requirements
that can’t be met with “Wrapper”
Seaside
Major new initiative
Potentially significant opening in web
development space
J2EE, .NET, Web Services extremely
heavyweight
Lighter frameworks, esp. Ruby on Rails
Outreach to non-Smalltalk developers
We can do better
Seaside - Web
Already a working VisualWorks port
Michel Bany
Integration with VisualWorks
Access to facilities
Supported
Cleaner portability
Simpler underlying layer – fewer choices
Easy to use out of the box
Seaside - Technical
Running on Opentalk-HTTP
Opentalk
General distributed programming and
network protocol support
Basis for e.g. Web Services, CORBA
Kept strongly in sync with Squeak
version
Tools for supporting easier interchange
Relational Database support
Aside: Networking improvements
Much better support for streaming
large content
HTTP Serving
Mail messages (SMTP, POP, IMAP)
Improved mail support in general
Firewall/NAT improvements
Seaside - Database
Be able to use Relational DBs easily
Connectivity - MySQL support
Parallels Ruby on Rails “ActiveRecord”
Uses Glorp as underlying mapping layer
Automatic for simple schemas
Be able to use database information
Scale up to more complex schemas
Better performance
Much more about this tomorrow
Deployment
Make it much easier
Various Runtime Packager improvements
Make Runtime Packager less necessary
Move functionality into base, be dynamic
» Headless
» Runtime
» Error Logging
Smaller base image
Alternative ways of running code
Scripting
Do more without requiring the environment
One liners from the command line
Write scripts in files
Entire programs in files
Scripting extensions
System more tolerant of headless mode
Standard I/O
Experimental Phases
“Scripting Support” in public repository
Internationalization
Everything should work, regardless of
locale and character set.
Areas
Character display/fonts
Character input
Filesystems
Mac OS X input manager
Only Mac OS 9 right now
Current Windows “Unicode Support”
Store – Shadow Compilation
Shadow compilation
“Atomic loading”
Shipping in 7.5, but turned off
Can’t yet load everything
» Method order dependency
» Custom compilers
» Semantics of the code (e.g. system overrides)
Store (7.5)
Merge tool UI overhaul
MSAccess officially supported
StoreForMSAccess
Logging
Records what was loaded from the database
By a 7.5 or later client
Table TW_LoadRecord
Overrides within Bundles
Setting – required for ObjectStudio 8
DLL/CC
Major overhaul
Still in early stages
Entirely new parser (SMACC based)
Lighter weight
Get rid of the strange classes
Loading/saving issues
Examining C++ connectivity options
DLL/CC - #linkedIn
Small, but interesting, in 7.5
If the library name is #linkedIn, it looks
for the library in the current
executable.
Very useful for e.g. libc functions
Some small items
Dependents, events, removed from
base collections (7.5)
They aren’t supported anyway
Large performance increase
Avoids bottleneck
Databases
ODBC connection pooling, charsets
Oracle scrollable cursors
More smaller items
Gecko support for web browser plugin
(preview, mostly because of doc)
Many COM connect improvements
UUID generation
Announcements
/ and  as Filename messages
#any, #sort, #sorted
Splash screen off by default
Upcoming
Many browser and tool improvements
See Travis for details
DefaultPackageNamespaces
Set a package’s #namespace property
Class extensions are compiled in that
namespace
The “inspect” problem.
The End
Questions?

More Related Content

What's hot

Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should knowJeff Potts
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5mbaric
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformJeffrey T. Fritz
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewZia Consulting
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1Jeff Potts
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF WorkshopIdo Flatow
 
Server-side Java Programming
Server-side Java ProgrammingServer-side Java Programming
Server-side Java ProgrammingChris Schalk
 
A Whirldwind Tour of ASP.NET 5
A Whirldwind Tour of ASP.NET 5A Whirldwind Tour of ASP.NET 5
A Whirldwind Tour of ASP.NET 5Steven Smith
 
Community day 2013 applied architectures
Community day 2013   applied architecturesCommunity day 2013   applied architectures
Community day 2013 applied architecturesPanagiotis Kefalidis
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for DevelopersJeff Potts
 
Intro To Alfresco Part 2
Intro To Alfresco Part 2Intro To Alfresco Part 2
Intro To Alfresco Part 2Jeff Potts
 
Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]vaishalisahare123
 
Alfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Software
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3Jeff Potts
 
Performance Eye for the SQL Guy
Performance Eye for the SQL GuyPerformance Eye for the SQL Guy
Performance Eye for the SQL GuyWarwick Rudd
 

What's hot (19)

Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology Review
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF Workshop
 
Server-side Java Programming
Server-side Java ProgrammingServer-side Java Programming
Server-side Java Programming
 
A Whirldwind Tour of ASP.NET 5
A Whirldwind Tour of ASP.NET 5A Whirldwind Tour of ASP.NET 5
A Whirldwind Tour of ASP.NET 5
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)
 
Community day 2013 applied architectures
Community day 2013   applied architecturesCommunity day 2013   applied architectures
Community day 2013 applied architectures
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
 
Php Intro
Php IntroPhp Intro
Php Intro
 
Cloud Orchestration is Broken
Cloud Orchestration is BrokenCloud Orchestration is Broken
Cloud Orchestration is Broken
 
Intro To Alfresco Part 2
Intro To Alfresco Part 2Intro To Alfresco Part 2
Intro To Alfresco Part 2
 
Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]
 
Alfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo Data
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3
 
Laravel 4 presentation
Laravel 4 presentationLaravel 4 presentation
Laravel 4 presentation
 
Performance Eye for the SQL Guy
Performance Eye for the SQL GuyPerformance Eye for the SQL Guy
Performance Eye for the SQL Guy
 

Viewers also liked

Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010ESUG
 
ESUG 2010 Welcome!
ESUG 2010 Welcome!ESUG 2010 Welcome!
ESUG 2010 Welcome!ESUG
 
Blogs and RSS – Trawling the Internet for Meaning
Blogs and RSS – Trawling the Internet for MeaningBlogs and RSS – Trawling the Internet for Meaning
Blogs and RSS – Trawling the Internet for MeaningESUG
 
Stable Squeak World Tour
Stable Squeak World TourStable Squeak World Tour
Stable Squeak World TourESUG
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0ESUG
 
Virtual Pair Programming
Virtual Pair ProgrammingVirtual Pair Programming
Virtual Pair ProgrammingESUG
 
Towards a Taxonomy of Unit Tests
Towards a Taxonomy of Unit Tests Towards a Taxonomy of Unit Tests
Towards a Taxonomy of Unit Tests ESUG
 
Cava := Eclipse asSmalltalkPlugin.
Cava := Eclipse asSmalltalkPlugin.Cava := Eclipse asSmalltalkPlugin.
Cava := Eclipse asSmalltalkPlugin.ESUG
 
The Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemThe Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemESUG
 

Viewers also liked (9)

Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010
 
ESUG 2010 Welcome!
ESUG 2010 Welcome!ESUG 2010 Welcome!
ESUG 2010 Welcome!
 
Blogs and RSS – Trawling the Internet for Meaning
Blogs and RSS – Trawling the Internet for MeaningBlogs and RSS – Trawling the Internet for Meaning
Blogs and RSS – Trawling the Internet for Meaning
 
Stable Squeak World Tour
Stable Squeak World TourStable Squeak World Tour
Stable Squeak World Tour
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
 
Virtual Pair Programming
Virtual Pair ProgrammingVirtual Pair Programming
Virtual Pair Programming
 
Towards a Taxonomy of Unit Tests
Towards a Taxonomy of Unit Tests Towards a Taxonomy of Unit Tests
Towards a Taxonomy of Unit Tests
 
Cava := Eclipse asSmalltalkPlugin.
Cava := Eclipse asSmalltalkPlugin.Cava := Eclipse asSmalltalkPlugin.
Cava := Eclipse asSmalltalkPlugin.
 
The Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemThe Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the Ecosystem
 

Similar to What's New in Cincom Smalltalk

Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6Jeffrey West
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overviewRazvan Cojocaru
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devsguest0a62e8
 
1 Win7 For Devs Fund Search
1 Win7 For Devs Fund Search1 Win7 For Devs Fund Search
1 Win7 For Devs Fund Searchllangit
 
Net framework
Net frameworkNet framework
Net frameworksumit1503
 
Emory Law School ITPC Presentation
Emory Law School ITPC PresentationEmory Law School ITPC Presentation
Emory Law School ITPC Presentationbenjamin.chapman
 
CSEUG introduction
CSEUG introductionCSEUG introduction
CSEUG introductionShapeBlue
 
Crossover
CrossoverCrossover
Crossoverszlwzl
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The BasicsPhilip Langer
 
Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Testbells
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDr Ganesh Iyer
 

Similar to What's New in Cincom Smalltalk (20)

Lotus Domino 8.5
Lotus Domino 8.5Lotus Domino 8.5
Lotus Domino 8.5
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
 
1 Win7 For Devs Fund Search
1 Win7 For Devs Fund Search1 Win7 For Devs Fund Search
1 Win7 For Devs Fund Search
 
Javantura Zagreb 2014 - Vaadin - Peter Lehto
Javantura Zagreb 2014 - Vaadin - Peter LehtoJavantura Zagreb 2014 - Vaadin - Peter Lehto
Javantura Zagreb 2014 - Vaadin - Peter Lehto
 
Net framework
Net frameworkNet framework
Net framework
 
Getting Started with ASP.NET vNext
Getting Started with ASP.NET vNextGetting Started with ASP.NET vNext
Getting Started with ASP.NET vNext
 
SunMicroSystems
SunMicroSystemsSunMicroSystems
SunMicroSystems
 
Os Mcmahan
Os McmahanOs Mcmahan
Os Mcmahan
 
Emory Law School ITPC Presentation
Emory Law School ITPC PresentationEmory Law School ITPC Presentation
Emory Law School ITPC Presentation
 
CSEUG introduction
CSEUG introductionCSEUG introduction
CSEUG introduction
 
Crossover
CrossoverCrossover
Crossover
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The Basics
 
Sunstate
SunstateSunstate
Sunstate
 
Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

What's New in Cincom Smalltalk

  • 1. What’s New In Cincom Smalltalk Alan Knight (knight@acm.org) Cincom Systems of Canada
  • 2. About the Talk Some New and Interesting Stuff Things already shipping Things in the next release Longer term goals Non-technical items (consolidation, releasing) Both major features and selected smaller items Not nearly comprehensive Some technical detail
  • 3. ObjectStudio 8 Separate product Shipping now-ish Full Re-implementation ObjectStudio semantics ObjectStudio class libraries Native Widgets (Windows) Access to all VisualWorks facilities Greatly improved VM performance
  • 4. Object Studio 8 – Technical Challenges VM issues for native widgets Different semantics Methods, assigning to parameters, {} File-based Solutions Namespaces for classes Different compiler, and code rewriting Message rewriting, and code transformation
  • 5. ObjectStudio 8 – ObjectStudio Users Ability to use VisualWorks tools where they are an improvement Access to class libraries Web/Application Server Web Services and Networking Database VM performance Continuing Development
  • 6. ObjectStudio 8 – VisualWorks Users Native Widgets Vista certification pending COM and ActiveX support “Legacy” connects APPC EHLLAPI
  • 7. Virtual Machine Intel Mac OS X Support Shipped in 7.5 General Mac OS X Stability and Performance Improved in 7.5 Much continuing work Single threaded VM
  • 8. Mac OS X Virtual Machine Single Threaded VM Worse performance right now Better performance once optimized Much more stable Much easier interface to Mac system code
  • 9. Virtual Machine VM as DLL Smalltalk doesn’t have to be in charge Detailed planning stages 64-bit stability and exploiting features E.g. hashing Socket and THAPI performance Meta-issues Source code control Consolidate platform-specific code Regression test suite
  • 10. Aside: Hashing Major rework of hashes Analyze existing hashes for better distribution String hash that takes into account all characters Single level hash for symbols Note: Hash Analysis Tool in public repository
  • 11. Widgetry Entirely new windowing framework In progress for a long time Version 1.0 shipping shortly “Service Pack” release Supported product
  • 12. Widgetry - Benefits Simpler, cleaner model “Wrapper” system not comprehensively updated for many years More functionality Better compatibility with other systems Easier to support native widgets (eventually)
  • 13. Widgetry - Issues Documentation not shipping with 1.0 Some web resources available No UIBuilder or migration support Tools migration slower than planned Suitable for Early adopters Those with sophisticated UI requirements that can’t be met with “Wrapper”
  • 14. Seaside Major new initiative Potentially significant opening in web development space J2EE, .NET, Web Services extremely heavyweight Lighter frameworks, esp. Ruby on Rails Outreach to non-Smalltalk developers We can do better
  • 15. Seaside - Web Already a working VisualWorks port Michel Bany Integration with VisualWorks Access to facilities Supported Cleaner portability Simpler underlying layer – fewer choices Easy to use out of the box
  • 16. Seaside - Technical Running on Opentalk-HTTP Opentalk General distributed programming and network protocol support Basis for e.g. Web Services, CORBA Kept strongly in sync with Squeak version Tools for supporting easier interchange Relational Database support
  • 17. Aside: Networking improvements Much better support for streaming large content HTTP Serving Mail messages (SMTP, POP, IMAP) Improved mail support in general Firewall/NAT improvements
  • 18. Seaside - Database Be able to use Relational DBs easily Connectivity - MySQL support Parallels Ruby on Rails “ActiveRecord” Uses Glorp as underlying mapping layer Automatic for simple schemas Be able to use database information Scale up to more complex schemas Better performance Much more about this tomorrow
  • 19. Deployment Make it much easier Various Runtime Packager improvements Make Runtime Packager less necessary Move functionality into base, be dynamic » Headless » Runtime » Error Logging Smaller base image Alternative ways of running code
  • 20. Scripting Do more without requiring the environment One liners from the command line Write scripts in files Entire programs in files Scripting extensions System more tolerant of headless mode Standard I/O Experimental Phases “Scripting Support” in public repository
  • 21. Internationalization Everything should work, regardless of locale and character set. Areas Character display/fonts Character input Filesystems Mac OS X input manager Only Mac OS 9 right now Current Windows “Unicode Support”
  • 22. Store – Shadow Compilation Shadow compilation “Atomic loading” Shipping in 7.5, but turned off Can’t yet load everything » Method order dependency » Custom compilers » Semantics of the code (e.g. system overrides)
  • 23. Store (7.5) Merge tool UI overhaul MSAccess officially supported StoreForMSAccess Logging Records what was loaded from the database By a 7.5 or later client Table TW_LoadRecord Overrides within Bundles Setting – required for ObjectStudio 8
  • 24. DLL/CC Major overhaul Still in early stages Entirely new parser (SMACC based) Lighter weight Get rid of the strange classes Loading/saving issues Examining C++ connectivity options
  • 25. DLL/CC - #linkedIn Small, but interesting, in 7.5 If the library name is #linkedIn, it looks for the library in the current executable. Very useful for e.g. libc functions
  • 26. Some small items Dependents, events, removed from base collections (7.5) They aren’t supported anyway Large performance increase Avoids bottleneck Databases ODBC connection pooling, charsets Oracle scrollable cursors
  • 27. More smaller items Gecko support for web browser plugin (preview, mostly because of doc) Many COM connect improvements UUID generation Announcements / and as Filename messages #any, #sort, #sorted Splash screen off by default
  • 28. Upcoming Many browser and tool improvements See Travis for details DefaultPackageNamespaces Set a package’s #namespace property Class extensions are compiled in that namespace The “inspect” problem.