We recently started to develop a Java desktop app and management has requested that we make use of Rich Client Platform. I know of four for Java namely:
I'm currently developing a Spring RCP application. The documentation is really weak, that's for sure, but the blogs and forum have a good amount of information to get going. Once you do get cruising, things do move fairly fast and you really only need to learn basic Spring if you aren't familiar with the framework. The integrations with Spring libraries such as VLDocking is excellent too.
I think Spring Rich is great if your use case is to develop a standalone Java desktop application. What I mean by that is if you don't need to distribute modules and do online updates then it should fulfill most needs.
Of course it all depends on the kind of applications and services you want to provide, and the target environment. But I can also recommend OSGi as a development and deployment platform. The underlying architecture and specifications are very well developed and proven.
Besides of the Eclipse RCP you should have a look at Apache Felix (http://felix.apache.org) and Knopflerfish (http://www.knopflerfish.org), which are (smaller) open source OSGi framework implementations.
From my end-user perspective.
I've seen more implementations in Eclipse than in the other two. Actually I've know about Netbeans implementations but never got one in my hands.
From Spring this is the first time I've heard about it.
While my answer is definitely a super 10,000 ft view, it reflects somehow the preference the industry had had about using one or the other.
Also, the difference is proportional to the time the platform has been available. Remember Eclipse create SWT to solve the problems Java Swing had back in 1.3 where is was simply prohibitely slow.
Netbeans have been very beneficiated by the JVM improvements and now runs very very fast.
Spring is still young ( compared with the other two ) , but as always, the new things learn from the former, chances are it is simpler to use.
Here's an article about these two platform Eclipse RCP vs Netbeans RCP. May be helpful
http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform
INTRO - skip if you're only interesterd in result ;)
I was developing an editor for a custom programming language very simmilar to JSP. First I've implemented the editor as my thesis using NetBeans platform. After finishing school I've got a job and they wanted me to implement the same thing in Eclipse RCP, so now I can compare these two platforms at least in stuff I was facing during this project.
RESULT - If I had a choice between Netbeans platform and Eclipse RCP, I would definitelly pick a NetBeans platform. Why?
Great screencasts, good tutorials, very active friendly and helpful community, quite well documented and the source code is written nicely and with good code conventions. Also has some interesting gadgets (cookies, lookup). It simply suits me.
And why Eclipse RCP does not suit me?
The documentation is weaker and conventions and API are sometimes..ehm..too weird for me :-) It's quite ususal to see methods like:
/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}
Well I thought they must be kidding me :-D How am I supposed to use this method? Or like this:
/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();
Although the number and type of attributes fitts, I don't find the Point object ideal data structure for storing range ;-)
There are numbers of theese such surpises in Eclipse RCP
Netbeans RCP is excellent. Its come a long way over the years. It uses a more robust technology ('Swing') that many people use and understand. Eclipse RCP (more specifically SWT) just confused me.