About Nikita Salnikov Tarnovski

Why we dropped Eclipse in favour of IntelliJ

As a background – all of us in Plumbr have all been using Eclipse for as long as we can possibly remember. But when I just looked around in the office I saw our whole team being converted to IntelliJ IDEA users. So what made us to jump the old free-to-ride warhorse and go with something we need to pay up to $600 per seat? If you bear with me I give you several reasons why you could also consider the move.

For years, our friend Anton Arhipov has tried to convince us. He kept failing until he demoed something as simple asALT+ENTER. Based on the documentation it is not doing much – just using the suggested quick fix. But this feature is backed by something that makes many other IntelliJ features so much more pleasing to use.

Indexing. Whatever the JetBrains guys are doing under the hood, their indexing is blazingly fast and supports different content. This benefits of the fast indexing are paying off in several different usability features:

As-you-type code smells and warnings. In Eclipse you have to launch the analyzing manually, in IntelliJ you will have the feedback on those immediately.

Code completion and code generation support offered is orders of magnitude better due to the very same indexes. I guess you all remember the infamous java.awt.List autoimport on Lists which took years to be removed from the “top recommendation”. No such annoyances when using IntelliJ.

The fixes offered by the ALT+ENTER make sense in so many occasions that it already starts to frighten me. On some cases I have suspected they have an Amazon Mechanical Turk watching me as I type – the recommendations are just so good.

Language support. They way IntelliJ is behaving on different content type feels just natural and uniformed. Whether I am editing a Java, Javascript, HTML or a JPA query – the syntax support is really good and the operations I perform are uniformed across languages. I do not need to learn a set of new shortcuts each time I switch away from Java. And the code completion support, especially in Javascript is something I failed to see in Eclipse. It just wasn’t there.

Perspectives. Or actually, lack of the perspectives. Eclipse tried to offer “the best perspective” for me while I was dealing with different issues at hand. For me it meant that my screen layout got mangled each time I switched from development to debugging or refactoring. It always annoyed me and now having just one extra context-dependent window for the additional operations I feel I have a solution I am actually enjoying

Debugger. It is blazingly fast. And I will not even start with the Eclipse debugging perspective, which has to be someone’s evil joke driving me nuts every time I recall using it. And the feature set is also more pleasant, my favourite being the “Smart step into” which allows me to select which method to step into, if I have a code line with multiple method calls.

Support. Eclipse is built by a foundation. This is not bad per se, but the different interest groups in this foundation make the governing and execution somewhat difficult. For me as a developer it results in support tickets disappearing into a void for weeks. No such problems with IntelliJ where I always have my questions answered in time and without bouncing the topics between different areas of responsibility.

Several minor things I only list some of the recent favourable discoveries:

JPA query syntax correctness is being checked as you type. Has saved me a day or two already not having to discover the errors in runtime.

Property files integration. While in a property file, I can see where in the source code this property is being used and detect unused properties immediately.

Integration with different browsers. To test my HTML, I can launch different browsers right from the IDE itself, so I do not have to go the extra mile (ok, an inch) and open them by myself.

CSS colors are visible right from the IDE, so I do not even have to check the browser for this.

So I can only ensure that after your monthly trial will end there is no going back. But to be fully honest, there is one thing I do miss from the Eclipse as well – the “Save Actions”. If you haven’t used it, this is a possibility to create triggers being launched when you press CTRL+S. So for example I can have the imports organized, code formatted and @Override annotations added without any effort from my side. Haven’t found the IntelliJ equivalent for this one so far.

So, even though we cannot actually measure if we are more productive after the conversion, we are somewhat happier with the tools at hand. And we do believe that a good craftsman has to have the best possible tools in order to create the best possible craft.

Minor correction: Dali (part of the Eclipse JavaEE package) provides JPA JPQL syntax (and semantic) validation and code assist. The validation is not “as you type”, but upon “save”. This is performed for queries in both Java annotations and orm.xml mapping files. Also upon “save”, Dali will validate your JPA annotations and orm.xml files against your database schema, notifying you of, for example, invalid table or column names. Dali will also provide you with content assist within your Java annotations and orm.xml files, supplying you with a list of the appropriate database elements to choose from (tables, columns, etc.).

The main question is: who would use Eclipse if it was not free? I’ve noticed that all Intellij users had been using Eclipse before, but it doesn’t work in the opposite way. I don’t know a single developer who came back to Eclipse from Intellij.

