views:

4343

answers:

12

Hi,

I am working on designing and building a desktop application. I am thinking about using eclipse or netbeans for the base of this application. However, I have never built on either of these platforms. I am personally leaning to using netbeans because it seams like that platform is an easer learning curve. But, I wanted to ask people that have actually build on these platforms before which one is easier to use?

My personal definition of easer is as follows:

  • Easy to get started with

  • Consistent and logical API

  • Good documentation

  • Easy to build and deploy

Thanks very much,

Josh

A: 

So wait, are you looking to build a code editor? If that's not what you meant, realize that Eclipse and Netbeans are IDEs, not application frameworks. Netbeans has some good built-in GUI-building stuff for Java's Swing graphics API, if that is indeed what you are interested in.

Brian Warshaw
Eclipse is an application framework!
SCdF
Thanks for the tip--forgive my ignorance (and I mean that genuinely).
Brian Warshaw
yeah, the IDE just so happens to be the most popular Eclipse application... IBM Rational CCRC (ClearCase remote client... a client for the ClearCase source control system) and SameTime (an IM client) are at least 2 other apps I am aware of, but I'm sure IBM uses Eclipse for all kinds of apps.
Mike Stone
Both Netbeans and Eclipse are application frameworks. Eclipse has already been plugged. Check out the Netbeans screenshots: http://www.netbeans.org/features/platform/index.html
Shaun
+1  A: 

I have used Eclipse as a framework base but it was mostly just using SWT-- we didn't really use much of the RCP.

It really depends on what you're writing, but from what I have learned from using Eclipse it is really only suited for writing an app that involves you editing data using various views (just like editing code).

Anything more random that than can cause you to start pushing the framework in a direction it wasn't designed and causing massive fail.

SCdF
A: 

You'll use Swing to develop your application because any other windowing framework is useful only if you have a previous knowledge or the appropriate background.

You can rely on http://www.javadocking.com/ to streamline you application.

If your application requirements are highly focused on the user interface, maybe you can look in another direction like Adobe Air.

ggasp
+2  A: 
  • Easy to use: I have experience developing on Eclipse and I have to say it's not easy to understand its development model. Sure for basic stuff it has some wizards that make easier, but for something a little more complex it's just difficult. I don't know about Netbeans, but I heard its easier.
  • Consistent API: I think Eclipse wins in this aspect. It runs over OSGI (brings some complexity though) and has plugins extensions for pretty much everything. It seems to be the platform of choice for plugin development, so I can assume it's reliable.
  • Documentation: Eclipse wins by far. The help from eclipse site is excelent and the mailing list has plenny of users questions.
Marcio Aguiar
+7  A: 

I can't say enough about the Eclipse RCP platform. I would recommend it for any Java desktop app development.

It's free, has great tutorials, and allows cross-platform development of rich desktop applications that use native OS windowing toolkit, meaning that your application will look native in any platform. It also has a clean API that stays out of your way, and makes deploying to any platform a piece of cake.

If your interested check out this book: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

mmattax
A: 

RCP has a bigger learning curve, but once you learn the basics the Eclipse IDE itself supports building RCP applications very well. I have only built a plugin for NetBeans (not build a full-fledged application), and the learning curve was lesser than for the RCP application. The book Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications provides a detailed introduction to building RCP applications.

binil
A: 

Please see some of the open source applications at http://www.eclipse.org/community/rcp.php before opining that RCP is only for building a text editor. Thanks.

Tony BenBrahim
+1  A: 

Introduction to Eclipse RCP.

+1  A: 

I've done a little work with both, but only on relatively simple applications. Both seem to have roughly equal capabilities. I personally prefer the Netbeans platform as it makes more sense to me.

You should also consider JSR-296, the Swing Application Framework. It provides a basic framework for building Swing Applications, managing application resources, state, etc, but without as much "baggage" as Netbeans and Eclipse. Netbeans IDE has a number of tools for building applications on the SAF. See https://appframework.dev.java.net/ for more info.

Without knowing more about your application, it's hard to point you at the appropriate strengths/weaknesses of the two platforms.

James Schek
+1  A: 

I have a similar task and I am also considering different frameworks. I have some experience with Eclipse (~4 months developing RCP) and now Netbeans (played around for a couple of days). IMHO these frameworks are too complicated. You just end up debugging into Eclipse-specific plugin loaders trying to figure out why you get a ClassNotFoundException or a NullPointer. The same story with NetBeans: somehow somewhere somewhat reads out xml config files and creates UI from that, cool, as long as you follow the tutorial. And of course you can't develop and Eclipse-based RCP using some other IDE, NB is also very jealous about its usage (unless you do some hacks like I did). What I'm lacking is a clear way to debug my threads from main to action performed. Instead I'm always told what I have to do to avoid exceptions. And so I have to keep my fingers crossed each time I'm trying to pull something new. And it never works out the first time. Now I thought about the features I need and I looked out for smaller projects that aim at specific functionality like plugin management eg. And there are plenty. Just compile a list of the functionality you need and start adding smaller frameworks by integrating them into your project. This also makes sense since your project should consume less RAM in the end.

A: 

I would use eclipse RCP when you really need a platform to built on top, not just "widgetery" like swing or swt. RCP is rock solid and consistent, modular and very flexible. Once you master it, you get huge benefits. Being a platform it give you the most commonly used things - preference, configurations, automatic updates, layout management, branding and things like that. You build a product, not an app. But learning curve is pretty steep in the beginning.

Swing on the other hand is not a platform, you will re-invent the wheel by writing your own things I mentioned above. But yes, swing is faster to learn and get started. I think it fits better for smaller applications with shorter life span.

Dima
A: 

If you really want to avoid crossplatform maintainance then work with Swing. This buys you all platforms. RCP requires native libraries for each platform.

We have had good experiences with Swing.

Thorbjørn Ravn Andersen