If you look at Java or C IDEs, there are massive amounts of extra support to overcome usability problems in the language, such as long names, complicated structures, and a lack of language based abstraction mechanisms. These work fairly well to overcome the language's problems, but I have a different solution, and in fact, this is the preferred solution of most programming language researchers. Indeed, I have found this to be a viable and especially useful feature in the business programming world if you are understaffed and have fewer programmers, but more "competence" than your competition.
Basically, I prefer to use my programming language to create my abstractions at the level where they are usable, so I only have to type in what I want, and I don't have to be overly verbose. It's not hard, in this way, to enter code, because you don't have waste. Design Patterns are, instead, just syntactic abstractions that are hidden away. In this way, I find that the IDE is overrated. As you can see if you look at some of the most productive Scheme programmers, very often, they do not use much of an IDE, though they have some tools to help them? Why? Well, if you look at their language, you'll see that they don't avoid the features that IDEs give them, but rather, they have them built into their language in a more elegant fashion.
I like this.
Basically, I don't use an IDE: my programming language is my IDE, and a good one at that.