6 ms·
I'm once again reminded of: "Emacs is a great operating system, only lacking a decent editor."
by Hitton 5y ago
I'm once again reminded of: "Emacs is a great operating system, only lacking a decent editor."
- nathell 5y agoThat’s the adage oft repeated by people who had had a cursory look at Emacs, but haven’t been really using it. In reality, the opposite is true. Emacs is a great editor, but the operating system that it is [0] is lacking in many ways: - performance is not great (although it’s getting better with the advent of native compilation in Emacs 28) - the system language is awkward (no namespaces, dynamic scoping by default, ...) - no preemptive multithreading - etc. On the plus side, it is auto-documenting and extremely malleable. [0]: Yeah, it can be a full-fledged OS. Just add a Linux kernel: http://informatimago.free.fr/i/linux/emacs-on-user-mode-linux.html http://informatimago.free.fr/i/linux/emacs-on-user-mode-linu...
- bananamerica 5y agoI'm pretty sure when the adage was created it was much closer to the truth. Now it's mostly a joke.
- throwawayboise 5y agoI started using emacs close to 30 years ago. As a text editor, it's pretty much the same as it ever was (the same goes for vi also).
- kqr 5y agoIt's not, though, because you now have a wealth of choices beyond the text editor that comes bundled with Emacs.
- bananamerica 5y agoI mostly meant that what we expect from an OS changed a lot since then.
- zeveb 5y ago> the system language is awkward (no namespaces, dynamic scoping by default, ...) RMS's dislike of Common Lisp really caused a colossal amount of damage. Imagine an Emacs written in Common Lisp instead of Emacs Lisp, with decades and decades of improvements. Having written a reasonable amount of software in both, Common Lisp Emacs would be very, very preferable, in part for the reasons you list and in part for others (e.g. a full-fledged, built in object system and improved extensibility).
- sreevisakh 5y agoThat may be what nyxt browser is trying to do. The author claims that nyxt could be extended to be anything, including an alternative for emacs. [1] https://nyxt.atlas.engineer/article/why-building-nyxt-instead-of-an-emacs-package.org https://nyxt.atlas.engineer/article/why-building-nyxt-instea...
- wrs 5y agoThere has been some work on that over the decades (but of course not enough momentum): https://phemlock.common-lisp.dev/ https://phemlock.common-lisp.dev/
- deng 5y ago> RMS's dislike of Common Lisp really caused a colossal amount of damage. Imagine an Emacs written in Common Lisp instead of Emacs Lisp, with decades and decades of improvements. If Emacs were written in Common Lisp, only people on big mainframes would have been able to use it in 1985, and it probably wouldn't have become popular in the first place. Also, implementing Common Lisp would have taken much longer. RMS has said that his main goal with his LISP dialect was to keep the programming language as small and performant as possible, since at that time, machines had maybe 1MB of RAM (if you were lucky) and no virtual memory. This is why for instance he decided against lexical scoping (and still, Emacs was known back then as "eight megabytes and constantly swapping").
- lispm 5y agoIIRC, Coral Common Lisp ran on a Mac Plus, which had 1 MB RAM. It included an editor.
- donio 5y ago> dynamic scoping by default This is not much of a problem in practice these days. As you probably know it's trivial to enable lexical-binding for an entire source file and many (most?) modern packages do just that. It's even on by default in the scratch buffer. Emacs is just more user friendly than most other systems when when it comes to backwards compatibility.
- kqr 5y agoIt does have a decent editor, though: Evil mode.
- RobertMiller 5y agoBetter than decent. I switched from neovim to evil mode a few years ago and never looked back.
- lycopodiopsida 5y agoI am in process of switching from emacs to neovim atm (doom evil user before). Whatever I do in emacs (emacs28, jit-compilation, M1) I still experience some UI lags l cannot get with profiler. I suspect slow lsp interface and suboptimal caching/gc. At some point I've tried neovim and was just surprised by how fast it feels.
- RobertMiller 5y agoCompany mode is the big offender for me, it handles very large completion lists poorly. I'm not yet fully satisfied with the latency situation in my emacs config, but for me there is no going back. Evil mode let me keep almost all of the muscle memory I ever learned in vim/neovim, and the rest of the emacs ecosystem more than makes up for the latency issues in my opinion.
- amitp 5y agoCorfu might be worth a look, as a lighter weight alternative to company mode: https://kristofferbalintona.me/posts/corfu-kind-icon-and-corfu-doc/ https://kristofferbalintona.me/posts/corfu-kind-icon-and-cor...
- omaranto 5y agoAnd Corfu was written by the same person as this OpenStreetMap Viewer.
- 5y ago
- distantsounds 5y agoDoesn't everyone need geo-locate and map coordinates while simultaneously editing a config file? You're on hackernews, people will come out of the woodwork to defend this stuff.
- jfb 5y agoEmacs is a reflection or a rhyme of a great operating system; it has the critical feature of total inspectability/hackability, but the implementation is poor. There is no other system in use today that has that kind of total transparency all the way to the bottom, or at least, as far down as Emacs does. I don't think people should try to use Emacs to build an OS on top of, but building an OS without understanding why Emacs survived is going to just end us up in the same world of inflexible, brittle, clunky software we're in now.
- tmalsburg2 5y agoFalse. Emacs has a wonderful vi(m) implementation in the form of evil-mode.