Something 'deeper' than Emacs, or am I looking for a unicorn?

Hey all - I really love emacs as a text editor and environment, but I'm wondering... Does there exist something that is

- More customizable than emacs

- more mature community and 'giants to stand on' (like packages)

- Stronger expected lifespan

- Realistic enough to actually commit to (not like, build the universe, build your OS from scratch)

I'd love to hear if there's anything you've found beyond the Mariana Trench! Will

4 points

willschetelich

14 days ago


11 comments

goku12 14 days ago

The only editor that I can think of and matches Emacs on any of those points is Lem [1]. It has a few hypothetical advantages over Emacs:

- Lem is written in Common Lisp. It's less of a niche language than ELisp. You are therefore likely to find a larger library ecosystem.

- RMS didn't really like CL when he wrote Emacs. But CL is arguably a much better language today. For example, you don't need to worry about dynamic scoping.

- Lem is written entirely in CL, without any C core like Emacs does. That possibly makes Lem customizable to a deeper level than Emacs.

- Being a very young project, Lem is likely more optimized for multithreading compared to Emacs. Emacs multithreading is not up to expectations, perhaps due to legacy plugins and code.

Lem is not capable of competing with Emacs on any other points on account of the huge difference in their ages. Lem has much fewer extensions and a much smaller community. I don't know the project well enough to comment about their longetivity. But it's worth a look.

[1] https://lem-project.github.io/

andsoitis 14 days ago

Customizability: what are you trying to customize but you can’t?

Packages: https://melpa.org/#/

Lifespan: Emacs hails from the 70s and is actively maintained.

  • setopt 9 days ago

    I’m not the OP, but I think the Emacs UI is the hardest part to customize compared to some other editors.

    For example, I’ve tried really hard to just change the background color of the echo area, and it appears to just not be possible without editing the C code. If possible I’d also love to be able to disable the echo area, and just check Messages directly when needed.

    Whereas in Neovim you have plugins like noice.nvim that even removes the equivalent of the echo area completely, and shows messages in pop up windows instead. I don’t like that UI either, but it shows the flexibility.

    • iLemming 2 days ago

      What a strawman argument. Your'e cherry-picking one specific thing while ignoring Emacs' extraordinary customization capabilities. What about advice system, hooks, dynamic binding, self-documenting, etc.?

      In Neovim you can't redefine fundamental commands (like how self-insert-command works) or modify core behaviors with great granularity — in Elisp you can redefine one given aspect of a function without reimplementing the entire function. Or what about live introspection and modification of the running editor?

      Yes, the echo area has limitations due to its C implementation, but using this edge case to claim "Emacs UI is the hardest to customize" ignores that Emacs lets you rewrite practically everything else - including replacing entire subsystems like completion, windowing, or even turning it into a completely different application.

frou_dh 13 days ago

> Stronger expected lifespan

I think Emacs is a good example of the Lindy Effect. It's going to continue being alive for a long time because it's already been alive for a long time.

https://en.wikipedia.org/wiki/Lindy_effect

leakycap 13 days ago

If you've been on a long journey of trying different apps, you may just be restless now that you've found a tool that mostly works. Stick with emacs, use your extremely limited remaining time on earth to do awesome things.

Emacs is more than enough, you do need more than 1 app.

GianFabien 14 days ago

There are literally 100s of text editors, so it really is more a matter of taste and preferences. However, to the best of my knowledge, emacs with eLisp is unlikely to be eclipsed on any of your points.

  • willschetelich 14 days ago

    I hear you! Just curious to see what's out there :) It seems like emacs seems to be the best 'return on investment' for OS design... besides making your own OS haha

mikewarot 13 days ago

You could dig deeper into software archeology and go with TECO, the editor that EMACS was first written in. It would be silly to do so, however.

panza 12 days ago

The only editors that might meet that criteria are (Neo)Vim and VS Code.

  • iLemming 2 days ago

    They are NOT more customizable than Emacs.

    Let's think of some hypothetical (close to practical) scenario example. Let's say I need a retrieval of fully-qualified name for a function at point.

    In Emacs, I can start prototyping advising function in a scratch buffer changing the behavior of lsp--symbol-information (or related) function. I can try it out right there. I can easily debug, profile, enable and disable this feature without ever having to restart Emacs. Hell, I wouldn't even have to save it — it's all dynamic, all in-place, it's like playing a videogame.

    In Neovim, I'd have to create/modify a Lua file. Find the right LSP handler to override. Write the override function. Reload the editor (losing my state), or source the file. There's no easy way to temporarily test without affecting my config. Sure, one can use Fennel for replicating REPL-driven development, but that still be limited compared to Emacs — no advice system; can't easily revert (no advice-remove like stuff); limited introspection; scope issues — need to manage original function references manually; harder discovery — no describe-function like stuff.

    In VSCode to get something like that you'd need to create an entire extension project; write typescript/javascript; compile the extension; install it in VSCode; sometime reload VSCode; debug through the extension host; there's no "just try something" way.

    Joyride is a game-changer for VSCode — one can use Clojure-based scripting directly, making it almost Emacs-like, yet still — no advising, can't change editor's core internals — they are not exposed to you, there's no true runtime modification of core behaviors.

    So no, VSCode and Neovim do not meet the OP's criteria.