Smalltalk UIs
Every time I take a quick look at James Robertson's Smalltalk Dailies I can't help but wonder why VW and the apps built with it have a UI that sucks so much. Smalltalk is pretty obviously a great language, the development environment is great – why is there no support for native UIs? Don't point me at Ambrai, because a screenshot like this makes my eyes bleed.
(Let me be clear: I'm not criticizing functionality, just appearance. This stuff matters, you know.)
I think you’re very right here. In particular the free Squeak SmallTalk implementation is a really good example of a really bad UI. It’s not only non-native, it’s just plain ugly. And they don’t support anti-aliased fonts (everything is bitmap even, I think) in 2008, at least not out of the box, and not on most platforms.
I once heard a talk from Gilad Bracha about his Newspeak environment. He simply said that a native GUI is a prerequisite to being a viable, commercial option for UIs, and I think he’s very right on that. He also mentioned the importance of a proper foreign function interface on the same level.
If I understood him right, he thinks that - at least some - Smalltalkers have or used to have this attitude that it’s either clean and proper Smalltalk, or it’s not worth doing. The whole image concept & co. is very powerful, but it does create a concluded world, a walled garden. Smalltalk is it’s own operating system at that point. This might be one of the reasons why it didn’t work out that great in the long term - the language is very nice, and it has great features, but the platform is weird (at least to non-Smalltalkers), and very secluded.
I think this is one of the major things Ruby/Rails gets right. They simply play by the rules of the platforms, they embrace command lines, UNIX tools, operating system concepts like processes etc.
First, why does the Ambrai screenshot make your eyes bleed. No fluff. Do you really want more fluff than you need? Looks gorgeously simple to me. Loves me the simple stuff!
Second, you’re right. VisualAge/Smalltalk (now sold by Instantiations, previously IBM via OTI) supported native GUIs. It was an ongoing war between us and our competitors (including VisualWorks) whether native or painted was better. Same arguments as SWT vs. Swing in Java. Native wins, but you pay a cost in terms of constraints; usually it’s not a huge cost, and it’s always worth the cost anyway. Also google “uncanny valley”.
See the recent post by Vassili Bykov, http://blog.3plus4.org/2008/11/13/how-to-design-a-smalltalk-ui-framework/ , which covers some additional sanity arguments like FFI vs “natives/primitives”. Looking forward to what’s coming out of that …
The look is not that nice due to lack of graphical design and (maybe) usibility. However, I don’t know any employer building an internal app and willing to pay for graphical design (or usibility). The look would be as “not so nice” if native UIs would be in use. A quick rebuild (without a redisign) in e.g. Cocoa would prove that.
johnofamber
The look issues of VW have less to do with lack of nativeness and more to do with the sheer age - the UI hasn’t received a serious facelift in a long while. We wasted a lot of time and resource on something that ultimately failed: Widgetry.
We now have to start over with the UI framework we have and make the system look and feel better.
One change you’ll see starting in the next release is new and better graphics; Cairo is coming. The advantage that gives us is simple: nice graphics capabilities across all of our platforms with one API. If we instead went native, we would have to create a mapping layer to something on each platform. If we had infinite resources, maybe that would work. We don’t, so we have to be smarter about things.
@Martin: +1.
@Patrick, @johnofamber: My complaints about Ambrai are not because the use of native widgets, but rather about UI design – what’s the “>>” doing in the title bar? Why are the two top listboxes so misaligned? I know, because of the ugly radio buttons squeezed below the first one. Still, no excuse – no one would get praise for building a UI like this in the Mac community. Take a look at the UIs built by Apple, or many of the smaller Mac-only shops (the Versions Subversion client, NetNewsWire, MarsEdit, … – the attention to detail and aesthetics is breathtaking. And of course I’m talking about end-user software, such as e.g. the Smalltalk IDE itself.
@James: I understand that you’re operating with limited resources - looking forward you’ll come up with.