Remix.run Logo
▲ cmrdporcupine 6 hours ago

Unfortunately GNU Emacs is single-threaded and blocking by design and not well suited for this kind of thing. Using it for things like browser or window manager usually ends in either weird hacks or uncomfortable pauses.

I have more hope in projects like lem which implement new emacsen from scratch.

▲iLemming 3 minutes ago | parent | next [-]

> ends in either weird hacks or uncomfortable pauses

Not true in practice. It is absolutely useful in real, battle-tested scenarios. If this were a deal-breaking problem, we'd keep seeing it discussed and eventually fixed. Like the issue with long lines, which was a problem in Emacs for decades and is now mitigated. Nobody complains about it anymore.

Lem is very cool, yet too young to be pragmatically compared with the 40-year package ecosystem of Emacs. Let's be honest, with all the "better" stuff, we're not witnessing herds of Lispers switching to it. Another decade may pass before we see it make more than a blip on the radar. Aside from a number of devoted Common Lispers, there's not much usage of it in the real world.

Meanwhile, Emacs is seeing another uptick. First it was Spacemacs, then Doom, now LLMs are making it very appealing, and we see HN submissions every other week. Don't get me wrong, I'm betting on both of these horses, even on Neomacs, and whichever wins, I'd be happy to see it. Emacs for now remains the uncontested king of Lisp-based text editors.

▲ 4 hours ago | parent | prev | next [-]
[deleted]
▲armitron 5 hours ago | parent | prev [-]

Emacs has asynchronous IO support which is more than sufficient for networking. It is up to the relevant mode or application that runs on top of Emacs to take advantage of it and not all of them do (for example, Gnus).

There are also various multi-processing configurations for even more flexibility: multiple Emacs processes that can coordinate, Emacs modules over a C API which can create native threads outside of Emacs and so on. What Emacs lacks is parallelism inside a single Emacs process, which is arguably not needed and would be a net negative from a safety, ease of development and debugging point of view.

Look at the recently introduced canvas API (https://monadicsheep.org/blog/an-introduction-to-canvas-in-e...) for some examples of what's possible via that flexibility.

Lem is nice but nowhere near as nice as modern Emacs (and probably never will be). Emacs Lisp isn't Common Lisp but has evolved significantly and the remaining differences don't really matter in practice because Emacs momentum, massive user base and ecosystem are a tremendous advantage.