I gave my roadmap talk at 2:00 pm; you'll have to wait for the podcast to get the lowdown on that. Up now, we have Andreas Hiltner and Georg Heeg, who are talking about the ObjectStudio 8 project. ObjectStudio 8 is ObjectStudio running on the VW VM (actually, inside VW).
First, a brief history - VW descends (like Squeak) from the original Smalltalk-80 at PARC. ObjectStudio was a greenfield Smalltalk (originally Enfin) aimed specifically at Enterprise users (easy DB hookups, mainframe connectivity, etc). Here's Georg and Andreas getting set up:
Smalltalk has classically been a great system for modeling - so we can model one Smalltalk system in another. VW has the higher performance VM, so we modelled ObjectStudio inside VW. So ObjectStudio and VW live together in the same image, meaning that you can use all the capabilities of both environments inside one codebase. The goal was to make it possible to use existing OST and VW code seamlessly; we've gotten pretty close to that. In most cases, there's only minimal porting necessary for existing ObjectStudio projects.
So the history of this project:
- June 2005: First "Alpha" - not tested
- Then we started testing, fixing compatibility issues (or deciding to use something else. For instance: BinaryObjectStreams are gone, you need to use BOSS instead)
- December 2006: We've been working with some early access customers to test on real applications
Now Georg is going over the basic approach taken. The idea was to model OST in VW, preserving syntax and semantics. This meant:
- Created an ObjectStudioCompiler
- Embedded in a namespace
- Shared much of the kernel code (collections, magnitude, etc)
The other goal was to make OST global names act like they did in older ObjectStudio. One of the interesting things is that ObjectStudio 8 can export code the same way as classic ObjectStudio always has - which means that the source code control strategy OST developers have always used will continue to work.
So we now have:
- One installation
- One VM
- Two sets of DLLs
- One image
- Decision at startup as to what you want to use
Another interesting fallout of this project is the way the event loop is handled: classically, the event loop in VW has been in the VM, and a subset of events have been pumped up to the image. That's been changed: the event loop is now image level (i.e., in Smalltalk). There's a positive side to this even if you aren't an ObjectStudio developer; you can create your own event handlers at the Smalltalk level now.
On source code, ObjectStudio developers can do one of two things: they can use Store, the system used by most VW shops, or use the SmalltalkArchives, which allows file based storage (one file per application). You can also write out class files as you always have in classic OST.
So our schedule: we are entering open beta this winter, and will have a supported release of ObjectStudio 8 this summer (2007). Some known issues:
- Immutability (of literals)
- Declaring Pool Dictionaries
- You must export modeling tool definitions in ASCII (binary format is incompatible)
Another thing to note: The Modeling Tool will not be supported in the initial release of ObjectStudio 8 - we would appreciate feedback from the Smalltalk community on this.
The cool thing is that everyone benefits. OST developers gain access to all the components of VW (WS*, web apps, etc, etc). VW developers get native GUIs on Windows (if they rewrite the GUI using OST frameworks). They also get access to mainframe connectivity.
In OST 8, the VW browser and debugger are used, while the OST inspector and workspace tools are still around.