views:

48

answers:

2

I would like to start a new project which will make extensive use of plugins. I know that both Eclipse and Netbeans have their respective Rich Client Platforms, both with their respective strengths and weaknesses.

I would like some comments on which the Stack Overflow community prefers.

Also, and most importantly, how easy it is with the respective platforms to write plugins for already existing applications. For example, if I finish my application, and would like to enable 3rd parties to extend it with their own plugins, how does each of these platforms provide functionality for this? Would they need my source to do it, or do these platforms provide plugin APIs towards which 3rd parties can code?

+3  A: 

(Note: I'm not speaking for the community here ;) )
The two major differences between Netbeans and Eclipse RCP are:

Another factor, as you can read in this blog post is RAP (Rich Ajax Platform), which could help deploy your app on many platform based on one source code. But that may not concern you.

The maven integration is quite good from both side (see the Netbeans-RCP-Maven Hello World article), but the Maven3-Tycho integration is primarily developed on Eclipse.
Again, you might not need those new maven features (or you could use other build management system entirely, like Ivy or Graddle)

VonC
Thanks for the reply. I am aware of the mentioned differences between the two architectures. What I really would like to know is how easy it is (for both seperately), to write plugins "outside" of the application environment. For example, if I complete the application, and ship it, how easy is it for someone else to write plugins for it.
Nico Huysamen
@Nico: that is why I mentioned the link to http://www.nuxeo.org/static/book-draft/osgi2.html: OSGi is designed to facilitate extensions. And I realize you know already a lot about those two environments ;) But I have to *also* answer to the occasional goggle searcher who will stumble upon this question, hence the details about the main differences between the two models.
VonC
+2  A: 

I would like some comments on which the Stack Overflow community prefers.

I lean my preference to Eclipse RCP, mostly because I still think that the IDE itself is the best right now. Eclipse RCP is also more mature, and has more books and documentations on the web. Netbeans RCP is slightly behind with only three books I can find on Amazon.com regarding the platform.

I'm also very eager to see the platform growing with its e4 projects which will simplify a lot of things (from dependency injection to UI customization)

Also, and most importantly, how easy it is with the respective platforms to write plugins for already existing applications. For example, if I finish my application, and would like to enable 3rd parties to extend it with their own plugins, how does each of these platforms provide functionality for this? Would they need my source to do it, or do these platforms provide plugin APIs towards which 3rd parties can code?

I can imagine that the answer for this question will not really be satisfying while both platform are designed to be extensible. They are pretty equals in this department.

The most important thing is to design your application to also be extensible. That is, providing extension points. You don't have to provide source code for that but you can document the extension points. Also, in case you need to provide interfaces, you can just provide the javadoc without the real source.

I repeat my point, designing application using RCP doesn't mean your application will automatically be extensible. You have to also design your application to be so. This won't come easily as you learn the platform for the first time but you will eventually learn about it from experience.

nanda