Live data from Hacker News

Emacs is the 2D Command-line Interface

hongchao.me

31–40 of 180 posts

Re: Emacs is the 2D Command-line Interface

#32
post #6

I love Emacs, but I think it’s safe to say that it’s a lot harder to use than Visual Studio Code, which is vastly more popular. I think what made VSCode popular was the availability of many high-quality extensions for major languages. Unfortunately, my experience with Elisp packages is that they tend to be much less stable. This is changing some with LSP mode, of course, but I think the Emacs community would do well…

I agree that VS Code is easier to edit code in, but Emacs is easier to program and extend. Ease of use simply isn't why people use Emacs and I think that at this point it would be hard for it to ever compete with VS Code on that front.

VS Code is like the Java of text editors. It relies on a universally understood and accepted model of editing text (non-modal, leveraging the mouse heavily), one that is familiar to all users, even those who might prefer a more idiosyncratic and keyboard-driven interface. This is analogous to how Java facilitates a certain style of OO programming that is familiar to the vast majority of programmers, even those that may prefer and see value in other, less popular / accessible modes of programming.

By comparison Emacs would of course be the Lisp of text editors. One could try and make Lisp as accessible and nailed down as Java, after all its extreme customisability lends itself to that, but at that point you'd just be writing a poor man's Java instead of Lisp.

This is not to say that Emacs can't or shouldn't be made easier to use, just that I don't think its survival depends on it catching up to editors like VS Code which I perceive as being for a different purpose altogether. I do, however, somewhat suspect that the crucial difficulty of Emacs comes from its messiness, from the huge number of people writing interesting extensions in it, and how they don't always quite play nicely with each other without a bit of glue code.

I'd love to be wrong about that, though, and one day get the best of both worlds.

Re: Emacs is the 2D Command-line Interface

#33
post #28

Earlier quoted context omitted.

If emacs adopted vim-like keybindings early on the war would have ended. It's the only reason I stick with vim, and I suspect I'm not alone. Yes, yes, evil mode and whatever, but it's not seamless - you still have to get familiar with emacs keybindings.

Emacs was 21-ish when vim came along

vi and emacs were released in the same year.

The fact that vi iMproved became the dominant implementation isn't particularly relevant here.

Re: Emacs is the 2D Command-line Interface

#34
post #15

Earlier quoted context omitted.

Vi/m won the distribution war. It’s everywhere. It’s on every Unix-like system I’ve ever used.

On the other hand, Emacs keybindings are the default at every terminal.

1 liner change by set -o vi and you can live in a better world.

Re: Emacs is the 2D Command-line Interface

#35
post #20

Earlier quoted context omitted.

Emacs is an elisp execution environment that by default executes some elisp that is useful for editing text. Vim is... a text editor.

So what? This is exactly how I want vim: as a text editor.

So is not the same thing as Emacs from the aspect the TFA describes, which is what the grandparent implied...

Re: Emacs is the 2D Command-line Interface

#36

Earlier quoted context omitted.

> I love Emacs, but I think it’s safe to say that it’s a lot harder to use than Visual Studio Code I actually find the opposite. As much as I dislike the clumsy GUI, I just keep coming back to Emacs for some things, for the sole reason that it's easier in Emacs. I find Emacs to be the easiest way to customize my text editor, and that's what makes it easy to get my work done. I've tried VS Code many times and I just d…

I first used emacs 25ish years before VSCode existed and VSCode was pretty much immediately easier to use and customize; to be fair, it's not like I was using Emacs heavily in the intervening quarter century, but I was using it fairly regularly. OTOH, I have no problem believing someone using Emacs as a daily driver for years would find it easier (but I think most developers, and particularly newer developers—where t…

VSCode will likely get you to 80% productivity compared to Emacs pretty fast. The question how easy is to get from 80% to 100%. It is like a prototype vs. polished code: you can create something that provides 80% of the result over a weekend and then spend 2 years polishing it, to get remaining desired functionality.

