4 ms·
I've been thinking about the whole Unix philosophy vs Emacs and I'm not sure Emacs does not follow it: according to Wikipedia: 'GNU Emacs, describes it as "the
by globuous 7y ago
I've been thinking about the whole Unix philosophy vs Emacs and I'm not sure Emacs does not follow it: according to Wikipedia: 'GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor"'.
And it does it very well! It just turns out that "extensible, customizable, self-documenting, real-time display editor" is really powerful. Wanna display text in a way that makes it easier to edit code? Evil. Wanna display text so its easy to interact with Git? Magit. Wanna display text so that its easy to navigate your file system? Dired. And so on.
Emacs "just" lets you display and interact with text on your screen, and it does it very well. I didn't think much of text UIs until I used Magit.
- nerdponx 7y agoI'm waiting for the day when somebody writes a Neovim frontend in Emacs, so I can literally use Vim from inside Emacs.
- logicprog 7y agoIn the days when I used an embedded terminal in emacs (adcii term or something, I can't quite recall), I at one point used vim to open a filw in that terminal, and lo and behold, it actually functioned pretty well. So I finished editing the file and then realized what I'd just done and spent the rest of the day laughing! (:
- TeMPOraL 7y agoYou can already almost use Vim from inside Emacs via Evil mode.
- pmoriarty 7y agoWhat of vim are you missing from Emacs' Evil mode?
- TeMPOraL 7y agoYeah, Emacs follows UNIX philosophy only in the edge case of "doing one thing" being doing everything that's even tangentially related to or representable as text. It technically conforms, but kind of goes against the spirit :). Emacs is really best seen as a platform for running Emacs Lisp software. An OS within an OS. It just happens it's optimized for text editing, and it ships by default with a text editor.
- mrmonkeyman 7y agoAgreed. One of the pillars of Unix philosophy is stdin/out and pipes. Emacs balatantly ignores them.
- tempguy9999 7y agoIf it didn't ignore them, how would it use them and what would it be able to do better? Genuine question.
- dustfinger 7y ago>Yeah, Emacs follows UNIX philosophy only in the edge case of "doing one thing" being doing everything that's even tangentially related to or representable as tex. I think that is the right idea, but it can be reworded to: >Yeah, Emacs follows UNIX philosophy only in the case of "doing one thing" by being an interactive, turing complete, generic text processor.
- jbotz 7y agoOn the other hand, don't look at emacs as a tool on Unix, look at it as a tool like Unix... it has a few simple abstractions (text, buffers, windows) and presents to the User a programmable shell to act on those abstractions.
- antoineMoPa 7y agoIn short: Emacs runs elisp and does it well.
- ben509 7y agoDoes any GUI application follow the Unix philosophy very well? Because the other side of "do one thing and do it well" is that arbitrary tools can be combined, and that tends to break down once you leave the command line. Emacs tries to work with the command line; it can run a terminal inside it, or run commands on a buffer with M-|. And emacsclient --eval can run a Elisp from the terminal. But... > Wanna display text so its easy to interact with Git? Magit. Wanna display text so that its easy to navigate your file system? Dired. That nicely highlights the way Emacs usually interacts: by wrapping existing tools rather clumsily with a lot of Elisp. And it's forced to do this because the other Unix philosophy of "everything is a file" has made it very difficult to evolve beyond the command line. Which is not to say Unix was wrong: the command line is very good at what it does and lots of other schemes following it have crashed and burned because "do one thing and do it well" often conflicts with their more complex notion of "everything is an X".
- saagarjha 7y ago> Does any GUI application follow the Unix philosophy very well? Because the other side of "do one thing and do it well" is that arbitrary tools can be combined, and that tends to break down once you leave the command line. Building scriptable applications works relatively well: see OSA on macOS.
- nine_k 7y agoIt's funny that you should call magit "clumsy", implicitly opposing it to Git's CLI.
- tempguy9999 7y ago> by wrapping existing tools So you propose emacs should write it's own version of everything, instead of using existing functionality? > rather clumsily That's a highly subjective view, if not weasel words. > with a lot of Elisp. How does the amount of lisp even matter so long as it gets the job done well? Anyway, dired's great (in your view where does it fall short - honest question) and while I've never used magit I've heard not a single bad word against it.