VA Smalltalk: my personal wishlist

In this year’s CEO update, Mike Taylor asks for feeback on what direction users would like VA Smalltalk to evolve.

My personal favourites included a Seaside port, which will be a reality with the upcoming version 8, so I happily checked this one off from my list. But still there are some topics on my wishlist for upcoming versions, and I’d love to hear some comments on these.

  • A supported port of GLORP: currently, if someone new to Smalltalk wanted to use VAST, they’d be surprised to see that there’s no O/R mapping tool in the download. There are some commercial products available, but I think GLORP is a must. There is a second reason for GLORP: there are quite some customers out there who use quite old frameworks like TOPlink or (at least here in Germany) Micado Peristence Framework, which are out of support / development and GLORP could possibly be a good option. I’d say GLORP is top priority
  • Improved GUI look and feel. Let’s be honest: most VA Smalltalk GUIs are ugly and lack functonality that has become standard. There are some alternatives like using Windows TabStrips instead of the portable notebook part, but  still there are lots of things missing:
    • Toolbars and Coolbars like in eclipse SWT, Toolbars that can be torn off into floating palette windows
    • Containers simply are 10 years behind: no way of reordering columns or sorting columns. Out of the box they look a lot like OS/2 Widgets (remember OS/2)?
    • Direct Editing in Containers is buggy, lacking functionality and is somewhat clumsily implemented. It is possible to implement your own EditPolicy types, but it’s hard to do and undocumented.
    • Handling of fonts. There is no documented way of using the platform’s standard font in your GUIs
    • A lot of stuff can be implemented using the CommonWidgets and ExtendedWidgets stuff, but is not made available on the Abt Layer and thereforis not usable in the Compostion Editor.

    It’s funny that eclipse SWT is pretty much a reimplementation of VAST’s CommonWidgets library but has so much more functonality at your fingertips. Seems like it’s time to backport much of the novelties of SWT into VA Smalltalk. To be fair, you can make an application look nice on Windows Vista, and with Version 7.5 there is a lot of improved in using the Aero Look on Vista, and V8 will come with theming support for Win XP, and things are a lot better today than they’ve been in the IBM days, but there still is a lot to do.

  • Once the dev team takes a look at SWT, they might take a look at exchanging the Motif foundation of the Linux port for a nicer, more modern Toolkit and thus make VAST applications look better on Linux and probably other Unices.
  • Tidy up the environment. In VAST 7.5 with VA Assist activated (and maybe even MED RB extensions loaded) there are so many menu items that sound similar but are different (like “Selected text” and “Selection”) or are somewhat spread over the IDE (like Preferences Window, VA Assist Preferences and Preferences Workspace as well as VA Assist setup and settings…). And there are lots of buttons and menu items around that you hardly ever use (Indenting a Paragraph, swapping lowercase/Uppercase and such). Some menu items are missing in certain browsers where they might be useful (no senders/implementors on the code pane in StsDebugger…) and so on. And while we’re at it: I think the view switcher in the class editor should go away and turn into a notebook/tabstrip. It’s just not intuitive.
  • Coming back to SWT: SWT is available on MacOS X and works quite nicely on it. A port for JDK 1.6 / 64 bit is underway. You know where the argumentation is going… 😉 Wouldn’t it be cool if VAST was the first commercially available native Smalltalk on the Mac? I think it would 😉
  • Smalltalk Web Start. I’d like to see some functionality implemented in the startup sequence of a deployment VM to contact an HTTP / TCP/IP server and look for updates and install them on a deployed image before startup. Sure you can implement such a beast on your own in Smalltalk and make it super-flexible and such. But it should be a feature that doesn’t require a whole Smalltalk image to start up and restart itself and so on. And, of course, it needs its own cool feature name (I mean, basically, Java Web Start is not really rocket science, but it has a cool name and it is useful.The combination of a modernized look&feel and Smalltalk Web Start would make VAST the perfect rich client platform and would make it a very attractive alternative to Eclipse. In fact, rich client platform is just a new name for what VisualAge Smalltalk has been delivering since 1994: a platform for easy development and deployment of GUI applicatios (aka fat clients).

You can read a lot more about my thoughts on what VAST is today and should be tomorrow in my presentation from the VA Smalltalk Forum 2008 which can be downloaded here.

Well, that’s it for now. Please feel free to add comments and tell me what features you are missing in VAST.