Recently I started to build a stand-alone Java application. The first thing I thought of was to use Eclipse, which I have been using since 2000. As you may know, the Eclipse family has a framework called Eclipse RCP (Rich Client Platform) for building standalone application. In fact, Eclipse IDE is now built on top of the Eclipse RCP framework.
It’s not architected this way from day one though. The Eclipse RCP came way later after the IDE. When Eclipse IDE became popular, people started to ask why can’t the basic framework for IDE be re-used for building other applications that has nothing to do with IDEs. So the Eclipse RCP was then born. It still uses the plugin architecture for extension.
Overall, the Eclipse RCP is a by-product of Eclipse IDE, therefore you can still see it’s heavily influenced by the requirements of IDEs. The biggest issue there is the complexity to use the RCP. As this official wiki page says, “Right now, after one week of training, a RCP newbie just touched the very basic things of RCP. This is one reason why many big industry companies have problems adopting RCP.”
As I played with the latest Eclipse 4.2M6, the good news is that the programming model has been significantly simplified. The bad news is, however, there isn’t much documentation and samples although I found Lars Vogel’s tutorial is a great resource to start with. BTW, he also wrote many other tutorials as well. Just check them out at his web site.
After learning and trying by myself for a day with the latest Eclipse SDK, I think I can do something pretty simple but definitely not enough to get my work done. It isn’t clear things will be improved any time soon.
To be realistic, I have to think beyond and try something else. I ended up with Netbeans Platform, yet another application framework quite similar to Eclipse RCP. I have to admit it isn’t fun to rush into a different world. There are a lot of the differences in concepts and terminologies from Eclipse. They also share a lot in common as IDEs, so I can easily find things similar at Netbeans by a simple search.
Luckily, Netbeans.org has great documentations and samples. Before I only thought Microsoft is good at writing great documents helping developers. Kudos to Netbeans team!
At this moment, I have read the quick start tutorial and several videos tutorials, and run through several samples especially the feed reader sample which I ran through via debugger. So far the overall experience is pretty positive.
I think the Netbeans’ approach to develop plugins is simpler than Eclipse’s. For the Eclipse, the key concept is the extension points to which you can plug in your menu/action/… and your code. This is essentially limited view of what to extend because the focal points are individual extension points. For the Netbeans, the concept is similar but visualization is quite different. It introduces layering concept with which you can see what is new from this module in <this layer> and the combined result in <this layer in context>.
I also find the packaging of Netbeans platform based application is no simpler. With one menu click, you can package the application as ZIP distribution, NBMs (I think it’s something similar to Eclipse update site, but not yet confirmed), Installers, Mac OS X Application. This is such a pain in Eclipse RCP that you have to read through a long tutorial and could still scratch your head facing your own project.
Well, I just downloaded the samples from the book The Definitive Guide to NetBeans™ Platform 7 and time to run through it. Will continue to report my findings along the way. Stay tuned.