Sometime ago I’ve written a post on Netbeans vs Eclipse and tried to keep it up to date. After I’ve written that post, work got really busy leaving a very small time to be able to compare IDEs. I had two code base on both IDEs. I had very little time to move from one to another and I had to maintain both at a very fast pace. That gave me perspective and I was able to test both IDEs under stress.
Netbeans: Myway or Highway
Netbeans is very slow cumbersome and rigid under stress. The changing requirements force you to do custom maven configurations and Netbeans is very skeptical about it. Esspecially when it comes to deploying to a custom container. Just forget about it. Simply put, if you’re not going to use Netbeans supplied JavaEE 6 maven pom, don’t bother with Netbeans. The most serious flaw of Netbeans is to rely on maven for building maven projects. Sounds weird right? Actually not at all. For large project with many nested maven sub projects, you always at some point need to run a test case in isolation. Since you’re touching code here and there, your maven build gets old pretty easily and when you try to run a single test you end up waiting for all maven build to complete. The seconds become even more unbearable with your co-workers looking directly into your eyes waiting irrelevant maven tests to finish while running a single test case to locate a potential bug.
Eclipse: Everyway, but it depends
I’m not a fan of Eclipse’s native GUI bindings but after using it under stress, I have to admit that it’s robust, responsive and sharp than Netbeans’ swing. When developing on a notebook, screen estate is important. Every pixel counts. I’ve gotta give credit to Eclipse for that. With Eclipse, you see more of your code and project on the same screen. On the other hand maven support is OK. If you get the maven plugin right, dependency management becomes quite automatic. Deployment and redeployment is much faster in Eclipse. Forget what Oracle funded evangelists are telling you about Netbeans and Glassfish combo. In real life you’ve got to deploy on several different containers under several different conditions. Eclipse at least helped me survive the day. Edit a class and hit save, after a couple of seconds, your Tomcat gets reloaded with new code and you can switch to your browser to see the effect.
IntelliJ: You need to pay to get all the goodies
During tiresome code sprints, I had the chance to try IntelliJ on a seriously large piece of codebase. It was version 10.X not the 11 which incorporates native GUI widgets. Here are some of the highlights that I likes about IntelliJ.
- No saving files: Seriously. You don’t save files. They are autosaved.
- Consistent shortcuts: Shortcuts in IntelliJ is awesome. You don’t get crippled like in Eclipse. Almost everything is accessible via a couple continuous simple key strokes. Shortcuts prompt a context menu where you can filter them with keyboard. You’ll have to try to understand that for yourself.
- What was that again?: Forgot the shortcut of an action? Hit Command-Shift-A (in mac) and you’ll be prompted with an auto-complete like menu where you can easily search for actions and their shortcuts.
- Overall navigation and coding performance: Once again the organization of shortcuts enable you to code much faster and navigate more efficiently. Autocomplete is notoriously intelligent. Even in suggesting variable names.
- Control over Deployment: Like in Eclipse you are in charge for deployment. I found configuration to be more intuitive.
- Easier Import: Somehow I found easier to import third party code to IntelliJ than in Eclipse. IntelliJ seems to guess better where the sources, libraries and dependencies are.
- Unit Tests: IntelliJ has the best unit testing support I’ve seen. I could easily visually diff expected vs actual in unit tests which is not very ergonomic at all in Eclipse.
- Several other good stuff: IntelliJ is very good at locating Spring and CDI beans navigating between code and configuration. Unbelievably good code completion in EL, SQL, JPA etc. Things that you cannot find in Eclipse or Netbeans.
- Debugging: I hate Eclipse’s lack of proper evaluation during debugging. IntelliJ is great at that. You get code completion everywhere.
So far here are what I didn’t like about IntelliJ.
- In Eclipse, when you hit save, you get red underlines in files where there’s a problem. In IntelliJ you don’t get that. you don’t see the problem until you open that file, make a build or run.
- What I write code I start with the name of the variable. Like “x=new Pojo…”. IntelliJ seems to hate that. It always tries to rename x to Pojo. I don’t know how I can change that.
- Bad scala support. If you’re using scala libraries in Java, IntelliJ complains about many things and underlines everywhere with red. Eclipse does this correctly but code completion becomes a pain. Again I’m not sure if this is the case in 11. I’ll need to check that out.
- I wish IntelliJ had easier inspect in debugging. In eclipse you highlight and hit Command-Alt-I to see the highlighted part’s value. In IntelliJ you have to click with the mouse while holding Alt key. I wish there was a shortcut for that. (Maybe there is, so please tell me.)
In the end I’ll try to get rid of Netbeans as quick as possible and see how Spring Tool Suite (STS) and Juno will be like before moving completely to IntelliJ. I’ve just downloaded Eclipse Juno and IntelliJ 11

