From: Chris Grindstaff Date: 2001-10-26T22:40:28+09:00 Subject: [ruby-talk:23440] GUI for Ruby My background: I've written software on several flavors of Smalltalk: VisualAge Smalltalk (native widgets on many many platforms), VisualWorks Smalltalk (emulated widgets on even more platforms), Squeak (emulated widgets probably on the most platforms). I even ported Squeak to DOS several years ago just to learn more about the VM. I think there is a natural tension between emulated GUI frameworks where anything is possible and native GUI frameworks that look "natural" and someone else has written for you or supports. Emulated frameworks like Squeak allow you to experiment with completely new concepts. They empower you because you control all the bits. That's also the biggest downside to emulated widgets, you control all the bits. The big advantage of native GUI frameworks is you're leveraging the huge investment that Microsoft, KDE, Motif, etc has made in their native widgets. I also tend to think users prefer using something they're use. But the bigger issue is not "reinventing the wheel" or better yet, "supporting the wheel". Performance is another advantage of native frameworks - again MS and company work hard to make their widgets fast. I've not really seen a system that does both native and emulated widgets well as Jimmy Thrasher mentioned. I suspect that you have a better chance of adding an emulated framework to an existing native framework. Going from emulated to native is rarely possible if your emulated framework is worth much (see Squeak as an example). I hadn't seen anyone mention OTI's (Object Technology International) latest work on Eclipse. A short history on OTI. OTI has been doing objects for a very long time. Starting in 1988 they wrote a version of Smalltalk that IBM eventually bought(the company too), creating VisualAge for Smalltalk and VisualAge for Java. Around when Java really started taking off OTI switched to focusing on Java. Recently they released their new IDE framework called Eclipse. Eclipse has many interesting things in it but pertinent to this discussion they have some interesting ideas on native widgets. Their new native widget framework is called SWT. I nice write up of the framework and how it's portable is provided here. http://www.eclipsecorner.org/articles/Article-SWT-Design-1/SWT-Design-1.html Eclipse and the SWT framework are in the process of being open-sourced. Currently SWT runs on Windows and Linux with ports being discussed to the MacOS. I mostly point this out for several reasons: 1. To recommend SWT as a possible native Ruby GUI toolkit. I'm pretty confident that if you know Java, porting SWT would not be difficult because of their architecture. 2. There are some interesting ideas in the design doc above. 3. To mention that Eclipse is intended to be used as a IDE toolkit and as such I think Eclipse could be used to build a great Ruby IDE. My 2 cents, Chris -- Chris Grindstaff chrisg@appliedReasoning.com | www.appliedReasoning.com