The native versus emulated debate has been going on for at least 15 years. Before Java, we built a portable native widget set for Smalltalk. Sometimes history repeats itself.
Many people want to build applications that are indistinguishable from native ones. For better or for worse, they want to use native technologies like Windows GDI, Macintosh controls, or GTK widgets and Pango text rendering. This really does make some amount of sense. It builds on the work of the native toolkit implementers and operating system vendors. There are excellent programmers hard at work at places like Microsoft, Apple and in the open source community. We should take advantage of this work in our Java applications.What is JFace and how does that fit in with SWT?
JFace is a model and utility layer that is built on top of SWT. It's another component of the RCP (Rich Client Platform) and Eclipse, just like SWT. It's an interesting idea to have the model layer architecturally separate from the widgets. It means that people who like models can work with them and those that just want the widgets can program them directly. This kind of separation is both powerful and flexible.Do you think SWT has allowed Java to graduate as a serious contender for development of professional desktop applications, or was it already there?
I would never pretend that SWT is responsible for the revival of interest in Java on the desktop. However, the fact that SWT embraces the operating systems makes it attractive to people who believe that native widgets are essential. Windows programmers who were considering C, C++, MFC, ATL or even C# for their next project are looking at Java and SWT. Open source programmers also like the fact that when they use SWT, they are really leveraging technologies like GTK and their work can be compiled easily to native code using GCJ.What does the future hold for SWT? What new features can we look forward to?
Of course, we plan to just keep making it better. In terms of features, we are working on the list right now. The best way to track this is to check the next revision of the Eclipse platform plan at Eclipse.org. Also, like everyone else in the industry we are interested in new technologies like Longhorn.
Open SourceSWT is released under the OSI approved EPL license, which allows users to obtain, modify and redistribute the source code. Has this model helped SWT to progress at a quicker rate? Does the multi-platform support prove a barrier to many interested contributors who only have a subset of the target platforms?
Way back in 2001 when Eclipse became open source, many people asked me if I was afraid to let people see the code. No way! I'm pleased with what we've achieved and when someone contributes a patch or finds a bug, I'm proud rather than protective. I'm constantly amazed at the number of people that are poring through the source code and helping to make SWT better. None of this would have happened if we didn't release SWT under open source.
To really implement a feature well, you need deep multi-platform knowledge. However, the fact that SWT is so close to the platform allows contributors to leverage their operating system skills. It's easy to find where things are done in SWT because the code is straightforward.Sun has finally succumbed to pressure to open source their Solaris operating system. With Solaris being such a key asset to Sun, do you think they will follow through and open source Java? Do you think Java should be open sourced?
As a developer who has worked on both closed and open source projects all I can tell you is that open source is way more fun. For example, when you fix a bug, you really make someone happy. The feedback is instantaneous. There's also a great feeling about working in the open. However, these are just my opinions. Personally, I like open source but I don't presume to tell other people what to do or speculate on corporate strategy.
Java DesktopI've heard people suggest that Java only has a role in the enterprise environment within back-end, middle-ware and web-services domains. The idea that Java can compete with native platforms for professional desktop applications doesn't parse with many non-Java developers. Is this a fair view? What needs to change to improve Java's reputation on the desktop?
There are plenty of examples of competitive desktop application built using Java. In my experience, most of the concerns surrounding the use of Java on the desktop have been related to either performance or native integration. Performance isn't an issue, providing that programmers don't make the mistake of making things too complicated, which is a danger in any language. Our focus has been on native integration.Which projects (if any) out there best illustrate to you that Java is a solid platform for the desktop?
Obviously, Eclipse. As far as SWT is concerned, Azureus (a BitTorrent client) and RSSOwl (a newsreader) are two popular applications. Last time I looked, Azureus was the top download on SourceForge. If you check the Swing Sightings, you'll see numerous programs built with Swing such as Limewire, Yahoo Sitebuilder and Encyclopedia Brittanica (CD-Rom edition). All of these applications show that Java is industrial strength on the desktop.Anything else I've missed that you would like to share?
Java should be about inclusion. Libraries such as SWT and Swing bring widget programming to Java and showcase exactly how powerful the language is. The tools are there to do the job.
Many thanks for your time :)
About the author:
Andrew Roberts is a computer science graduate from the University of Leeds, UK. He remained at Leeds to study further towards a PhD in Natural Language Processing. He has been using Linux for almost 8 years, and Java has been his language of choice for advanced language processing and machine learning during the last three years.
- "Interview, Page 1/2"
- "Interview, Page 2/2"