2 ms·
I run Emacs, in GUI mode. If the language tool have a debugger and/or an interpreter, there is the IDE. In the rare case that there is not a ready made comint
by gkya 8y ago
I run Emacs, in GUI mode. If the language tool have a debugger and/or an interpreter, there is the IDE. In the rare case that there is not a ready made comint implementation for a language, it's easy to do. Completion, well M-/ is good enough. If I don't know a function's name, I need to read the manual to find it and to learn what it does anyways. If I need snippets, it's easy to define them, even without an Emacs minor mode for snippets. Every part of the system is extensible, every keybinding redefinable, and almost every functionality composable. And almost any programming language with more than ten users has an Emacs major mode already made for it. If I really want semantic completion or on-the-fly error reporting and linting (I don't use these out of preference), it's dead simple to integrate and enable.
Not only, but I can use the same thing to read my mail, maintain my agenda and create and edit documents.
With an IDE, I need another IDE for every language I use. Then I still need a text editor for editing text anyways. Each editor has it's unique method of customisation, and its conventions, its own keybindings, its own behaviour &c, and its own way to store customisations, which are hard to version control, if possible. And substantial customisation that requires custom code is either impossible or very hard to do.
Emacs is an IDE for Emacs Lisp. But it's so naturally extensible that it's become an application platform, basically. If all you do for all your career is to write in one language or two, then go with an IDE, I guess. But I'm glad I can use the same program to edit Perl, Python, Ruby, any sort of text, HTML, C, Assembly, Ada, Cobol, JavaScript, CoffeScript, Clojure, ClojureScript, Java, Kotlin, Scala, Haskel, and so on; and do way more with it than editing source code.