Originally Posted by meetscott
I use Intellij for all my work. I'm a recent convert, less than a year. But it is the best IDE by far. It uses the least amount of resources, has the most features and is the most stable.
I'd say it uses about half the resources of STS or Netbeans. It has excellent support for frameworks like navigating Tiles references for example. It supports aspects better than anything else out there. It's much more stable and less prone to locking up. You can run JPA queries on the fly outside of running your application. I could go on and on because there are tons of little features that are great too.
Prior to that, I was a Netbeans guy for 6 years. It's a great IDE too. I like the app server hooks the best on Netbeans because it runs things as you would outside the IDE. Maven builds are native now too so there's no special IDE specific structures to maintain in Netbeans. Netbeans has no AspectJ support though. This makes is a hard IDE to use with Aspect development and frameworks like Spring Roo.
I've also used Eclipse and the Spring Source Tool Suite, sometimes known as STS. I hate Eclipse and all its derivatives. I wish it would go away. Each release seems to get less and less stable. I keep up with it because it's so popular and I like being able to help other people with their problems. And people have a lot of them with STS or Eclipse because it's such a kludge. I can't believe the resources that are wasted on getting things working in Eclipse. It's especially egregious because it eats itself once in a while and has to be reinstalled. This is on all platforms, Windows, Linux and Macs.
Some projects force the use of one IDE, usually Eclipse, because the project has done something stupid with the build and no one has the time or the know how to fix it. I hate these projects and it gives Java a bad name because continued development is invariably hindered by other nonsense in the code base.
On a happier note, I use Slackware for everything. It's been my primary development platform for the last 5 years at work. I'm a consultant so I end up in a lot of different environments with various clients. Linux is the way to go. No one runs their app servers for Java on Windows so it usually works out well even in Windows centric environments. Windows is such a dismal platform for Java development.
I've just started using IntelliJ myself, due in large part to an article
I found praising its intelligent code completion. I just had to try it. So far it hasn't left me disappointed, though it's user interface leaves something to be desired for me, especially on a small high resolution ultrabook screen (which I have). So I'm still using NetBeans most of the time, because I've found things like icon size much more easily configurable. Then again, maybe it's just that I already know how to configure them.
I completely agree with you about Eclipse. I've always hated it. I'm using it now for Android development just because I'm just starting out with Android and I want to get my bearings before I try to set up the SDK in NetBeans, which I've heard can have patchy results. I can't wait to ditch it, though.
A Windows development environment is my definition of hell.