Markus is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He is working with Java EE servers from different vendors since more than 14 years and talks about his favorite topics around Java EE on conferences all over the world. He has been a principle consultant and worked with different customers on all kinds of Java EE related applications and solutions. Beside that he has always been a prolific blogger, writer and tech editor for different Java EE related books. He is the Java Community leader of the German DOAG e.V. and it's representative on the iJUG e.V. As a Java Champion and former ACE Director he is well known in the community. Markus is a DZone MVB and is not an employee of DZone and has posted 180 posts at DZone. You can read more from them at their website. View Full User Profile

Why NetBeans isn't an Enterprise Solution - for me

04.01.2011
| 9136 views |
  • submit to reddit

We are all looking forward to the new NetBeans 7.0 release which should come out in a few weeks. And the more excitement grows the more people start asking questions about if it's suitable for enterprise development or not.

According to the Java EE Productivity Report (2011) NetBeans has an overall usage that is about 12%. By far the most users (65%) rely on Eclipse. But why is this so? NetBeans is fancy as hell and even in my personal past I was a happy NetBeans user for a long time. In this post I try to summarize my own experiences and feelings about using NetBeans heavily. Please note, that this is not an objective comparison. I am happy to read about your thoughts!

Enterprise Requirements
Development of enterprise class software has some special needs. They all arise from the fact that we are mostly talking about bigger development projects with a whole team of developers which have to complete their job within a more or less short time frame. This leads to a couple of things a truly enterprise IDE can assist you.

Rollout into large teams
First requirement category is derived from the needs to rollout the IDE to a larger team quickly. This includes the initial installation and configuration and a following distribution to the team. The individual member should not feel the need for anything else than to unzip the project distribution to a suitable location and start coding. This is very easily achieved with Eclipse. You simply download and unzip the recent build and configure the needed plugins before zipping everything up again and distribute it to your team. There are even some very decent central packaging and distribution solutions available which make it very easy to standardize on enterprise level (compare Yoxos from Innopract). If you are more interested in any pre-packaged solutions you could even thing about using MyEclipse or comparable offerings.
NetBeans doesn't have this kind of valuable ecosystem. The most complete way of installing NetBeans is offered by the OS dependent installers. The OS-independent set is feature limited (but only 23MB smaller than the installer for windows). I don't know about any management solutions comparable to Yoxos or even other bundles. So you simply have to take what is offered in terms of technology packages.
In addition it's most important to have a separation of configuration. You need to be able to differentiate IDE and project specific settings. The "workspace" approach used by Eclipse is a very convenient way for that. You simply have to put the complete workspace under version control and every developer has a consistent development environment to start over with.
Project and IDE settings with NetBeans are very distributed between the project and the installation folder. If you are willing to keep a consistent project setting for a whole team you are probably forced to send updates around via email.
Don't get me wrong. You can actually rollout NetBeans to larger teams. But if you try to do this with a complete environment (Server, Build-Tools, etc) you quickly run into trouble if anybody is not using the same installation folder or want's to change some locations afterwards. This is not necessarily a problem with NetBeans itself but possibly a trade off in favor of the tight integration with the supported servers and build-tools.

Fast development
Beside this, key to every IDE is it's ability to let developers code fast. There are a couple of places you experience this. The most obvious ones are the available templates and shortcuts. Both IDEs are strong here. You could even partly configure the NetBeans shortcuts to work like Eclipse shortcuts. But what's very different is the code completion. You don't realize this if your are only doing small examples. If you ever tried to use NetBeans with a large and probably not too well designed project with too big classes and many files you quickly find yourself having to pause up to 2 sec. after typing a single character. Code-completion is slow. Another issue I have with NetBeans are the project scans happening. They take too long and appear too often. The larger your projects grow, the more problems they make.
Next big point is the server integration. That is nicely done with NetBeans. Especially the GlassFish and Tomcat integration. Smoothly. And hot-deployment works .... as long as you stick to the generated ANT scripts. Switch over to maven and your out. Same is true for Eclipse for sure. But then non of the IDEs really makes a difference here. But there are solutions upcoming. The Oracle Enterprise Pack for Eclipse already can take full advantage of the Fast Swap feature for WebLogic deployments. I bet, this is going to swap over to GlassFish soon.
Let's look at the maven integration. It's natively build into NetBeans. And it simply executes maven on behalf of the IDE. You have a nice repository view and some ways to create and modify mavenized projects. You can add dependencies and have a couple of ways to run the goals with the profiles you need. What about a simple and helpful editor for pom.xml files? what about visualizing dependency hierarchies? There are a couple of other things that m2eclipse does far better for me personally than the NetBeans integration.