For example, I'm sure VSCode does git but does it as well as Magit? Everyday things can be done on muscle memory, most other things are much more discoverable than I've seen in any git interface (using other git interfaces is like walking in a office with your eyes closed vs open with magit). http://emacsrocks.com/e17.html

I'm sure VSCode does notes too but does it as well as Org mode? Org mode for me is an extension of my brain: it is a working memory that supports executing whatever task I do, it helps organize/automate tasks, it helps focus, etc. For people with ADHD like symptoms, I expect a life changing experience thanks to Org mode -- while other people should just become more productive in it.

Every keystroke is a programmable command in Emacs. VSCode is close. I expect parity for programming modes. Most Emacs interactions are likely less pointy-n-clicky compared to VSCode: somehow pressing keychords steals my focus less than doing actions with a mouse for everyday things freeing the conscious brain to work on the task at hand. Emacs provides a unified interface for me e.g., searching/filtering lists https://writequit.org/denver-emacs/presentations/2017-04-11-...

Emacs doesn't do web browsing very well. I have to survive with Vimium. Does VSCode perform better here?

VSCode is much more popular today. Emacs is GPL -- I expect it to be there in 20 years too. I won't trust Microsoft long term.

Re: Emacs is the 2D Command-line Interface

#37
The author is definitely right in saying that Emacs is an OS, because it runs "programs" that interact with a common datasource. The issue is that those "programs" are not the ones of your baremetal host.

The sequel that makes sense would be a text editor that allows host programs to be run seamlessly on the text. Once again the geniuses behind Plan 9 have shown how novel their system was by creating acme (https://www.youtube.com/watch?v=dP1xVpMPn8M). It allows any program to interact with whatever is in the text, so it clearly is the 2D cli the author is looking for

Re: Emacs is the 2D Command-line Interface

#38
post #6

I love Emacs, but I think it’s safe to say that it’s a lot harder to use than Visual Studio Code, which is vastly more popular. I think what made VSCode popular was the availability of many high-quality extensions for major languages. Unfortunately, my experience with Elisp packages is that they tend to be much less stable. This is changing some with LSP mode, of course, but I think the Emacs community would do well…

> I love Emacs, but I think it’s safe to say that it’s a lot harder to use than Visual Studio Code I actually find the opposite. As much as I dislike the clumsy GUI, I just keep coming back to Emacs for some things, for the sole reason that it's easier in Emacs. I find Emacs to be the easiest way to customize my text editor, and that's what makes it easy to get my work done. I've tried VS Code many times and I just d…

[deleted]

Re: Emacs is the 2D Command-line Interface

#39
post #23

As an Emacs and Lisp lover, the description of text-based tools and the power of using text to me just screams why something like Lisp is so powerful: homoiconicity. (And at least one big difference for elisp compared to Bash.) To quote Wikipedia [0] for anyone unfamiliar with the term, as I was until learning some Lisp: "A language is homoiconic if a program written in it can be manipulated as data using the languag…

I've been hearing the "code is data" mantra often, but the reason I never thought this was a desirable property is that it seems trivial to define any number of languages as their own AST. But there is a good reason that we don't program by writing out ASTs - it's relatively hard to read and manipulate. Does the Lisp implementation just happen to be particularly readable?

In a word, yes. S-expressions are a decent representation for data (lists and hierarchical structures) and the sort of code you write in a language derived from the lambda calculus, which is function calls. This is not by accident, though, since it is very desirable to manipulate code via macros.

Re: Emacs is the 2D Command-line Interface

#40
The type of interface of Emacs is not the CLI, but "roguelike" interface. ESR in "Unix Interface Design Patterns":

>> The Roguelike Pattern

Programs obeying this pattern are legion: The vi(1) text editor in all its variants, and the emacs(1) editor; elm(1), pine(1), mutt(1), and most other Unix mail readers; http://www.catb.org/esr/writings/taoup/html/ch11s06.html

Post reply on HN