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 as ALT+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.
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.
Improve software development by passing along shared knowledge and best practices.
One of the biggest challenges in application development today is how to factor in application-specific information. The answer lies in the ability to capture application evolution and developers' knowledge of building and extending the application as metadata so that it's not lost in time or translation. Once that can be done effectively, the combination of the application code along with application-specific metadata can be meaningfully packaged into reusable software asset modules. This white paper will discuss how 'Application Factories' can transform an IDE to play a central role in capturing both the application evolution and the developers' knowledge.