Over on the VisualWorks NC mailing List, Marten Moostert started a thread on the current state of GUI frameworks on VisualWorks that has motivated quite a few people to jump into the discussion. The discussion now goes on in at least two more threads on the same list.
To sum up a bit what people are complainig about is that the current hype towards Web Technologies, especially seaside, might lead to the fact that Cincom has throttled their focus on medernizing their GUI frameworks quite a lot. A reason for additional frustration is the fact that Cincom has totally stopped work on their GUI framework for several years, because they were workin on a complete rearchitected GUI Framework named Pollock which was a nice piece of work, but was stopped after a few years, making some customers very unhappy while others were glad not having to rearchitect their applications. The really bad thing, however, was that there was no real visible progress in the old framework, and the new one wouldn’t come (a situation that’s not too unknown to some shops who wanted to rewrite their long-standing Smalltalk systems in Java, but that’ another story…).
To make a long story short, I must say that a standstill in GUI frameworks is not a thing that Cincom has a patent on. It’s a truth in other Smalltalk environments as well. Squeak, Pharo and others have their own chaters in this book. VA Smalltalk is no exception.The last major improvements to the Composition Editor have been made somewhen in the late 90ies, and there haven’t been any new significant widgets for way over a decade. We still have no sorting lists, grid widgets or the like in the base product. There are some add-ons, but even these have their issues when it comes to Vista Theming.
There are some first steps that Instantiations has made: Vista Theming is enabled and the addition of new widgets is on the roadmap for the next few versions.You can make an application look very familiar on Vista (and I guess Windows 7), even with an Aero Look. But still a lot of stuff is a bit OS/2-ish, from the default color scheme to fonts. So I hope we’ll soon be able to build nice-looking and familiar-feeling container details replacements, hopefully API-compatible to the existing Container Details part. The same would be nice for Notebooks. There still are quite a few VA Smalltalk applications around that use emulated OS/2-Notebook parts on Windows XP. Looks strange, but works good for the users. A smooth path for development teams to migrate these to Windows-Tab Strips is overdue, as well as a way to make GUIs platform neutral. By this I mean differences between operating systems or even versions of operating systems in terms of fonts, default spacing etc. Vista uses a completely different font than XP, for example. So layout strategies that can handle font size differences (maybe layout managers) together with a means of setting a window’s font to “system default” are high on my personal wish list.
All of these things are common place in SWT, for example. Not only there, but I take SWT as a special case here because it was architected by the very same people who had worked on CommonWidgets and ExtendedWidgets in VisualAge Smalltalk before. The basic principles in SWT are inherited from VisualAge Smalltalk’s GUI model, and the SWT GUIs are by far the best Java GUIs I’ve seen so far, combined with a lean and clear API which really feels like home for a VisualAge Smalltalker. So the foundation for a modernized GUI model in VA Smalltalk is there, lying in the depths of existing code, these gems “simply” need to be dug out and cut.
Then, there are the long term goals: I would love to see the Composition Editor and WindowBuilder merge into one tool: A GUI builder that produces plain Smalltalk code and supports visual connections. And, of course, supports an up-to-date widget set, like tool bars that can be docked on/off, palette windows, sorting lists, grids and stuff. A useful splitter widget without strange visual effects in the GUI editor and support for wizards would be nice.
The list is long, and the affair is on Instantiations’ agenda.
Let’s see what we’ll get in 9.0 and beyond…
Ah, and I forgot to mention that I’d love to see a Mac version of VA Smalltalk. I mention it here just for completeness 😉