Something 'deeper' than Emacs, or am I looking for a unicorn?
4 points| willschetelich | 8 months ago
- 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
goku12|8 months ago
- 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|8 months ago
Packages: https://melpa.org/#/
Lifespan: Emacs hails from the 70s and is actively maintained.
setopt|8 months ago
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.
frou_dh|8 months ago
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|8 months ago
Emacs is more than enough, you do need more than 1 app.
GianFabien|8 months ago
willschetelich|8 months ago
mikewarot|8 months ago
panza|8 months ago
iLemming|7 months ago
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.