I've been looking into various rich-client desktop and web-based application platforms/frameworks on which to base future projects. Many of the RCPs (rich-client platforms) have advantages such as support for auto-updating, plugin frameworks, and numerous existing plugins and samples. Here are just a few of the options, plus some do it yourself options in java and .net. I list sample apps, advantages and disadvantages.
| Framework
|
Advantages
|
| Eclipse RCP
|
Very well established, dozens of sample apps and plugins, supported by IBM, couple of books, some people are using for things beyond java, such as C++ development, form designers that work with Swing/SWT/GWT
|
| Netbeans Platform
|
Newer, but based on an established IDE with the excellent Matisse GUI designer, supported by Sun, one book just released, they are also focusing on adding more language and toolkit support, such as ruby on rails and GWT
|
| Firefox extensions
|
Virtually zero-install - applications work in browser, couple of old books
|
| Adobe Flex/Flash
|
Highly interactive apps, most people have Flash installed
|
| Ajax Toolkits
|
Most are free, open source, zero-install, works in browser, doesn't even require a plugin or extension, many interactive controls available now such as google maps or simile timeline
|
| DIY Mono/.NET
|
.NET and Mono pre-installed on Windows and most Linux systems now, supported by Microsoft and Novell
|
| DIY Java
|
Can be deployed as an applet or as java web start application, very interactive apps, works cross-platform
|
| Framework
|
Disadvantages
|
| Eclipse RCP
|
- tied almost exclusively to java - which is still very verbose, can't really use alternative languages, although this is slowly changing
- tied almost exclusively to SWT (not Swing)
- memory hog - RSSOwl, a basic RSS reader, uses 79MB, can't run on for example older, smaller computers (OLPC/Classmate PC)
- because of SWT dependency, can't really deploy as an applet, not feasible as a java web start application (too big)
- incredibly steep learning curve - very complex API
- non-java language support lacking - the Scala plugin for example doesn't even support code completion, let alone gui design, refactoring,...
- not easy to develop very rich applications. Most Eclipse RCP apps have traditional button/form interfaces only, such as the tools from the Reload project (see screenshots below).
- your plugins are tied to each Eclipse version. So whenever Eclipse updates, your plugins may become out of date so you have to continually update them
|
| Netbeans Platform
|
- Still quite new, not much documentation
- tied pretty much exclusively to java
- tied pretty much exclusively to Swing
- Also a memory hog like Eclipse-based apps - the feedreader sample app took over 50MB
- Not many real working samples - the feedreader is very incomplete and threw exception errors
- IDE is slower to start up and more memory-intensive than Eclipse, but looks much nicer and has a more intuitive design
|
| Firefox extensions
|
Most extensions have traditional form interfaces (see Zotero), no interactive features like animations, drag & drop, etc.
|
| Adobe Flex/Flash
|
Brand new, commercial, proprietary, expensive. May be free and open source options available soon (such as GNUflash).
|
| Ajax Toolkits
|
Can't do some of the interactive stuff you can do in desktop applications, very memory intensive sometimes, a bit kludgy/hacky at times
|
1 comments:
Doug, thanks for sharing this, it is helpful. Cheers, Scott
Post a Comment