A comparison of possible frontend technologies.
- Table of contents
- Java Application Frameworks Comparison
Java Application Frameworks Comparison¶
Criteria for comparison¶
synchronization (PC) - Is this really an interface issue?
. is not necessarily a part of a platform - parsing, generating and publishing RSS and Atom feeds is provided by external libs like (there is tutorial on [:NetBeans:NetBeans] using Rome):
resource consumption (PC) - certainly depends on the specific aplication. Looking at my taskmanager while eclipse and Netbeans are running NetBeans consumes ~100MB eclipse ~95MB
footprint (12 MB for basic NetBeans?)
memory leaks (PC)
debugging - iguess both platform have excellent debugging, testing, profiling capabilities.
integration with OS / desktop - copy & paste, drag & drop
Drag and drop - The Java Foundation Classes (JFC/Swing) have had integrated support for Drag and Drop since version 1.4.
Eclipse / SWT / Java Server Faces¶
- Memory leaks - http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.tptp.platform.doc.user/tasks/teidmmlk.htm
Memory leaks - free plug-in NetBeans Profiler http://www.netbeans.org/kb/articles/nb-profiler-uncoveringleaks_pt1.html
see separate [NetBeans] page_ _
. No matter which of the platforms you choose, you will be a lot more productive than if you build your entire GUI from scratch
Portability *' *
. _Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed. It is possible that perceived responsiveness is a consequence of smaller time required to respond to user interaction, which involves not only drawing, but also detecting and responding to the user's action. Also, determinism (smaller standard deviation) could result in greater perceived responsiveness. _
_NetBeans Platform 5.5 (win32) compressed: ~5MB unpacked: ~12MB _
. _- contains only litte documentation on SWING Layouts ~ 0.4MB = 11.6 MB _
- Eclipse Platform Runtime Binary 3.2.2 (win32) compressed: ~34MB unpacked: ~39MB
. - contains full eclipse platform documentation ~5.2MB - SWT/JFace component (swt, Jface, text, osgi) ~2.1MB = 31.7 MB
- Documentation_ _
. _See also section 'Help System' below. _
IDE internal documentation
The eclipse helpsystem provides a rich documentation on how to develop plugins. The (Platform Plugin DeveloperGuide) including the Platform Plugin DeveloperGuide, API References and Examples. The helpsystem is searchable. A search can be resticted on certain subsections (e.g. API References) by means of filters.
The NetBeans documentation is obvoisly less rich. It also has a section on developing modules for the platform, however examples & a API Reference are not included. The HowTo section is more about using netbeans for the development than on the Platform architecture. So addinaional recources are needed: Online API Reference (not searchable!); Online Tutorial (no specific search only via netbeans portal search function).
Third party documentation
. There is a lot of stuff about eclipse especially on IBM developer works and on I found it quite easy to find in formation on the Undo system for the eclipse platform, for Netbeans i only could find the not very descriptive java doc pages on the according classes.
- Experiences with the documentation
. The documentation to NetBeans seems (was?) not as rich as for eclipse/JFace/SWT. In the area of samples (http://platform.netbeans.org/tutorials/) and documentation, NetBeans is continually improving. In fact, module development book is under development and will be published on JavaOne!
- Help System_ _
. Eclipse provides also very good help support. It is very easy to integrate the help system of the Eclipse IDE, which uses Tomcat as the web server and Lucene as its indexing engine. The good thing with this approach is that you could provide sophisticated stuff, such as JSP pages for dynamically changed context. JavaHelp is purely static, which is totally okay for most use cases, by the way (see article 1 [ * IDE Handling Issues _
- Eclipse compiles on save in the background. NetBeans runs several Ant scripts which is often time consuming. However a simple [NetBeans * Branding _
. _Branding of GUI components (dialogs) is easy in eclipse. In NetBeans branding is too basic: e.g. the About dialog box isn't really possible to brand. _
- Undo/Redo_ _
. _Both Platforms provide a undo/redo manager. The one implemented in eclipse is well documented, provides UndoContexts for diferent platform components and levels of componet hierarchie etc. NetBeans also has an class UndoRedo.Manager wich has associated undo and redo action classes, it is not ducumented how to used this. No special undo support for persistent data (Hibernate or JDO) could be found for both platforms. However i stumbled over the thesis mthesis_final.pdf,* which could be interesting, however i have not read ist jet (Andreas). _
- Of note here:_ SQLite r26 is a light-weight relational database implementation, which *can be used for implementing undo. If the application directly passes changes made in the user interface to the database, SQLite can be configured to record all changes into a temporary undo and redo log table by using triggers. This is quite different than the command approach, and according to the author, surprisingly little code is required for supporting undo and redo using SQLite. *_
_Matisse* (NetBeans component since v5.5) greatly reduces the learning curve and development time needed to produce professional quality Java GUIs. The project exposes simple layout rules that are easy to understand and to use quickly. It lets you lay out components freely, providing visual guidelines for optimal spacing between components and alignment of components. is also available as plugin for eclipse Matisse4MyEclipse ' _*
- Eclipse RCP vs. NetBeans Platform: A Developer's Insights ":http://blogs.sun.com/geertjan/entry/eclipse_platform_vs_netbeans_platform2. "Thoughts on the Eclipse/NetBeans Interview