Is Emacs an IDE?
FleetingWhen discussing with friends, I often here jokes about emacs being good at everything except editing text, or saying that emacs is not an IDE.
I think those are not totally wrong in their observations, but they are totally wrong in their expectations.
Indeed, I would define emacs as kind of a “general programming text based environment”. I mean that emacs is mostly emacs-lisp, with a comfortable program to write and execute the code, along with the text and window tiling management concepts provided built-in.
So, joking that emacs is not an IDE is like joking that ipython is not an IDE. It might sound funny to people that did not actually understand what we are talking about.
Because it has a programming language, you can write anything you like, even stuff to work with code (see moldable development). Because it is text based, you only need to write the syntactic and semantic part (but not the input output, encoding etc). And because it is an environment, you can show your program in emacs.
Therefore, you can of course write an IDE in emacs, provided you understand what an IDE really is. but also a mail user agent, a irc client, a TODO organiser etc. And you know what? They already exist!
Of course, each of those tools, written in emacs lisp are generally not as complete or featureful than other dedicated tools, but it makes total sense, since those dedicated tools are, well, dedicated. They spend much more time working on the features of what they are doing, thus I indeed expect from them to be better at their job than emacs is. I expect Visual Studio Code to be a better IDE than anything I could write in emacs.