If EMACS had become more popular, people would be bitching about it as much as they currently complain about web browsers. It would probably have become similarly bloated, too.
I think it’s not a very good comparison; Emacs was designed from the ground up to be an application platform rather than being a document delivery platform that got hijacked. These problems come from overcoming assumptions about everything being text-based, which are painful for this kind of thing, but have nowhere near as wide an impact as “this was designed for publishing physics papers and we’re using it for literally every thing.”
For instance, browsers have had billions of dollars poured into them, but there’s still no standardized way to override key bindings, something that has existed in Emacs for several decades. It’s trivial for an end user to extend the behavior of built-in functionality in Emacs, something that still somehow requires extensions in browsers despite it being a critically important part of the web. Even changing the colors used by a browser to display a page is difficult and badly-documented.
For instance, browsers have had billions of dollars poured into them, but there’s still no standardized way to override key bindings, something that has existed in Emacs for several decades.
You don’t have to trust the running application to provide an API for declarative key bindings. Browsers have clearly figured out how to hide advanced features from end users who lack the wherewithal to use them.
So we tried it in #emacs.
It is barely proof-of-concept. With byte-compiled files, it takes about a minute to render this:
https://mathstodon.xyz/@JordiGH/101416783098500727
It’s using the same sort of game grid as Tetris.
I’m not sure if Emacs can really be made to do this kind of thing.
Wait, what? Are you telling me that a text editor is not the ideal platform to write an emulator in?!
Wait, are you telling me that Emacs is a TEXT EDITOR?!?
Of course not; it’s a virtual machine/compiler that happens to ship with a text editor as a demo application.
Unfortunately its display routines leave a bit to be desired.
If EMACS had become more popular, people would be bitching about it as much as they currently complain about web browsers. It would probably have become similarly bloated, too.
That’s the price of success.
I think it’s not a very good comparison; Emacs was designed from the ground up to be an application platform rather than being a document delivery platform that got hijacked. These problems come from overcoming assumptions about everything being text-based, which are painful for this kind of thing, but have nowhere near as wide an impact as “this was designed for publishing physics papers and we’re using it for literally every thing.”
For instance, browsers have had billions of dollars poured into them, but there’s still no standardized way to override key bindings, something that has existed in Emacs for several decades. It’s trivial for an end user to extend the behavior of built-in functionality in Emacs, something that still somehow requires extensions in browsers despite it being a critically important part of the web. Even changing the colors used by a browser to display a page is difficult and badly-documented.
That’s not a consequence of the “document/platform” thing. That’s a consequence of Emacs trusting the user and the running application. Web browsers do not, and cannot in good conscience, trust either of them, as well as being designed for people who are more likely to accidentally change their key bindings than they are to intentionally do so (comparing rebinding keyboard commands to moving the taskbar and making half the screen gray, to be specific).
Literally another cost of succeeding so hard.
You don’t have to trust the running application to provide an API for declarative key bindings. Browsers have clearly figured out how to hide advanced features from end users who lack the wherewithal to use them.
… and much of the language is built around manipulation of text in an abstract data type called a “buffer.”
said no one, ever