Quality insurance
One of the most important things in enterprise projects are the available tools for quality checks and insurance. FindBugs, Checkstyle, you name them. For any of the tools you can find an .... Eclipse plugin :). Some have NetBeans support but most not done by the tool developers itself but by third parties. This leads to outdated integrations or force you to use complete packages (like PMD) even if you only need parts out of it. Subjective it feels like the PMD integration with NetBeans is many times slower than any of the Eclipse plugins I know.
If you look at Code-Coverage: A cobertura plugin was available in prior NetBeans versions. It does not seem to be there with 7.0. The only way to have any information about code-coverage is to use the cobertura plugin. What about Emma? Nothing. And there are some more examples. TestNG integration for example. Because of tight integration of JUnit testing framework in NetBeans most IDE-wide tests related actions do not work for TestNG tests. Even if there is a plugin you can install manually (don't expect this to be an official plugin).

Extensibility
Let's look at team collaboration solutions. Codebeamer? Rational Team Concert? Any other commercial solution? NetBeans supports Bugzilla and JIRA. You probably will find Eclipse integrations. In general the plugin experience with NetBeans simply is worse. If you use the pre-configured three Update-Centers you get a total of 30 Plugin proposals. If you look at the plugin central you can find additional 600. Many of them seem to be outdated (e.g. JAD integration). The presentation is worse. Hardly any documentation. Some broken links. No images. A website I am not willing to use. In general NetBeans only has 1/3 of the number of Plugins which are available for Eclipse via the Eclipse Marketplace (which has 1,064 "solutions").

Stability
This is quite a bit unfair because this mostly relates to latest NB 7.0 Betas and RC. But I have the subjective feeling, that NetBeans is unstable. I've had lot's of exceptions and unresponsivenesses during development that I was not able to track down. If you take a Java EE 6 development project you quickly start over NetBeans a couple of times during the day because of that.

Bottom line
Thanks NetBeans. It was a great time playing with you. And I guess, we could get used to each other again for doing teaching, showcases, wizard driven developments. But if I have to do an enterprise level project with many developers and a tight timeline I will chose Eclipse.
What are your experiences? And please don't talk about your experiences with your 20 classes projects.

 

From http://blog.eisele.net/2011/03/why-netbeans-isnt-enterprise-solution.html

Published at DZone with permission of Markus Eisele, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Harro Lissenberg replied on Fri, 2011/04/01 - 4:52am

Although you might have a couple of good points, some I question. First and foremost:

"Rollout into large teams"
How long does it take to install a IDE with the appropriate plugins? Certainly not more than an hour. For any project bigger than "20 classes" it should hardly make an impact. But personally I would avoid these projects like the plague. A developer should be able to choose the IDE he/she prefers. Any decent project setup would allow this.

"Quality insurance"
I think a centralized solution (e.g. Sonar) would work much better. Same rules for everyone and visibility: an incentive to deliver quality code.

Finally: "Both IDE's"? You do realize there are more than 2?

(and yes, I saw the " - for me" addition to the title. I realize this is a personal opinion, just like mine)

Martin Groenhof replied on Fri, 2011/04/01 - 5:19am

#Rollout into large teams

Honestly as above this does not take more than 1h to do a full install and you almost always have all the plugins you need pre-packaged whereas in Eclipse you have to download and isntall almost all basic plugins(even svn) manually(what is this stone-age?)

 #Fast development

I dissagree Netbeans is far more responsive then Eclipse and the project scans happen in Netbeans only on startup or full recompilation, Eclipe on the other hand tends to hang for no apparent reason for as long as 5 mins without doing anything, and if you have the automatic compile on in Eclipse the IDE can decide to do a full recompile at any time and leave you hanging for minutes on end without the option of stoping it

 #Stability

This depend on the project, in some I had little probelms but in the current Eclipse was somehow corrupting the workspace every 2-3 weeks and forced me to do a clean checkout (the biggest reason I switched to Netbeans) it never ever corrupted the project

 In summary my experience with Netbeans vs. Eclipse is almost a mirror opposite to your's

 

Alexander Orlov replied on Fri, 2011/04/01 - 6:05am

Stability? I REALLY don't know what you're talking about. Eclipse is the most unstable, immature and especially UNREALIABLE development platform I've ever used. And from the stability POV even a beta version of NB can compete with Eclipse' worse overall (including its plugin ecosystem) stability whereas I've to mention that although I've excessively used NB, I'm not a NB fan and prefer IntelliJ IDEA for my projects. However, I'd choose NB over Eclipse anytime because NB is Oracle's child and an excellent choice if you just use the JavaEE stack.

Alex(JAlexoid) ... replied on Fri, 2011/04/01 - 6:44am

In addition it's most important to have a separation of configuration. You need to be able to differentiate IDE and project specific settings. The "workspace" approach used by Eclipse is a very convenient way for that. You simply have to put the complete workspace under version control and every developer has a consistent development environment to start over with.

NEVER, EVER DO THAT! Eclipse too much information in .metadata . Specially in a heterogeneous environment. I learned that the hard way. This is a major problem with Eclipse actually. NetBean's setup is a bit longer than unzipping Eclipse, but it does not compare to the problems that you will have if you move round workspaces between machines running different OS'es or even having different paths to things.

But if you try to do this with a complete environment (Server, Build-Tools, etc) you quickly run into trouble if anybody is not using the same installation folder or want's to change some locations afterwards.

Obviously you haven't performed that with Eclipse by yourself. Because neither shines on that front. A fully configured environment does not move around that well.

 

QA and Plugins is where Netbeans lacks, but  gets back with great integration with servers and standard Java EE feature support. Where Eclipse traditionally fails.
Working with JSF? You are better off with NetBeans. Coding pure Java? You are better off with Eclipse. It's been that way for the last 6 years.

PS: Don't bash an RC1 stability, because it's not released yet. Eclipse stability is even worse with all the plugins. On Linux I constantly get freezes for up-to a minute while stable version of Mylyn does something fancy in the background... Or even worse offenders are m2eclipse, JBoss tools and SpringIDE.

Markus Eisele replied on Fri, 2011/04/01 - 7:15am

Thanks for all the comments! I highly appreciate and value this discussion! And yes: It's my personal opinion and therefore I am thankfully reading any single point added here or on the blogpost itself.

Karl Peterbauer replied on Fri, 2011/04/01 - 8:58am

I second Harro and Alex.

A long-living project with > 20 classes should never ever have any IDE dependency, so "rolling out into larger teams" is not an issue. Let the devs decide what fits their needs individually. Pulling the sources, dependency management, building, testing and deploying from the command line is essential (Ant/Ivy, Maven, ...), making quality assurance and continuous integration (Jenkins, Sonar) a breeze.

Agreed, the NB plugins are rather poor, the plugin portal is a joke, and there are quite a lot other annoyances, but NB is simple and straight to use, which is definitely a plus for "enterprise development". I'm biased, but I never understood the Eclipse way of doing things. My favorite WTF: Right-clicking on - say - a property file opens a popup menu showing "Run As", "Debug As", ...

ionuion@yahoo.com (not verified) replied on Fri, 2011/04/01 - 9:01am

Donald Knuth once said: "...new users tend to find new kinds of bugs."

Let's say you are a happy Netbeans user. Have an Eclipse user program in Netbeans for one day. Stay beside him and you'll be amazed. What's happend to that stable tool Netbeans? It's unresponsive, it doesn't refresh classes as it used to.

Now imagine what that Eclipse user feels. Add to that the shortcuts being different. "...it doesn't even have the elementary find method (Ctrl-O)" they say. (Actually it does have it, but it's different - Navigator (Ctrl-7) <start typing>).

Now ask the Eclipse user if he'd switch to Netbeans. Of course not.

I'm on the other side - Netbeans. I've been surrounded by Eclipse users all the time. Because of my idea that homogeneous goes best, I try to switch from time to time, but I give up in a matter of two to five days.

The characteristic issues: How can they code in that Java editor, a revamped notepad? How hard should it be to install a freeking plugin? Why is the Plugins menu under Help? I installed them and now it crashes on me...

If that's what enterprise means, I'll make sure to stay aside.

Netbeans is blocking on me too, big big projects, but it's not like switching to Eclipse will solve that for me...Send me a checkstyle.xml and I'll say: "well, we'll have to do without that". I too know the cons.

I hope an Eclipse user not being able to switch to Netbeans will understand one that's trying the opposite.

Maven is a nice compromise for that. Nobel peace prize please :)

Markus, obviously I disagree with many points herein. However, I find your comparison healthy and instructive.

Christoph Kutzinski replied on Fri, 2011/04/01 - 10:48am

I just say 2 things:

 - history view

- synchronization view

These 2 alone are the most important reason, that every time I've tried Netbeans or Intellij, I've been coming back very fast to Eclipse.

I've never understood, why neither Netbeans nor Intellij have until today nothing which even remotely provides the features of these 2 Eclipse views.

 

Nicolas Seyvet replied on Fri, 2011/04/01 - 11:46am

 Hi,

I am an intelliJ Idea user.  Tried Eclipse and Netbeans.  I would say that in my unit it is about 50% NB, 40% Eclipse , 10% Intellij.  In the last year, there has been more and more NB users, and Eclipsehas been going down.

"Rollout into large teams"

Why would you even do what you suggest? Every developer has its preferred environment.  It is counter productive to force someone comfortable in one IDE to use another.  With maven and gradle, you are free to use whtever you want to develop, no need to depend on IDE specific project files.

Both NB and Eclipse being free, I think it is interesting that the 10% in my department are willing to pay the license costs just to be able to use IntelliJ.  

For the price paid, Eclipse is great, but I would not use that for JEE.

 

Andy Leung replied on Fri, 2011/04/01 - 12:29pm in response to: Nicolas Seyvet

@Nicolas The question "Why would you even do what you suggest?" is not from developers or Markus, the management controls it sometimes. We understand the fact that the more freedom on tools for developers to choose from the more power they have on hands. BUT this, unfortunately, is not happening in many big enterprises all the time.

Back to the article.

I tried Eclipse at first back in 2005 and I felt great with it comparing to NetBeans. Then when NB 6.5 came out, I tried both again. From that point on, I switched to NB and never went back. I didn't feel anything missing from Eclipse to NB. The shortcut keys are 10 mins learning curve or personal behavior correction exercise to me. Other than that, I really love the most basic features I used like very good code completion, shortcuts on popup menu of implementation and code hints. Then I found NB 6.7.1 was even more amazing. I then not only develop web apps but also leveraging NB platform to build desktop apps. Integration between Glassfish and MySQL is so seamless comparing to Eclipse. I agreed with some of you there, I actually had lot of problems with Eclipse configurations, Eclipse folder movement, and integration.

For performance, I vote NB. Start up time MAY be slower than Eclipse a bit but definitely, once you are in there you never see a hang. Comparing to Eclipse, it hangs for no reason and I have no idea why it hangs.

I actually wish that they continue on the Swing UI project, because that's a great idea of developing small apps comparing to using whole NB platform but that's only a "get used to" thing.

And I really like the idea of NB Portal, installing plugins is just like AppStore, unbeatable comparing to Eclipse. You can easily extend NB functionalities by using NB module, simply follow some examples online and you are there already.

Last but not least, I actually think you are right though, NB Portal has too few apps comparing to Eclipse. But there are two folds: 1. NB lacks of marketing, not because the portal idea is bad there, it's about the mother company doesn't do anything to it to market it. 2. Eclipse has loads of plugins but over 80% of them do not have quality assurance. What's the point? Just my 2 c :)

Piotr Kochanski replied on Fri, 2011/04/01 - 3:02pm

Recently I spent some time on application with a significant part written in JavaScript (frontend and part of bussines logic). I was trying to use Eclipse (MyEclipse, Aptana) and JavaScript support is a sad joke there. NetBeans has at least decent support for JavaScript, not as good as IntelliJ IDEA, but by far better then any Eclipse plugin.

Another thing I never undestood about "enterprise" part of Eclipse is that it does not have obvious features like, for instance, addition of a bussines method to both EJB bean and its interface. It's simple to add it by hand, but NetBeans has that for ages. I guess that advanced feature is reserved for commercial IBM's Eclipse derivative.

Support for Web Services in Eclipse is medicore comparing to NetBeans (still I am trying to be nice for Eclipse, that's why "medicore" is used...).

I could go on further like that. Since NetBeans 6.5 this is much better platform for Java development then Eclipse. It is less popular, because earlier versions were piece of crap, but right now that's the best options.

And it's worth to look here: http://stackoverflow.com/questions/5433991/eclipse-webtools-project-wtp-and-its-performance-quality, especially ridiculous explanations from someone from Eclipse WTP team.

So, should you move to NetBeans. Can't reccomend that unfortunately since I don't know what would be the fate of NetBaens under heavy (and gready) hand of Larry E.

Murali Mohan Rath replied on Sun, 2011/04/03 - 6:55pm in response to: Martin Groenhof

+1. Eclipse is the unstable. The project files get corrupted every now and then. I have all my projects maven based and maven support in netbeans is much superior than eclipse. And NetBean does not require any additional project metadata files i.e work space is clean, I like it.

Loren Kratzke replied on Tue, 2011/04/05 - 9:56pm

Enterprise Requirements - Talk to me when you have a 500K lines of code across 200 Maven projects. Netbeans does just fine.

Rollout Into Larger Teams - I am not sure why one would choose the OS independant distro unless you had no idea whether you will be using the copy on Linux, Mac, Windows, or Solaris. This is a straw man issue.

We migrated from Ant to Maven. Each built from the command line if necessary. With Ant, NB would drop a hidden folder in the root, but it would also exclude this folder from CVS and SVN (yes, yet another migration). With Maven there are zero IDE files.

Fast Development - When I set up a developer on NB, I tell them to download NB, install, and run. I will be back in 15 minutes. No joke. I then point at Maven 2 because the built in Maven 3 is a little too cutting edge. I build and deploy Maven webapps from the NB. The Eclipse users all use the command line because of various issues.

Quality Insurance - Sonar.

Extensibility - I find that the "Java" distro has absolutely everything I need out of the box. I don't need 1,000 plugins to make NB function. That said, the Eclipse plugin ecosystem is healthy, but NB just does not require that huge ecosystem to function. It really is an out-of-the-box IDE.

Stability - I restart the IDE about twice a month when I reboot my dev box.

Bottom Line - I think there are more Eclipse users because there are more Eclipse users. It is self perpetuating. Once you start using an IDE and become very comfortable with it, you don't switch unless it can't do something or you are dragged away kicking and screaming. NB and Eclipse can both do virtually everything so there is no compelling reason to switch either way.

All Enterprise Java projects should build from the command line first and foremost. After that, any decent IDE should be able to open and develop on that project without tainting it. Never force developers to use a particular IDE.

Gökhan Ozar replied on Tue, 2011/08/23 - 9:02am

I posted this on the original blog, I'll post it here as well: As a long-time Java EE Developer, after suffering a long series of nightmares because of the bugs of Netbeans 6.x and the overall instability, I had to switch to Eclipse. Even after the release of Netbeans 7, I see many of these bugs remain intact. What I suffered most from Netbeans was the projects I created with it which use ORM such as Hibernate and Eclipse, did not run on another machine with exactly the same environment (db, app server, IDE) without a hundred modifications and clean & builds - especially projects with datasources. In many cases "Resolve missing data-source" just does not work - although the data-source is simply there or re-created.

Shoaib Almas replied on Sat, 2012/08/25 - 5:58am

Well. My experience is quite different.
In my company we have a project going on for about 10 years. It is written in Java. I have used NetBeans on Linux the whole time. I've also tried Eclipse (3.6) and IDEA (10) and they both choke on that project.
Granted, Eclipse has a lot more plugins, but you have to realize that many developers also have huge problems with them.

Java Forum

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.