I talked to someone about the extensibility of emacs, but the person I was speaking to assumed that any IDE is just as extensible by using Plug Ins.
Without turning the conversation into a university style lecture, what is one or two simple actions I can do in emacs to show someone what separates it from other IDES.
Pick any that you like from https://emacsrocks.com. My favourite is https://emacsrocks.com/e13.html well worth watching until the end where it all comes together.
For me, it is not the ability to write plugins : most editors have those to some extent.
For me it’s more about the ease of writing your own customizations and not be limited to those provided by your plugins.
A few examples
- don’t like some built in or plugin behavior ? Copy paste the original source code, tweak it to your likint and use add-advice to use your new version
- just yesterday i had some tests which generated a log in a temporary folder, 5 folders deep. I wrote a new command and bound it to a shortcut that looked for the new log file and opened it after running my tests
- i wrote a simple log browser : use a few commands to preformat the file with query/replace, and boom with emacs’ outline mode i can fold sections /subsections. This command is 10 lines long.
The strength of emacs is not its plugins, it’s your ease of making it your own
It is not so much about other tools or languages not being extensible; most quality ones are extensible. It is about how easy is to extend it since the text editor, debugging tools, and some other useful stuff like shell integration (process control, I/O), networking for example, are built into the extension language.
It is very easy to write a small tool that automates something, like a say project creation for Emacs compared to for example Eclipse, Netbeans, or VisualStudio. Since Emacs GUI is in essence a glorified console, it is relatively easy to integrate CLI, text-based tools with Emacs.