Simply, It allows me doing what I want in the most effective way, it’s worth spending money. I encourage you guys to spend one weekend with Intellij just to test it. And if you switch, give me $1 – I would be a millionaire :)

If you have some new technology (or not enough support for something already existing) that is not currently supported by any IDE you can:

– in case of Eclipse – you can simple prepare proper plugin and use it privately or share with others by sending it to the community to review and when it is interesting it will be merged to the Eclipse stream

– in case of IntelliJ – you have to open the “request for change” (or pay for it) and wait, hoping that it gets proper priority to become the part of one of the incoming releases

> Debugger: “Smart step into” which allows me to select which method to step into, if I have a code line with multiple method calls.

The Eclipse Java debugger allows you to step into a single method within a series of chained or nested method calls. Simply select the method you wish to step into and select “Step into Selection” from the Java editor context menu. Or, use the shortcut Ctrl+F5.

Regarding “Integration with different browsers.” : Eclipse do have this feature. Go to preferences -> Web Browser. Choose “Use external web browser”. Here add all the browser you want to test your HTML with. Now select the browser you want your HTML file to be opened with. Now on opening the HTML file from within Eclipse, the selected browser will be used. You can change the browser selection to open the HTML file in a different browser.

> Property files integration: While in a property file, I can see where in the source code this property is being used. In Eclipse, Ctrl+Click on a property key in the *.properties file shows the places in source code where it is being used and takes you to the referencing code.

Have anyone mentioned about performance of IntelliJ? Maybe Eclipse lacks of some cool shining stuffs, but it works considerably faster. Maybe writing simple application it doesn’t matter, but when you have project consisting of tons of classes, several jvms runing on your local system, some JEE container running on the machine or some DBMS (I’m not thinking about MySQL) to manage data then it starts to be major factor.

I am an Eclipse user from past 10 years and the one you paid for 600$ all those features are available at eclipse as plugins.. its a matter of patience and search for which you paid 600$ like as if you don’t need to spend time in doing some research to get what you want at Eclipse… Anyways IDE is individual choice.. however when there are things for free available, I would rather don’t pay but pay some time… :-)

All the best bro with your new frame of mind.. hope you still love it never come back to Eclipse… Lots of people I know had come back to Eclipse after experiencing Netbeans, IntelliJ etc.,.

gentlemen, despite my intelligence, education, experience, and age, i have always had difficulties with IDEs.. at 60 i cut my teeth on unix in ’86 with vi.. despite a phd in CS and an MIT degree i wasted weeks on eclipse on various contracts.. it was the bane of my life.. the only worse experience was two years coding in ADA.. then i found intellij.. the free version is spectacular but the ultimate edition includes all languages of substance in a consistent wrapper and allows for a command line guru to use it intuitively.. it is one of the few software products i have ever bought.. i feel the developers deserve donations for what they have done and i am vindicated to see it is now the official android IDE now.. i judge people by the complexity of their development environment and find eclipse users to overcomplicate things.. i understand eclipse is a religion, but it is a religion i avoid like the plague.. as one blogger noted, peolpe never return to eclipse from intellij.. there is a reason.. many reasons in fact.. am i prejudiced.. yes, i am completely against eclipse and don’t even like to work with people who use it.. sorry.. it is just that mathematics and science are beautiful in their simplicity, in simplifying the complex.. going the other way requires ability and tenacity, ut it goes against the fundamental beauty of science.. just my two cents worth..

I find the autocomplete advantage of IDEA to be completely overstated. I use both Eclipse and IDEA and maybe I’m blind, but I don’t really see that big a difference Eclipse autocomplete is good and fast.

One thing that does mildly annoy me about IDEA is that formatting a document is Ctrl-Alt-L and it pops up a dialog every time. When I code I just type and don’t worry about formatting. That’s one of the advantages of using an IDE. This process ‘friction’ is annoying.

Newsletter

Join them now to gain exclusive access to the latest news in the Java world, as well as insights about Android, Scala, Groovy and other related technologies.

Email address:

Join Us

With 1,043,221 monthly unique visitors and over 500 authors we are placed among the top Java related sites around. Constantly being on the lookout for partners; we encourage you to join us. So If you have a blog with unique and interesting content then you should check out our JCG partners program. You can also be a guest writer for Java Code Geeks and hone your writing skills!

Disclaimer

All trademarks and registered trademarks appearing on Examples Java Code Geeks are the property of their respective owners. Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. Examples Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.