Alan Kay wrote:
It would be great for someone to do Elastolab in Squeak!
Cheers,
Alan
True - but on the other hand I wish that David's work is an economic success, too. Smalltalk needs to be a commercially viable platform, not just a great toolbox and environment for thinkers and tinkerers. I and many others who don't want to succumb to the dark side (I won't mention that dreaded J-word here) depend on Smalltalk jobs which pay. And there are quite some who don't have such jobs, sadly. That should not discourage anyone from trying to do physics simulation stuff in Squeak to provide such a framework for free - however just copying ElastoLab does not smell right to me.
In theory, the ElastoLab physics code should translate to Squeak with only the obvious syntactic changes. The UI code is well separated and would be fairly easy to port to Squeak. The custom controllers would have to be re-worked, but shouldn't be very hard.
From a practical point of view, porting to Squeak is not a priority for me. I have a solution working in VisualWorks (with which I happen to be more familiar) and porting to Squeak offers me few advantages. I may at some point release the physics code as freeware and allow people to build their own UI's on top.
If anyone would like technical details on implementing their own physics simulation code, I would be more than happy to offer advice and references and to chat about implementation approaches that work and ones that don't. You can contact me at david@simberon.com.
As far as Windows-only is concerned, VisualWorks comes from the same breed as Squeak, and is binary portable to platforms such as Linux and Mac, too. I don't know how deeply integrated with Windows ElastoLab actually is, but it should be possible to make a Mac or Linux port with a reasonable amount of effort. Doing Windows first is a reasonable economic decision (most kids with computers will have Wintel stuff on their desks), but following up with Mac and Linux would clearly demonstrate that Smalltalk is the "true" write once, run everywhere language :-)
I would guess that 99% of ElastoLab is pure portable Smalltalk. There are only three things stopping me from getting a Mac or Linux port working:
1) The interface to play multiple sounds at once uses DirectX which is Windows-specific. I'd have to replace that with the Mac or Linux equivalent. 2) The interface to Windows HTML Help files is Windows-specific. 3) I use the Windows registry for the purposes of maintaining CD-ROM keys that enable ElastoLab to run in full non-demo mode.
Other than that, I can see no obstacles to getting the port to work. I haven't done it because I don't have a Mac and I don't know the environment well enough to do the port. I also felt that if I couldn't get ElastoLab to be successful on Windows, adding Mac and Linux versions wouldn't make the difference. If ElastoLab is successful on the Windows platform, I could easily improve the success by adding Mac and Linux versions. The real risk is whether this kind of product will be accepted in the market place. So far, it's looking pretty dreary. I'm waiting for the release of the next version before I go all out in promotion, but initial sales are on the low side of dismal. I think I'm in for an uphill battle for a program that's not a game, not a simulation like SimCity, and not a physics tutorial. I have a hard time explaining to people what it is and what category it fits into. I think it's a lot of fun, but it's hard to convey that to people.
(P.S. If anyone out there has Mac skills and would be interested in working on a port to the Mac, contact me and we can make arrangements to get it done.)
David Buck Simberon Inc. www.simberon.com
I'm not sure this has been mentioned, but David Buck wrote a nice essay about why he switched from C++ to Smalltalk for the UI part of ElastoLab. He also describes how he uses an update downloading mechanism like Squeak's to get bug fixes to his users. See:
http://www.whysmalltalk.com/smalltalkcomparisons/elastolab.htm
Incidentally, the program is only US $20, which is very reasonable. If I had a PC, I'd buy a copy. He also offers a free 7-day evaluation of the full program using a rather clever server-based scheme to revoke the privelege after the seven days expire.
I'd love to see David succeed. It would encourage more of us to build and sell cool and interesting software written in Smalltalk.
-- John
squeak-dev@lists.squeakfoundation.org