23 May 2005

I get a lot people offering me free copies of their new software development tool. Sadly I don't have time to look at them - and frankly I'm usually underwhelmed. Very rarely do I get enthusiastic about a tool.

In late 2000 I was keeping more of an eye on tools - particularly those involving refactoring in Java. In those days there were no decent refactoring tools in Java. The Smalltalk Refactoring Browser had proved that it could be done, but I was waiting for someone to cross the Refactoring Rubicon. It was under this guise that I first tried out IntelliJ IDEA by (what's now called JetBrains).

I was impressed by its refactoring support - one the first tools to do it in Java. But what really got my attention was all the other things it did. The essence of its capability was that it creates a parse tree in memory while you're editing - and uses that parse tree to help you. Suddenly static typing isn't just something the compiler spanks you with - now the editor can give you type correct method completion. At times its ability to guess what I wanted to type was creepy. I've become addicted to ALT-ENTER whenever something looks wrong.

The biggest endorsement of IntelliJ came from Thoughtworks developers. If anyone suggested a standard IDE for Thoughtworks projects we needed tear-gas to control the riots. There were JBuilder zealots, textpad zealots, slickedit zealots - don't even get me started on the emacs zealots.

Within six months nearly everyone was using IntelliJ. Voluntarily and eagerly. Even Simon Harris caved in.

I was known for my annoying habit of stating how Smalltalk's IDE was better than anything I'd seen. No longer. For me IntelliJ was first leap forwards in IDEs since Smalltalk. Power and usability that suddenly made everything else second rate. We had entered the post-IntelliJ era

IntelliJ isn't the only IDE in this new world. Eclipse followed pretty fast and has many of the features that made us love IntelliJ so much. But I complement Eclipse by calling it a post-IntelliJ IDE. And although Eclipse is really good, I still see a strong preference towards IntelliJ around Thoughtworks.

(Visual Studio is still stuck in the pre-IntelliJ world. Fortunately JetBrains have ReSharper that takes it into the new age.)

I don't know how long IntelliJ and ReSharper will continue to be favorites. The tools business is brutal and developers are fickle. But whatever happens in the future, I'll always see IntelliJ as the inflection point of IDEs, a milestone tool.