Why I prefer IntelliJ IDEA over Eclipse
Over the last couple months, I've received a few emails asking why I prefer IntelliJ IDEA over Eclipse. They usually go something like this:
I keep seeing you recommending IntelliJ. I keep trying it intermittently with using Eclipse, but I feel like I'm missing something obvious that makes so many people think it's better. Granted having the usual plugins incorporated is nice, but other things like the build process and debugger sometimes seems a step back from Eclipse. Could you please blog a '10 reasons why I love IntelliJ' or point me to something that would clue me in?
I grew to love IntelliJ for a few reasons. It all started in 2006 when I decided to migrate AppFuse from Ant to Maven. Before that, I was a huge Eclipse fan (2002 - 2006). Before Eclipse, I used HomeSite, an HTML Editor to write all my Java code (1999-2002). Eclipse was the first IDE that didn't hog all my system's memory and was pleasant to work with.
The reason I started using IntelliJ in 2006 was because of it's multi-module Maven support. Eclipse's Maven support was terrible, and m2e hasn't gotten a whole lot better in recent years AFAIK.
Back then, I used to think everything should be built and run from the command line. A couple years later, I realized it was better to run tests and debug from an IDE. Now I'm more concerned with the ability to run tests and debug in an IDE than I am from the build system.
In 2009, I started doing a lot more front-end work: writing HTML, CSS and JavaScript. I also started digging into alternate languages for these: Jade, GWT, CoffeeScript, LESS, SASS - even Scala. I found IntelliJ's support, and plugins, to be outstanding for these languages and really enjoyed how it would tell me I had invalid JavaScript, HTML and CSS.
My original passion in software was HTML and JavaScript and I found that hasn't changed in the last 15 years. AFAIK, Eclipse still has terrible web tools support; it excels at Java (and possibly C++ support). Even today, I write most of my HTML code (for InfoQ and this blog) in IntelliJ.
In reality, it probably doesn't matter which IDE you use, as long as you're productive with it. Once you learn one IDE well, the way others do things will likely seem backwards. I'm so familiar with debugging in IntelliJ, that when I tried to use Eclipse's debugger a few weeks ago, it seemed backwards to me.
In a nutshell: the technologies I've worked with have been better embraced by IntelliJ. Has this happened to you? Have certain technologies caused you to use one IDE over another?
Pros:
- Better integration with plugins in general(Maven, DB explorer) , YMMV. With Eclipse 3rd party plugins very often ruin the experience like Oracle enterprise pack validators which slow dramatically the build
- snappier and not freezing frequently on large projects.
- default configuration of formatter and editor more well tuned (but it is often customized anyway).
- More up-to-update on "cutting edge" frameworks and languages (AngularJS, nodeJs, play!, typescript, go, etc)
Cons:- UI not flexible enough => for instance I could not manage to maximize the "run" output tab. It is really annoying when you need to search in application debug information.
- No Junit test execution history !
- More strict on Maven classpath for test (deps of provided scope are ignored). To be honest it is more an issue of not behaving the same as Eclipse (which is default IDE where I work).
At work, i wanted to migrate to Intellij because I found it snappier and having more stable plugins and larger choice (like the ssh client which can be useful). However due to some little differences in behavior with Maven and Junit I did not make the switch because Eclipse is the default IDE used in my company.Posted by bengi on July 21, 2014 at 11:24 PM MDT #
I have used Eclipse since 2001. When I did only Java programming I was really satisfied with Eclipse. Then, Maven came and it was a lot of pain to use maven projects in Eclipse.
Now, in the meantime focus is also on development of webapps (eg. SPA's with html, javascript, less etc. and frameworks like Angular). Support of these technologies in Eclipse is terrible.
I heard good things about Intellij and tried it out. From my point of view it is snappier, more powerfull and more pleasant to work with.
It supports different languages and also frameworks and libs really good (Java, Scala, Javascript, Less, Nodejs etc.)
So I'm really satisfied...Posted by 127.0.0.1 on July 22, 2014 at 02:10 PM MDT #
I started using IntelliJ after I spent years with Netbeans (at the time I worked at Sun Microsystems). Visual layout editor has been way better in IntelliJ IDEA.
My favorite IntelliJ feature is Database plugin (it is now also available as a separate IDE called 0xDBE), which allows to work with any SQL DB from within IDE with great convenience. It includes SQLite support on Android, which is a unique feature at the moment, if I did not miss some recent improvement in other tools.
Posted by Philip on July 22, 2014 at 04:27 PM MDT #
One of my favorite aspects of IntelliJ over Eclipse is what I call "code hygiene" - automatic cleanup/fixing of source code (remove trailing spaces, indentation fixes, blank last lines) - all of which is outside of reformatting code.
I have seen a lot of code in our project from Eclipse-based developers that is just plain sloppy in indentation & trailing spaces.
Posted by Brian on July 23, 2014 at 03:44 PM MDT #
Posted by Pavel Lechev on July 23, 2014 at 11:52 PM MDT #
I finally switched over to IntelliJ when I had to do a project with Grails/Groovy and an intense JavaScript fronted. In neither of the languages and frameworks eclipse was any kind of help. IntelliJ gave you comfort with switching between views and their associated controllers/models, it could give you good support with JavaScript, HTML, CSS and even the Grails GSPs. The biggest disappointment with eclipse was that it even was really bad at groovy support (1 year ago). There is an official Spring plugin for it as well as a preconfigured eclipse version but both struggle with code completion, correct importing and code analysis. IntelliJ outperformed it on all these things pretty easy.
After that I stayed with it and never got back to eclipse.
Posted by Sebastian Basner on July 25, 2014 at 11:17 PM MDT #
Just made a fresh install of Eclipse Luna vs. Intellij.
Intellij: checkout maven project, new run configuration, runs. 10 min max. groovy, freemarker, svn, maven, html, javascript, everything worked.
Eclipse: installed about 5 plugins, one plugin had to be installed from different source, several warnings, restarted IDE three times. "Clean all projects" about 5 times, and then it worked. One hour.
Eclipse Luna is definitely better, but Intellj has really everything included to get startet fast. And keeps the edge throughout the whole development lifecycle.
Intellij is really a brilliant product, but I think it wouldn't be as good without open source competitors like eclipse and netbeans.
Posted by Chris on July 26, 2014 at 03:27 PM MDT #
I'm coming back to Java after a few years in the land of .NET. A number of my .NET programmer friends have commented that what kept them from exploring further into Java was Eclipse itself. I admittedly had some amnesia over the pain points of trying to get Eclipse to do things like remote debugging (correctly and consistently) and working with Maven projects. Matt suggested IntelliJ, and I was actually able to do what I needed to do in 10 minutes (versus the day or so of messing around with Eclipse).
The advantage in productivity that the .NET folks claim (and I have enough anecdotal evidence to think that it is a credible claim) stems mainly from the Visual Studio IDE and the way that it provides enough tools tightly integrated into VS itself. IntelliJ seems to take a page out of the Microsoft handbook when it comes to the importance being able to do most everything you need to do from the IDE. I'm relatively pleased with what I see in IntelliJ, and the price is very reasonable when you compare it to Microsoft's pricing for VS (which in all fairness does include an MSDN subscription).
I'm still knocking around with the community edition of IntelliJ, but if the trial commercial version really value-adds to the development experience, I'll probably end up getting a copy. Thanks for the help, Matt!
Posted by John Dahle on July 27, 2014 at 09:18 PM MDT #
I'm at the third attempt to make friends with Idea - no luck so far.
I do like its maven support, but that's about it. And it's not even that much ahead of Eclipse - you can similarly well build your run configurations out of maven goals and have Eclipse run them.
Other than that, I keep getting annoyed:
Also, Idea has by far less (useful) plugins than Eclipse has.
To me, Idea seems to be just a thin wrapper around the various tools developers use, like maven, git or svn, or the debugger. For such a thin wrapper, it does do a good job. But I expect more from an IDE.
For people complaining about instability caused by 3rd party plugins in Eclipse: just pick a distro which packages everything you need. I usually roll with STS. Comparing stock Eclipse with Idea is like comparing Linux from scratch with Windows, and ignoring all the distros.
Posted by Anonymous Coward on July 31, 2014 at 02:12 PM MDT #
Posted by ix on August 02, 2014 at 06:02 PM MDT #
That CamelCases are ignored during key navigation is only the standard behavior. If you go to Settings=>Editor=>Smart Keys and check the "Use Camel Humps Words" option you can jump through CamelCases as you wanted to.
Posted by Sebastian Basner on August 07, 2014 at 10:42 AM MDT #
Don't forget "compare with clipboard".
Something that I use all the time in IntelliJ and which has no equivalent in Eclipse.
Posted by martin on August 20, 2014 at 07:33 PM MDT #
Posted by terry on September 05, 2014 at 06:11 PM MDT #
Posted by Matt Raible on September 15, 2014 at 11:40 PM MDT #
Posted by Daniel on September 23, 2014 at 08:13 PM MDT #
@Daniel - I'd hesitate to criticise IDEA for its lacklustre support for OSGi. I'd say that rather than IDEA not supporting "industrial OSGi dev" it is a case of OSGi not supporting industrial development period. It goes completely against my grain to have to use such a painful IDE as Eclipse just to be able to build OSGi bundles. It should be no surprise that OSGi has languished for over 16 years when every last introductory guide on the topic starts with "first you must install Eclipse ..." and then you must structure your "workspace" (another Eclipsism) exactly one way, breaking any other workflows you may use, such as maven.
The one recurring argument I hear in favour of Eclipse over IDEA is one of cost. But this is generally more indicative of the developer than the IDE. I consider myself a craftsman and the last place I consider skimping to save money is on my primary tool of trade. Jet brains earned my money by developing a superior IDE five years before Eclipse had even heard of refactoring support. Why should I begrudge paying them for it. I get paid.
Posted by Dave on September 06, 2016 at 08:03 AM MDT #