SlideShare a Scribd company logo
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 know
Jeff Potts
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
mbaric
 
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
Jeffrey T. Fritz
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology Review
Zia Consulting
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1
Jeff Potts
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF Workshop
Ido Flatow
 
Server-side Java Programming
Server-side Java ProgrammingServer-side Java Programming
Server-side Java Programming
Chris 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 5
Steven Smith
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)
Amelina Ahmeti
 
Community day 2013 applied architectures
Community day 2013   applied architecturesCommunity day 2013   applied architectures
Community day 2013 applied architectures
Panagiotis Kefalidis
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
Jeff Potts
 
Php Intro
Php IntroPhp Intro
Cloud Orchestration is Broken
Cloud Orchestration is BrokenCloud Orchestration is Broken
Cloud Orchestration is Broken
Public Broadcasting Service
 
Intro To Alfresco Part 2
Intro To Alfresco Part 2Intro To Alfresco Part 2
Intro To Alfresco Part 2
Jeff 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 Data
Alfresco Software
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3
Jeff Potts
 
Laravel 4 presentation
Laravel 4 presentationLaravel 4 presentation
Laravel 4 presentation
Abu Saleh Muhammad Shaon
 
Performance Eye for the SQL Guy
Performance Eye for the SQL GuyPerformance Eye for the SQL Guy
Performance Eye for the SQL Guy
Warwick 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 2010
ESUG
 
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 Meaning
ESUG
 
Stable Squeak World Tour
Stable Squeak World TourStable Squeak World Tour
Stable Squeak World Tour
ESUG
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
ESUG
 
Virtual Pair Programming
Virtual Pair ProgrammingVirtual Pair Programming
Virtual Pair Programming
ESUG
 
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 Ecosystem
ESUG
 

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

Lotus Domino 8.5
Lotus Domino 8.5Lotus Domino 8.5
Lotus Domino 8.5
Lalit Sharma
 
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 6
Jeffrey 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 platform
Nuxeo
 
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
Ido Flatow
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
Razvan Cojocaru
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
guest0a62e8
 
1 Win7 For Devs Fund Search
1 Win7 For Devs Fund Search1 Win7 For Devs Fund Search
1 Win7 For Devs Fund Search
llangit
 
Javantura Zagreb 2014 - Vaadin - Peter Lehto
Javantura Zagreb 2014 - Vaadin - Peter LehtoJavantura Zagreb 2014 - Vaadin - Peter Lehto
Net framework
Net frameworkNet framework
Net framework
sumit1503
 
Getting Started with ASP.NET vNext
Getting Started with ASP.NET vNextGetting Started with ASP.NET vNext
Getting Started with ASP.NET vNext
Lohith Goudagere Nagaraj
 
SunMicroSystems
SunMicroSystemsSunMicroSystems
SunMicroSystems
Khasim Cise
 
Os Mcmahan
Os McmahanOs Mcmahan
Os Mcmahan
oscon2007
 
Emory Law School ITPC Presentation
Emory Law School ITPC PresentationEmory Law School ITPC Presentation
Emory Law School ITPC Presentation
benjamin.chapman
 
CSEUG introduction
CSEUG introductionCSEUG introduction
CSEUG introduction
ShapeBlue
 
Crossover
CrossoverCrossover
Crossover
szlwzl
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The Basics
Philip Langer
 
Sunstate
SunstateSunstate
Sunstate
Mohammed625
 
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
Testbells
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
Dr 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 programming
ESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG
 
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
ESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
 
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 results
ESUG
 
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
ESUG
 
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
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG
 
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
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG
 
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
ESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
 
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
ESUG
 

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

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 

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.