Earlier quoted context omitted.
IDEs are terrible text editors. Text editors are terrible IDEs. I can't wait until people figure out how to graft good text editors and good IDEs together. One way to do that is to provide IDE functionality as an external service to the text editor. There's a Scala editing package for Emacs called Ensime that uses the Scala presentation compiler, a service that runs in the background. Every time Ensime is asked to co…
I don't know about other text editors, but Emacs is actually a pretty good IDE for all the languages I use (JavaScript, Haskell, Scheme and a bit of Python). It's not very good for Java , but it is apparently solid for Scala and supports C/C++ fairly well with CEDET, although I haven't tried that. So the external service approach works well (Haskell, Python and Scala) as does a native Emacs approach (lisp, CEDET, Jav…
I could probably get all of those features in emacs if I got everything set up correctly, but it's a lot of work. The main difficulty I ran into with Scala was generating an Ensime config. The first time I tried it, it blew up for unknown reasons. A few months later, it didn't work because my SBT project used subprojects. Now there's an SBT plugin that generates the Ensime config, so I'll give it another try someday. I'm very encouraged by Ensime's approach of integrating with and relying on the same tools as the rest of the Scala community (SBT and the presentation compiler.) It gives me hope that it won't be constantly two steps behind like it would be if it tried to reimplement everything from scratch.
However, it's definitely a problem for me if Emacs still can't handle Java well. Most of the third-party libraries I use are written in Java, so I do spend time reading and navigating through Java code. I tried setting up JDEE once and almost suffocated in yak hair trying to get basic features to work. (Granted, that was over five years ago, but still, it was much worse than advertised.)
And you know, when it comes right down to it, I really want an IDE. The whole thing. IntelliJ and Eclipse seem like bloated monstrosities sometimes, but dammit, so much of that stuff is handy when you're working on a complicated codebase. Plus they really know how to make use of my huge monitor. Using that much space usefully with Emacs and terminals is tough. I had speedbar installed for a while, but speedbar felt like IntelliJ's text editor: a half-hearted imitation of a real feature. Actually, I coded C++ in emacs for seven years and never liked using speedbar, CEDET, or even etags. They all seemed like a lot of hassle, and in every case I found that I preferred to just use Emacs as a text editor. All the Emacs-fu I learned in seven years of C++ development applies just as well to ordinary text as it does to C++ code.