Bill-- I feel the same sort of frustrations with using Smalltalk to develop free (or commercial) software. All the Smalltalks have various issues -- just different ones. It is very frustrating.
Squeak has licensing issues and is not modular, but it is very cross-platform and has a big community. GST is modular and well licensed, but can be difficult to install and has a small community and the GUI is incomplete and not very complete or cross-platform (things continue to improve off course). VisualWorks is modular and very cross-platform but it isn't free-as-in-freedom (or even free-to-distribute-commercial as in buy it once). VW also lost ENVY which I liked. OTI had a great embedded Smalltalk but it is very proprietary. Dolphin is windows only and not free-as-in-freedom. Smalltalk/X has a sort-of-free license but not quite IIRC, and no history as a free software community. The Java Smalltalks are orphaned for the most part and incomplete (but cross-platform and mostly free, except for the Squeak-derived ones which suffer from the Squeak licensing issues). Because of their communities, it seems to me that GST and Squeak are the major players if you want a free platform going forward. You can see my comments on Squeak when I was active on the Squeak-dev list, say here: "Belling the cat of complexity (was: Ship it with Squeak)" http://liststest.squeakfoundation.org/pipermail/squeak-dev/2000-June/001371.html That was one reason I experimented with creating "Embedded Squeak" http://www.kurtz-fernhout.com/squeak/readme.txt (which was a headless Squeak, like GNU Smalltalk in some ways) though that code is so old don't use it. :-) You can see an example of my frustration with the Squeak licensing here: http://osdir.com/ml/lang.smalltalk.squeak.foundation/2003-04/msg00046.html http://osdir.com/ml/lang.smalltalk.squeak.foundation/2003-04/msg00045.html Even though they are (many years) trying to fix it now, I still question if they are getting a proper copyright assignment from *Disney* which has a copyright statement in the code. But I can hope. Beyond the licensing issue, here are other related links on Squeak issues from around 2000: http://liststest.squeakfoundation.org/pipermail/squeak-dev/2000-June/013722.html http://liststest.squeakfoundation.org/pipermail/squeak-dev/2000-June/021045.html http://liststest.squeakfoundation.org/pipermail/squeak-dev/2000-June/022013.html >From that middle link: "I'm sorry if I keep coming across as a broken record in most of my posts to the list over the past few years. A major thrust of what I say is always the same (perhaps becoming clearer over time as other people refine it). To become a serious platform, Squeak needs: * to be modular (namespaces, buildable image, maybe inter-VM/"object space" debugging), * to have at least one stable, easy to use, lockable, scalable GUI, * to be event driven, and * to interface easily with the outside world of code. " I wanted to fix the Squeak issues and was willing to put time into them (way back when) but the community just wasn't focused on fixing the deeper issues of modularity or licensing -- in general the responses on that topic were very discouraging -- and without fixing the license, the changes might be worthless, and without fixing modularity, they would likely or not just have been lost. In some ways I think Squeak killed Smalltalk more than Java: "Bambi Meets Godzilla: I watched Smalltalk die." http://www.oreillynet.com/ruby/blog/2006/01/bambi_meets_godzilla.html because Squeak was exciting and had the big names attached to it, but it also had this fundamental licensing problem which prevented any real progress or diversification as either "open source" or "free" software. I think if the licensing issues finally get cleaned up, we may see some real progress there. Alan Kay himself says he wants to be a Smalltalk/Squeak slayer and get something better -- but the Squeak community doesn't seem to understand or accept this; when ever I proposed doing things in that direction, it never went down well. http://lists.squeakfoundation.org/pipermail/squeakfoundation/2002-January/000357.html Which leaves only GST as a Smalltalk with a truly free license and somewhat of a community. I'm not sure how much of installability would be fixed by just having a bigger community for more testing -- I suspect it would somewhat (though the build process still seems overly convoluted). The other specific issues can be fixed, as Paolo says, and he seems willing to integrate back in the changes. I've wandered around the idea of rolling my own Smalltalk on Java, perhaps drawing from GST. But that was not straightforward because GST has (forgive me) some excessive internal complexity in how it defines itself which it was not easy to see how to map onto Java. I still think it is a good idea to have a Smalltalk that runs well on Java though -- ideally one that, like Python, runs on Java and runs on C. One possibility I have wondered about is the possibility of a Squeak-like GUI core for GST as an alternative to TK, where essentially you have one or more framebuffers (as windows) with event loops (GUI events) and draw emulated widgets. Then, as with Squeak, the only cross-platform stuff needed is a thin layer of a few hundred lines of C code to interface with bitmap windows on various OS's -- and that part could likely be borrowed from Squeak under some licensing arrangement, or at the very least, one can look at Squeak to see how the base interface to the OS is done (all that stuff except for the original old Mac GUI primitives in Squeak was contributed so direct relicensing is possible too). That's probably a few person-weeks of work at least to get one platform up like, say, GNU/Linux -- most of it making the basic widgets -- the actual platform specific code is probably only a day or two. I think that could be a big win for GST, to bring in some of the Squeak ideas onto its more solid base. But I always get distracted then by wanting prototypes (like in Self)... Although I am perhaps moving past that phase: http://patapata.sourceforge.net/critique.html In practice, in the past I've ended up using Python for lots of various reasons (licensing, libraries, easy syntax to sell to C++ or Java shops, Jython-Java integration, etc.). It also has always been free, which I think has direct implications in the type of community around it, see for example my comments on that here: "Python & Smalltalk (was Re: OLPC related: pyGTK)" http://mail.python.org/pipermail/edu-sig/2006-December/007476.html But I still miss the Smalltalk syntax which I think is still the best ever developed for the kind of way I generally want to write software. And the Python community simply does not get the value of "edit and continue" like coding in the debugger or why Python should be altered to do that, see for example: "More OLPC chatter (PataPata; Edit&Continue)" http://mail.python.org/pipermail/edu-sig/2007-July/007993.html That lack of "Edit and continue" brings down my productivity in Python compared to a good Smalltalk by a factor of three I guess. If there is one community and version of Smalltalk that has the potential to be more like Python, I would think it is probably GST more than any other one IMHO. When/if I ever get some spare cycles again though, I'm hoping to revisit the Smalltalk issue. If I could rewind time, I think it might have been better to have invested the time and emotion I put into Squeak and Python and Jython into improving GST (but drawing on ideas from Squeak and Python and Jython on Self). But I can't, so I'm stuck with things the way they are for now. :-) --Paul Fernhout _______________________________________________ help-smalltalk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-smalltalk
