brandur / sorg

A Go-based static site generator that compiles brandur.org.
MIT License
494 stars 165 forks source link

Learning from Terminals...: Have you tried Emacs? #204

Closed Ambrevar closed 6 years ago

Ambrevar commented 6 years ago

I liked your https://brandur.org/interfaces article and I think it could go even down the road of the "text oriendted user interfaces".

Because that's what it boils down to in the end. By the way I think that what you really meant was not "terminals" but "shells". Emacs Eshell and M-x shell show the clear distinction between the two.

I wrote about it on Reddit a year ago: https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is_my_main_shell/. You might like it :)

brandur commented 6 years ago

Hey @Ambrevar, thanks for writing in!

Because that's what it boils down to in the end. By the way I think that what you really meant was not "terminals" but "shells". Emacs Eshell and M-x shell show the clear distinction between the two.

Yes, you're right. I'm aware of the distinction, but still misuse the terminology.

For the purposes of the article, I'm going to leave the use of "terminal". Although this is in essence an argument for text-oriented interfaces, I do like how the use of "terminal" calls to mind the use of keyboards and text-only interfaces. This is also somewhat of an aesthetic consideration for the target audience — most readers aren't going to be aware of the difference, and it doesn't make the argument any stronger by going into it. Among the readers that do know the difference, most aren't likely to be overly concerned by the mixup.

I wrote about it on Reddit a year ago: https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is_my_main_shell/. You might like it :)

I just read it and found it quite compelling — nice work!

I'm especially sold on the idea that most shells being stuck in the mode of one input = one output is one of their weakest points. After running a command, the results of it should be fully (and easily) available in your buffer for editing or reuse, and shells do a tremendously poor job of this. As you point, filters like less, grep, etc. should really be post-hoc additions rather than something you're running inline with your commands.

I should make an effort to try Emacs again. But as a person who likes esoteric tools, with every one of my forays into it so far, I've found it to just be a little too esoteric, even for me. I realize there's a lot to like, and Eshell sounds very interesting, but I'm not crazy about heavy configuration, the ergonomics of C- style commands, and personally believe that Lisp is the most oversold idea in computer science of all time (although it sure looks great next to Vimscript). I realize you may disagree on all these points, and that's okay — this is just a little rationale for what's kept me out of Emacs so far.

One last point — Eshell may be a one up over other shells, but I don't think it quite gets us everything we'd want in a hypothetical next generation tool. We need richer media like images, interactive charts, and alternative fonts to be directly available as a first class supported feature. Googling around I see there have been some experiments for this kind of thing in Emacs, but I'd guess that we'd want a framework that allowed for them baked right into the core.

Anyway, I'm going to close out this issue for now, but thanks for the discussion!

Ambrevar commented 6 years ago

Thanks for the feedback!

I'm not crazy about heavy configuration,

It does not have to be. Emacs even features a full-featured grafical configuration menu.

the ergonomics of C- style commands,

Emacs does not enforce any particular style of bindings. Both Vi-style bindings and CUA bindings (C-c/C-v style) are supported.

Lisp is the most oversold idea in computer science of all time

Lots of people (including me) don't get the depth of Lisp even after years. It's mostly conditioning I believe... And overcoming it it's really worth it :) Unfortunately it's pretty hard to convey the idea without practice. The following article is a classic, but it does not go into the details:

http://www.paulgraham.com/avg.html