IDEs are typically tuned for a specific language or tightly coupled set of languages. For example, Visual Studio is designed for the .NET languages, Eclipse for Java, Ruby Mine for Ruby, etc. Trying to use Eclipse for Ruby can work … but it isn’t ideal.
In a typical week, I work in:
- and others
Editors generally aren’t tuned to one language or set of tools. I can use the same workflow with whatever language I work in. I don’t become dependent on the IDE working its magic and learn more about the language and tools … and am therefore encouraged to create my own tools that cover pain points that are then portable to whatever environment I move to.
Also, because editors aren’t tied to a specific language or set of tools, the more I learn about working with a particular editor, the more proficient I am at working with any kind of text: Ruby, Java, CSV, Markdown, HTML, XML, configuration files, etc.
Finally, most IDEs are closed source. The technologies that make IDEs possible (such as reentrant grammar parsers for the best syntax highlighting or search models for autocomplete) are proprietary secrets that, while very useful for those IDEs and languages, keep us locked in to older technologies. I want to see generic and open technologies created that can be extended to support whatever I want to work on … not what some company wants to lock me into. And that’s what Atom is working on … but because the only (or at least best) prior art is all proprietary, we have to start at ground zero and build it open from the start.