I set out on a 3 month journey to learn for myself why IntelliJ IDEA users are so fanatical. The following is my 30-day status report.
Okay, I know that the choice of an Integrated Development Environment (IDE) can be akin to a religious war among developers: in one corner you have the Eclipse fans that love Eclipse's plug-in architecture and expandability and in the other you have the NetBeans fans that enjoy its Swing-based user interface, its plug-in library, and a set of impressive open source tools like profiler and the enterprise pack. And although these two groups of developers love their respective IDEs, there is one group that is more fanatical: IntelliJ IDEA fans. While an Eclipse user might be tempted to at least take NetBeans for a spin, and vice versa, IDEA users don't see the need to even learn what they might be missing.
As such I embarked on a journey to use IDEA exclusively to see if I could discover why people love it so much, and hence answer my burning question of whether or not I could leave IDEA once immersed in it. I'm only in my first 30 days of my three month trip, but I think the big reason that people love IDEA is not because of its plug-in architecture or because of its WYSIWYG GUI layout capabilities or collaboration functionality, but because of its knowledge of Java.
First off let's consider its editor: while VI and EMACS have many uses as editors, IDEA was designed for Java programming. For example, you can very quickly generate getter and setter methods for object attributes or wrap a statement in a try-catch or if-else block, with simple key strokes. When your goal is to write Java programs, IDEA truly makes Java coding easy and I'll say it, fun! But in order to really experience the power of its editor, you need to take it for far more than a test drive - you need to immerse yourself for at least a couple weeks or a month (its sheet of keyboard shortcuts would be enough to make a VI user wince.) Just like you can take a Porsche GT1 for a ride around the block, you can't truly appreciate it until you open it up on a race track.
The next thing that I noticed when using IDEA was its refactoring capabilities. For example, you can quickly move a class between packages or extract an interface from a class. You can change the name of a class and it will track down all classes that use that class and change the names for you. Basically it allows you to take a Java concept (like changing a class name, package name, or field name) and it takes care of all of the work under-the-hood for you.
Like I said, I'm about 30 days into my 3 month test, so I'm sure that I've only scratched the surface, but it suffices to say that with this introduction, I'm becoming more and more "one of them". What do you think? Is IDEA really the panacea for Java development? Would you leave Eclipse or NetBeans for IDEA? What would keep you where you are? And for the IDEA users, what are the big things about IDEA that make it so good?