18 October, 2006

A Pas-de-deux, in three parts

Part the first: An alternative to Squeak.

My forays into the world of the Smalltalk language are proving to be rather interesting. About seven years ago, a company called Cincom took over the rights to VisualWorks, another Smalltalk environment. They have commercial licences, of course. What made me sit up and take notice is that they also have a non-commercial licence for the exact same product. The License states you’re not allowed to use it in the running of a business, or to provide products that you would ordinarily charge for. In my case, as I do no production software anyhow, I’m hardly likely to choose to charge for what I do produce. So, I took up the non-commercial licence option, and downloaded VisualWorks and a goodly lot of goodies that go with it. It’s certainly different than Squeak, in that it feels more integrated, and doesn’t have its own desktop, instead electing to create separate windows on the existing desktop, whether it be a Windows platform, MacOS, MacOS X, Solaris or Linux. There has obviously been a lot of work put into the product, as it seems to flow better than Squeak does, and given the length of time that VisualWorks has been around, I would expect that. There are even tutorials available for recent versions (currently released version is 7.4.1, hot off the presses back in May 2006) though some links on this list cannot be reached. I have noted that the wiki occasionally goes offline. I do of course have free books addressing VisualWorks (and Squeak too) but they tend to focus on the interface of VisualWorks 2.0, which is quite an old version in comparison. Still, the books will bear reading, because they will hopefully be future-proof enough for me to actually learn something about the current version I’m playing with. The books are also a good way of introducing the reader to the principles of Smalltalk in general, not just to the respective products.

Part the second: An agreement not to disclose.

So far I’ve found out that there is no decent web browser project that uses ST, and the one that has got the furthest has an NDA attached to it. As I haven’t signed it (and am unlikely to, at this rate), I can’t say what is actually IN the web browser code, and even if I had signed, I still couldn’t tell you (I’d have to kill you afterwards). From the look of it, the project’s not strictly a web browser, more one of those core components that everybody needs, or will soon if they only but knew it. If I were to take up the NDA, it would mean that I couldn’t discuss the code of the component with anyone whom I couldn’t verify as having also signed the same NDA. Ironically, this includes the author. Effectively, I’d have to request from my lawyer that his lawyer faxed over the document stating his agreement to his own NDA. Frankly, I can’t be bothered with all that unless it was mandatory. I’m beginning to see why rms feels the way he does. Ordinarily, I would have no trouble in agreeing not to disclose. After all, I effectively agreed to several when I downloaded other programs onto my computer, such as QuickTime, IE, Macromedia Flash, and others of their ilk. I don’t have to distribute those, and I’m not allowed to even discover their source code, so I can readily agree to use but not disseminate. However, in the Smalltalk world, things are different. In the Smalltalk world, you can see all the source code for applications loaded into the image. For anyone wanting to protect any intellectual property from being ripped off and used in other products, they require others using that IP to sign agreements. I’m a bit wary of that, given the length of time they ask for this information to be kept hush-hush for. I seriously expect the product (as such) to be sold as a product on the market not unlike most modern software, however, I’m assured this isn’t the case. I will have to wait and see. If it becomes available under a more liberal agreement, I might then be able to use it; until then, I’ll have to be one of the have-nots.

Finalé in one part.

Given the state of play with Smalltalk web browsers, I think I won’t be holding my breath for anything fantastic. Scamper (the web browser commonly available in Squeak) is nearly as bare—bones as you can get a browser to be and still support images and table layout. TwoFlower, the browser available for VisualWorks, has had the plug pulled on it, doesn’t work on my current setup and is not being actively developed any more, since the author wants to concentrate on the new coding project. I haven’t seen any others except in projects like Inferno and Plan 9, which are themselves rather primitive and prone to crashing at inopportune moments, like when loading a page, for example. And the mere fact that Smalltalk uses a VM to interact with the user means that things will quite possibly be significantly slower than on a binary-code platform, even if Just-In-Time conversion to binary code from bytecode takes place. I did manage to get an IRC client that looks good though. This wasn’t actually going to be a talk about web browsers, more my conclusions about Smalltalk environments in general; I guess that will have to wait until next time.

No comments: