zaphar's point, and I agree with him, is that most of the features you mention should be offered as services that can be used by whatever UI suits your fancy. It is a shame to have to switch to shallow editing tools to be able to benefit from all this machinery.
A great part of an IDE worflow is the visual experience. Having some kind of service, while forcing each client application to create their own UIs, kind of beats the purpose.
This is why on UNIX world the developer experience feels half-baked to those of us that could step a bit into the world as imagined by Xerox PARC.
It's a great part of the workflow for you. For me it's constant visual interruption of flow state.
Nothing about having a service prevents offering that visual experience. IntelliJ/Eclipse the IDE can still exist while consuming the same backend that my Emacs consumes. You get your visual experience that helps you achieve flow state. I get my highly configurable/optimized editor that helps me achieve flow state.
I have never, ever found the "visual experience" to be the reason that I enjoy using an IDE. Besides, even if it were, what about that procludes building a nice UI around existing modules?
Emacs AFAIK can do all those things, with different degrees of integration depending on the language. For pure C, for instance, Emacs has always been the "IDE" of choice for years in UNIX(ish) environments. Thanks to Clang C++ is now covered too. For Lisp languages there is simply no other option. Even scripting languages like Python, Perl and Ruby have all got fantastic integration, and their modes keep getting better and better because of their open source nature, adding semantic analysis and tools integration.
The package manager makes it really easy to automatise installation and updates.
Sure, its learning curve is unusually high and Elisp knowledge is required for some edge cases, but it's definitely worth in the medium and the long run.
It didn't. Emacs still tries to do most of those things and fails more often than not. I love Emacs and I use it daily, but between it's dated look, monstrous codebase, enormous feature set and limited resources dedicated to development it cannot hope to match programs written for a single purpose by a team of professionals.
Still, Emacs is great editor. I'm not going to dump Org Mode, for example, and calc is great, and scripting is absolutely awesome (Emacs is also great IDE for Elisp) and so on. It's great for many things, and it's even ok for programming, but it's never going to be as good as IDEs. And IDEs are not going to have mail & newsgroup clients built into them, I suppose.
No, because IDE are more than just coding.
They offer an integration of services that one usually requires in large scale projects.
I want:
- semantic refactoring
- background compilation as I type
- static analysis
- integration with bug tracking software and source control
- visual debugging of data structures, threads
- ability to change code during debbuging sessions
- navigation of binary artifacts
- debugging unit tests
- semantic code navigation
- GUI designers
- XML build tools
- visual navigation of databases
- UML dual way generation
- ...
And above all, avoid trying to make Emacs or VIM do half of these features, every time I install them.