This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Ambrai Smalltalk for Mac OS X
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
It's small, it's portable. The VM is 68k compiled, the image (with all source) is 3MB. The VM is implemented in C++ and has been run on other platforms than Mac OS X. Minimal set of primitives, reclaims circular weak by key refs. Given the small number of primitives, platform ports are possible and not too hard. Have run it on Windows and older versions of Mac OS.
Native Framwork
interfaces to shared libs
automatic interface generation from C headers
C code translated one to one to ST equivalent
functions and callbacks
type checking
bounds checking
Native calls can call back into Smalltalk. The VM is single threaded from an OS perspective.
Now a look at the system - the browsere looks like a VW browser without Store loaded. Some of the 'system' level code (Behavior, Blocks, etc) is a bit sparse, but it is a new implementation.
Smalltalk Environment
no development time state or behavior in kernel classes
"SmalltalkEnvironment current" - gets current state info
Modular design of the entire system - tools, app, GUI, environment, kernel, native ifc, VM and libs - cleanly separated. For instance, GUI can be cleanly removed
Generating a stanalone image - scripts to remove unneeded classes (is there wizard type support for that? Not clear).
Now Dorin is talking about the UI framework. The goal - provide a consistent, intuitive API over the Mac API (which is confusing and hard to use, in his opinion. I wouldn't know :) ). The GUI framework is using the kind of composition pattern you would expect - doesn't look that different from what I've seen in VW (at the 30,000 foot level, mind you). Resource management was critical as well - need to manage the lifecycle of the widgets, since it's all native. Heh - the demo ended with the screen saver coming up after he didn't touch the kbd for awhile :)
Questions Why did you do it? - To learn, interested in the problem. We were just interested in the problem Is it downloadable? - Alpha available within a month. Probably free for personal use, will probably follow the Dolphin model of sales Plan to make commercial then? - yes GUI Builder? - I have one for Dolphin, will port it to this How long have you been working on this? - Started in 1998, 2 years. Broke for 2 years, then started again. Mostly nights/weekends, started pushing once the talk for StS got accepted. Any decent sized apps done? - have ODBC, probably will port GLORP. Have an app they use to manage tasks for this project With non-moving objects, is the allocator more complex? - some fragmentation issues, but have had image running for weeks. Compact memory on image save. What is your commercial model? - Dorin was mostly a Windows guy - other dev environments for Mac are expensive, and/or limited. Taragetting the hobbyists and smaller developers who do not want to spend the "big bucks". Cooperating with other ST vendors (small) like Dolphin? - possible, but needs exploration. Eliot - suggests that they partner with Dolphin