Before using IntelliJ IDEA, I used to work with another IDE, Eclipse. After some issues with tomcat configuration, my colleagues suggested using IDEA as a development tool for our project, MidPoint. Of course, the process of transformation from one IDE to another is always a little painful, but after some help from my colleagues and a couple of tutorials, I was able to work on our project within couple of hours.
In my opinion, developing with IDEA is very comfortable. I did not realise this fact until I had to use Eclipse in a different project and to my surprise, I found out developing with Eclipse was quite different. Why? IntelliJ IDEA is an IDE that just knows what you are doing. As I have found out later, IDEA is indexing basically everything within your project and thanks to this fact, IDEA provides really unique feel of context during development. As an example, let’s consider a feature standard for every IDE, auto-completion. Thanks to indexing, it really seems that IDEA knows what you want to type and the desired option is first or within first three or four auto-complete suggestions most of the time ( + you don’t need to press Ctrl + Space like gazillion times a day). Vast indexing of project files and state also leads to very comfortable refactoring and debugging.
I create front-end of our application using Apache Wicket framework most of my work time. Even though I am not using WicketForge plugin for IDEA right now (which I intend to try soon), the front-end development is again very comfortable. This applies to activities ranging from CSS and HTML editing to writing simple Javascript scripts and of course, Java code. Even the little details, like smart auto-completion of string parameters from .properties files (see figures) leads to increased productivity and code quality.
On the other side, IDEA is quite a resource consumer. I can feel this often when I am working on my older laptop. But increased resource consumption is a little price to pay for intelligent Java IDE such as IDEA.