What’s New In Cincom Smalltalk

Post on 20-May-2015

892 views 4 download

Tags:

description

What’s New In Cincom Smalltalk. Alan Knight. ESUG 2007, Lugano

transcript

What’s New In Cincom Smalltalk

Alan Knight (knight@acm.org)Cincom Systems of Canada

About the Talk

Some New and Interesting StuffThings already shippingThings in the next releaseLonger term goalsNon-technical items (consolidation, releasing)

Both major features and selected smalleritemsNot nearly comprehensiveSome technical detail

ObjectStudio 8

Separate productShipping now-ish

Full Re-implementationObjectStudio semanticsObjectStudio class librariesNative Widgets (Windows)Access to all VisualWorks facilitiesGreatly improved VM performance

Object Studio 8 – Technical Challenges

VM issues for native widgetsDifferent semantics

Methods, assigning to parameters, {}File-basedSolutions

Namespaces for classesDifferent compiler, and code rewritingMessage rewriting, and codetransformation

ObjectStudio 8 – ObjectStudio Users

Ability to use VisualWorks tools wherethey are an improvementAccess to class libraries

Web/Application ServerWeb Services and NetworkingDatabase

VM performanceContinuing Development

ObjectStudio 8 – VisualWorks Users

Native WidgetsVista certification pendingCOM and ActiveX support“Legacy” connects

APPCEHLLAPI

Virtual Machine

Intel Mac OS X SupportShipped in 7.5

General Mac OS X Stability andPerformance

Improved in 7.5Much continuing workSingle threaded VM

Mac OS X Virtual Machine

Single Threaded VMWorse performance right nowBetter performance once optimizedMuch more stableMuch easier interface to Mac systemcode

Virtual Machine

VM as DLLSmalltalk doesn’t have to be in chargeDetailed planning stages

64-bit stability and exploiting featuresE.g. hashing

Socket and THAPI performanceMeta-issues

Source code controlConsolidate platform-specific codeRegression test suite

Aside: Hashing

Major rework of hashesAnalyze existing hashes for betterdistributionString hash that takes into account allcharactersSingle level hash for symbolsNote: Hash Analysis Tool in publicrepository

Widgetry

Entirely new windowing frameworkIn progress for a long timeVersion 1.0 shipping shortly

“Service Pack” releaseSupported product

Widgetry - Benefits

Simpler, cleaner model“Wrapper” system not comprehensivelyupdated for many years

More functionalityBetter compatibility with other systemsEasier to support native widgets(eventually)

Widgetry - Issues

Documentation not shipping with 1.0Some web resources available

No UIBuilder or migration supportTools migration slower than plannedSuitable for

Early adoptersThose with sophisticated UI requirementsthat can’t be met with “Wrapper”

Seaside

Major new initiativePotentially significant opening in webdevelopment space

J2EE, .NET, Web Services extremelyheavyweightLighter frameworks, esp. Ruby on Rails

Outreach to non-Smalltalk developersWe can do better

Seaside - Web

Already a working VisualWorks portMichel Bany

Integration with VisualWorksAccess to facilitiesSupportedCleaner portabilitySimpler underlying layer – fewer choicesEasy to use out of the box

Seaside - Technical

Running on Opentalk-HTTPOpentalk

General distributed programming andnetwork protocol supportBasis for e.g. Web Services, CORBA

Kept strongly in sync with Squeakversion

Tools for supporting easier interchangeRelational Database support

Aside: Networking improvements

Much better support for streaminglarge content

HTTP ServingMail messages (SMTP, POP, IMAP)

Improved mail support in generalFirewall/NAT improvements

Seaside - Database

Be able to use Relational DBs easilyConnectivity - MySQL support

Parallels Ruby on Rails “ActiveRecord”Uses Glorp as underlying mapping layerAutomatic for simple schemasBe able to use database informationScale up to more complex schemasBetter performanceMuch more about this tomorrow

Deployment

Make it much easierVarious Runtime Packager improvementsMake Runtime Packager less necessaryMove functionality into base, be dynamic

» Headless» Runtime» Error Logging

Smaller base imageAlternative ways of running code

Scripting

Do more without requiring the environmentOne liners from the command lineWrite scripts in filesEntire programs in files

Scripting extensionsSystem more tolerant of headless modeStandard I/OExperimental Phases

“Scripting Support” in public repository

Internationalization

Everything should work, regardless oflocale and character set.Areas

Character display/fontsCharacter inputFilesystems

Mac OS X input managerOnly Mac OS 9 right now

Current Windows “Unicode Support”

Store – Shadow Compilation

Shadow compilation“Atomic loading”Shipping in 7.5, but turned offCan’t yet load everything

» Method order dependency» Custom compilers» Semantics of the code (e.g. system overrides)

Store (7.5)

Merge tool UI overhaulMSAccess officially supported

StoreForMSAccessLogging

Records what was loaded from the databaseBy a 7.5 or later clientTable TW_LoadRecord

Overrides within BundlesSetting – required for ObjectStudio 8

DLL/CC

Major overhaulStill in early stagesEntirely new parser (SMACC based)Lighter weightGet rid of the strange classes

Loading/saving issuesExamining C++ connectivity options

DLL/CC - #linkedIn

Small, but interesting, in 7.5If the library name is #linkedIn, it looksfor the library in the currentexecutable.Very useful for e.g. libc functions

Some small items

Dependents, events, removed frombase collections (7.5)

They aren’t supported anywayLarge performance increaseAvoids bottleneck

DatabasesODBC connection pooling, charsetsOracle scrollable cursors

More smaller items

Gecko support for web browser plugin(preview, mostly because of doc)Many COM connect improvementsUUID generationAnnouncements/ and \ as Filename messages#any, #sort, #sortedSplash screen off by default

Upcoming

Many browser and tool improvementsSee Travis for details

DefaultPackageNamespacesSet a package’s #namespace propertyClass extensions are compiled in thatnamespaceThe “inspect” problem.

The End

Questions?