I pointed to this article by Brandon Werner a few days ago, but I thought it deserved more attention. First things first - don't let his title mislead you about Cincom Smalltalk; I addressed longevity here a few weeks ago. Bottom line: Cincom is doing a lot of work on both ObjectStudio and VisualWorks. So anyway, let's take a look at some of the high points he brought up:
If you visit their website, you’ll find an active community, conferences and seminars (Smalltalk Solutions Conference looks cool), and even a Smalltalk Digest. Their Smalltalk products are available for free for non-commercial use, and can be downloaded here. Amazingly, there are versions of Windows, Mac OSX, Linux, Solaris and other unixes (ObjectStudio is Windows only, tsk tsk). In fact, the complete system that Cincom has deployed around Smalltalk is breath-taking in it’s completeness.
It includes such 21st century enterprise features like:
- VisualWorks Application Server - with it’s own servlet container and JSP or ASP tags and tag libraries
- Store - Not the best named feature, it’s a complete code management and control application
- VisualWorks itself - with code refactoring and other goodies
- Opentalk - Webservice interoperability with SOAP and UDDI
- Strong Database Integration - table to object integration for all major databases (except MySQL.. a big hole). Hibernate like and powerful.
- Object Engine/Virtual Machine - What it says, a powerful VM that allows for neat immutability that allows for object sharing across VMs as well as better garbage collection algorithms.
Needless to say when I first downloaded it from Cincom’s website after playing with Squeak a great deal, I had no idea I was downloading what amounted to a complete J2EE-like application environment. I didn’t even know it existed. There is a lot to play with, and I’m impressed Cincom has done so much work on the Smalltalk platform.
Yes, the VisualWorks environment in Cincom Smalltalk is a large, enterprise class platform - and we manage it with a much smaller team than Sun allocates to Java, or than Microsoft allocates to .NET. Something to do with higher productivity, perhaps.
I do need to add a few clarifications to the above. MySQL: It's on our radar, and we hope to have support out in the next major release. There are a lot of other priorities on our plate though; in the meantime, there's an implementation in the public store that you should be able to make use of.
The last point about sharing objects across VM's needs clarification as well. We are in the process of delivering 64 bit platforms now, and those new VM's will - when they come into full support - offer shared perm space. That's a reference to one of the zones of memory managed by the VM. The upshot is, objects that are shared (like the base class libraries) will be shareable across mutiple running Smalltalk images. That will give multi-image application servers a smaller footprint on the server, and help with overall scalability. So we don't have that last bullet point yet, but it's coming.
That plays right into the "for now" part of Brandon's title though: we just got done with a set of planning meetings, where we talked about the roadmap for our products. As I write this, engineering is still working on the technical plan that will implement the long term vision. I'll be updating our roadmap to match that over the next few days.
Something else I need to address: Brandon gives us a "tsk, tsk" for the Windows only nature of ObjectStudio. There's an interesting back story to that, actually. Cincom acquired ObjectStudio before VisualWorks, and had a Solaris and HP port almost ready to go when VW came in the door. We dropped those, since VW was (and is) already cross-platform. However, there's nothing wrong with ObjectStudio being Windows only - it has much tighter integration to Windows as a result, and unlike VisualWorks, delivers a few things that are fairly far out on the VW roadmap:
- Native Windows Widgets
- ActiveX/OLE embedding
Additionally, we are in the process of doing some work that will make it a whole lot easier for VW developers to access ObjectStudio functionality, and vice-versa. I don't want to get into too much detail about this yet; we are almost ready to give early access to a few interested parties, so that we can get feedback on our direction. It's exciting stuff though, and the engineering team is pretty pumped up about it.
There's another aspect of the article I want to address: the worry about Ruby that Brandon expresses:
It’s hard to predict where the product will be going in the future however, especially with Ruby gaining so much momentum. In fact, as oddly highlighted by Cincom’s Smalltalk Digest itself, a Smalltalk User Group in Omaha, Nebraska recently decided to merge with the Ruby Users Group. This is probably a good indication of where Smalltalk programmers will be going in the future, and it might make Cincom’s Smalltalk an even harder sell to the young hacker evangelists that a language needs to rise above the fray.
Heck, we see this as a good thing. Most Ruby developers have heard of Smalltalk, but haven't necessarily seen it. Ruby has some very nice things going for it, but so does Smalltalk. Having the two communities interact and share experiences is absolutely positive - I expect many Rubyists to look at Smalltalk, and more exposure is great.
We have great plans for our products, and those plans should keep us busy for a long time to come. We have a growing customer base, and an uptick in interest in dynamic languages - that's only going to help us out down the road. I'd say the future looks bright - I'm going to go grab my shades :)