“Forgot the shortcut of an action? Hit Command-Shift-A” – In Eclipse it is Ctrl+3
Didn’t know that. I’ll give it a try
What version of Netbeans did you use?
Starting from 4 to 7.
Well, I dont really agreed with you, these last day I was looking for a IDE and found Eclipse Juno, bloated and very irresponsive, I give a try to IntelliJ and trying to configure the local Javadocs api completely kills the Ide (never starts up againg), In the other hand Nerbeans 7.2 Its simple to configure and responsive in my experience (IMHO Netbeans its the best free intuitive and responsive IDE for Java) but I didnt try maven yet…
I’ve always used maven with IntelliJ so I cannot really tell local library management. But I’ve done a lot of library management with Netbeans and Eclipse. It’s aways a manual process. On the other hand I’d have gladly paid if Netbeans charged me money and provided the features. I’m only comparing the user experience regardless of the cost.
For your bullet point number two in your list of IntelliJ dislikes it is possible you have Pre-Select first suggestion set to Always. To check goto Prefereces->Editor->Code Completion. There is a Pre-Select First Suggestion option that has a drop down with three options: Always, Never, and Smart. If you have it set to always change it to Smart or Never and see if you like that better. If you set it to Never you will have to use the Tab key to select the first option (and give the dropdown focus). I tend to be happier with “Never”.
Hmm, didn’t know that. I’ll try that. Thanks.
Ctrl+alt+f8 for direct Code inspection like ctrl+shift+i in eclipse (windows). And yes you should consider using idea 11 .. its worth a try
And sometimes you have to adjust your coding habits like typing new Pojo() at first and hitting ctrl+alt+v for the variable name…
Thanks for the tip. I’m waiting for a time window between realeases to try IntelliJ 11
> In Eclipse, when you hit save, you get red underlines in files where there’s a problem.
Just press in Ctrl-F9 (Make project) instead of Ctrl-S.
@ponomandr, actually that behavior in Eclipse is something I favor. It helps me see what trouble I’ve caused.
I know. I miss this feature too. Actually, this feature is planned for the next release.
I just wanted to say that you will not see compilation errors until you save file in Eclipse. So you have to press Ctrl-S often. Intellij will show you compilation errors in other files when you run compilation. So just run “Make project” as often as you save files in Eclipse. You can even configure Ctrl-S shortcut to run compilation. I haven’t tried it though.
The new version seems to be doing automatic builds, though I haven’t yet checked it out.
My experience was totally the opposite.
Eclipse + Maven is a nightmare. I can’t believe you would pick it above Netbeans. Change something in a pom and you most likely need to import the project again. You need special connectors in the pom for Eclipse. It doesn’t use the pom directly but rather keeps the Eclipse project files in sync. Don’t even start me on the plugin hell. When something doesn’t work, it will fell like it.
Netbeans has Compile on Save. Unless you project has one of those edge cases where you “manually” load jars then you’re good to go. Everything runs fast and smooth.
Also, you can run Single tests. Either open it and hit the shortcut or right-click it and Test file.
You don’t have to run Clean and Build every time. A simple Build is enough, and fast enough. You may find it slow because you don’t skip the tests. That’s why -DskipTests exists.
Netbeans is the most intuitive from the two IDEs so I don’t know how come you had troubles with it. It’s also friendly to use and import any project you like. You can even select a keyboard shortcut preset if you come from another IDE.
When it comes to web development, I wish you good luck if working with Eclipse. I don’t know if it’s better then Notepad ++. And that is after going through the hell of searching for the right plugins. Fire up Netbeans and you’ll have an awesome experience.
Now, let’s get to Version Control support. Eclipse should take a look at NetBeans. It could learn a few tricks. The only features I need in an IDE for this are history and highlighting of changes. For the other stuff I have the bash+gui (but are found in the IDE too).
I think that NetBeans is cleaner than Eclipse when it comes to the screen space.
It saddens me to see so many false statements.
+1 on this comment and a -1 to the whole netbeans analysis. This “comparison” quickly goes off the rails on issues actually with Maven and not Netbeans (per se). Of course issues with maven could of course justify a separate discussion with various pro’s and con’s, but it’s a separate issue. If frustrated with maven (and who hasn’t been) you could try a different build tool; e.g., gradle or ant+mave-ant-tasks, or just visit s.o. for some good ol’ Q & A to resolve your maven questions for once & for all so you can move on. But the era of “my-special-project-file”-based IDE development with the “works-on-my-machine” mentality must be EOL’d in favor of declarative-dependency (and IDE-independent) based builds — whether it’s maven, gradle, maven-ant-tasks — doesn’t matter . Any IDE that still depends on IDE-specific configuration (or manually synchronizing/importing this configuration w/ Maven) gets a big “-1″ in all objective comparisons. A build in Jenkins shouldn’t use a different configuration than the build in my IDE (unless e.g., intentionally using maven profiles). Arg. This is exhausting to keep rehashing over and over again. (I’m also saddened.)
+10
The versions you and I have used might have resulted in the variations in the milages. You can’t possibly imagine how much I persisted on using NetBeans but it is really unacceptable for me to trigger a maven build whenever a small thing changes in a maven web project. Skipping tests is simply not enough, because it is not fast enough for me due to te size and dependencies of the project. I’m sorry but that’s the fact. None of the hot-deploy solutions did work on NetBeans and relying on maven plugins for deployment is a royal pain. I can’t say I even like the way Eclipse handles the builds but it did give me the roundtrip I needed for the web projects until a certain point. It’s been quite a while since I’ve written this post but my current setup is JRebel + IDE and it’s really not a big deal which IDE you use. I’m sticking with IntelliJ because of it’s unbelievably productive and developer friendly shortcuts.
IntelliJ 12 is going to have on-the-fly compilation which should prevent from having to build your project to find all the errors: http://blogs.jetbrains.com/idea/2012/06/brand-new-compiler-mode-in-intellij-idea-12-leda/
I agree that Eclipse + Maven is nightmare. There are always warnings and problems with dependencies.
This is the reason I’m using NETBEANS now (I was using Eclipse for many years)
Same as other commenters, been using Netbeans for years and it rocks. Forced to use Eclipse at work, it’s a big pain. Tried intellij (too quickly) but never found a reason to pay for the things I get for free in Netbeans.
It depends on the type of work. You can’t compare IDE’s and build tool without a context.