Live data from Hacker News

Making Emacs Popular Again

lwn.net

541–550 of 782 posts

Re: Making Emacs Popular Again

#541
post #429

Earlier quoted context omitted.

This view is obviously biased against Emacs, but I don't disagree completely with the premise. As an Emacs user, being "immediately productive" (whatever that means) is not your topmost priority. You mold your Emacs to a workflow unique to you, notice things you are doing often, add elisp functions to change it to make those things easier, and carry them with you from job to job. As your job evolves and changes, you…

> You mold your Emacs to a workflow unique to you, notice things you are doing often, add elisp functions to change it to make those things easier, and carry them with you from job to job. As your job evolves and changes, you maintain and grow your Emacs files over decades, and borrow from someone else's workflows. I've been writing software for ~24 years, and I can understand the need for this in the past. Now, I ju…

Somethings I find more convenient with Emacs than modern IDEs:

-Remote file editing with Tramp: This is much better even than using vi/pick over a terminal.

-Very flexible kill ring copy paste mechanism: can do complicated text manipulations with easy access to copy paste history.

-Easy macro recording and playback.

-Very flexible windowing: can show even multiple windows with the same file, even synchronized scrolling of required.

-Rectangular/column edits.

-Built in file manager.

-Built in shell, can run shell programs and capture their output.

Re: Making Emacs Popular Again

#542

Emacs might never catch up to Visual Studio Code, which is actively funded by Microsoft, but intuitively, it seems like Emacs ought to be able to catch up to Vim. It's always been weird writing Emacs extensions in ELisp, but it's not like Vimscript is a top-tier language. Emacs is hard to learn, but so's Vim. I think it comes down to performance, especially startup time. Emacs developers have never cared much about i…

I currently use Emacs (with Vim keybindings) as my main editor, after oscillating between Emacs and Vim for quite a while. I think the biggest disadvantage Emacs has compared to Vim is its out-of-the-box experience. For me at least, I would say that learning to love Emacs takes a lot of effort, far more than it should. I think folks tend to mentally categorize Vim in the same basket, but I think Emacs is far, far worse at onboarding its users.

The Vim out-of-the-box experience is not exactly great (crucial features like vim-surround have to be installed as a plugin, for instance, in the terminal version there's a lot of delay on some commands, etc). But while learning the unfamiliar keybindings initially takes effort, the huge speed advantage of modal editing becomes apparent after just a few days of sticking with it, and it becomes second nature surprisingly fast, to the point where you just stop considering editors which don't have decent Vim emulation. So while I wouldn't exactly describe Vim as accessible, it gets its core idea across fairly quickly.

By comparison (and also in absolute terms), the Emacs out-of-the-box experience is horribly bad, it seems to make no effort to wow its first time users. It stubbornly sticks to a keybindings scheme that is unfamiliar to a modern audience and which, crucially, unlike Vim's keybindings offers no substantial productivity boost. All the documentation even still calls the Alt key "Meta". So you spend multiple days getting used to Emacs' keybindings scheme, only to end up roughly where you started (not much faster than before). At this point it's easy to start feeling like learning Emacs is not worth it: you've just spent days learning without your productivity increasing, and you just have to take people's word for it that, no, really, it'll get better. The main selling point of Emacs is its extendability. But this point is lost on users who aren't already convinced that they love and want to use your editor. You have to provide a good out-of-the-box experience still.

Re: Making Emacs Popular Again

#543

Earlier quoted context omitted.

New employee 3 workflow at company X: 1. Install Emacs 2. Sync existing config via git 3. Work New employee 4 workflow at company X: 1. Install Emacs 2. Spend 2 hours learning default Emacs 3. Work New employee 5 workflow at company X: 1. Install Emacs 2. Spend 1 - 2 hours learning default Emacs 3. Spend 2 - 4 hours googling interesting Emacs packages, in each case going to their GitHub repo to read the directions, a…

Don't forget: New employee 6 workflow at company X: 1. Install Spacemacs, don't bother fiddling with the config 2. Spend a few hours working through the tutorial or reviewing the excellent docs [1] 3. Work. Become a better developer [2]. [1]: https://www.spacemacs.org/doc/DOCUMENTATION.html [2]: https://blog.osteele.com/2004/11/ides

1. Install Spacemacs.

2. Observe a flurry of errors every time you start emacs. Ignore and hope it works because no idea how to fix any of it.

3. Find, among a million others, the command that seems to do what exactly what you want. Command gives an error. Dunno how to debug.

4. Watch emacs features that should work ootb not work because spacemacs or evil or one of the three bazillion packages did something that broke it. Dunno how to debug.

5. Complain on HN, get told you need to be using the master/develop version of packages because upstream devs don't care about maintaining stable releases.

6. Use unstable packages. Observe new errors whenever you update or do anything. Hope it doesn't break more than it's already broken.

Re: Making Emacs Popular Again

#544

Earlier quoted context omitted.

I think maybe you're over-emphasizing the problem with this terminology. When I first started learning Emacs it took me all of 5 minutes to get used to the new terms, it isn't that hard. Maybe there's an argument for the lack of value of using older terminology, but again, I think this problem is overblown.

I'm not trying to say this is the most critical problem; I'm saying it's one example of many, and it spends a lot of "weirdness budget" without necessarily providing value in exchange. "kill/yank" is another example, and there are many more where those come from; the volume of them creates a "thousand papercuts" problem. In the Rust language design, we're careful about what we spend our "weirdness budget" on. We've a…

I agree that a lot of things are weird and could be modernized.

That said, as someone who very slowly got into Emacs and now am full on into it, all this weirdness slowly became more of a an, oh this actually makes a lot of sense, and, you know what, I might like it better.

I still find it weird for a frame to be a window and a window a frame. But logically, I think the Emacs names make more sense. The thing with a frame is a frame, and the sections within it are the windows. I wouldn't mind if it was renamed frame to window and window to panes tough.

Similarly, C-c and M-m used to confuse me a lot. But now I find them way nicer, why have to type all of Ctrl and alt. Also on Mac alt is called command, so having a Meta as a more generic name for the key kind of works.

Kill was weird to me, until I realized kill and delete both exist, but behave differently. There's a kill-ring, text that is killed go in it, text that is deleted doesn't. When you program extensions this is a very important distinction. You don't want programmatic edits to all go in the kill ring and polute it.

Would it be nicer if the more common user used one, which is kill, be named delete which is more familiar to people maybe.

Like I said, I wouldn't mind someone making a big refactor of it all and renaming everything to be less weird to modern times, but I think as you learn those "weirdness" they stop being weird.

Basically, I mean there's a big difference between a quirk, and just something you're not familiar with. I think Emacs names are mostly unfamiliar.

Emacs also has real quirks though, and I think those are more important to address. Like there's a lot of legacy cruft, having to still support working on defunct terminals, and all kind of stuff. Like ESC being a weird Meta key because of terminals that don't support meta. Or the entire UX which is crap by default.

Re: Making Emacs Popular Again

#545
post #513

Earlier quoted context omitted.

That's possible now, you can render images inside buffers.

Render images alone is too basic, that was already possible in XEmacs. I really meant like Jupyter Notebooks, interactive images and data structures, that you can click on and change to your pleasure and plug into Elisp code to be called back.

You can integrate jupyter notebooks into emacs so in particular everything "like jupyter" and more.

Re: Making Emacs Popular Again

#546
post #513

Earlier quoted context omitted.

That's possible now, you can render images inside buffers.

Render images alone is too basic, that was already possible in XEmacs. I really meant like Jupyter Notebooks, interactive images and data structures, that you can click on and change to your pleasure and plug into Elisp code to be called back.

Oh I see. Ya fair. Though honestly even in Jupyter notebooks I don't often see many people making use of anything more then static renders.

Re: Making Emacs Popular Again

#548
post #513

Earlier quoted context omitted.

Render images alone is too basic, that was already possible in XEmacs. I really meant like Jupyter Notebooks, interactive images and data structures, that you can click on and change to your pleasure and plug into Elisp code to be called back.

You can integrate jupyter notebooks into emacs so in particular everything "like jupyter" and more.

That is not the same as it doesn't work with Elisp, and hardly brings any value from Emacs itself.

Re: Making Emacs Popular Again

#549

New employee 1 workflow at company X: 1. Install VS Code 2. Click extensions and install language specific plugin 3. Work New employee 2 workflow at company X: 1. Install emacs 2. Try to install some source code indexing tool 3. Tool is missing 13 dependencies, so spend 4 hours finding, installing and configuring the dependencies. 4. Spend another couple hours reading non-existent to terrible documentation (documenta…

> The fact that everyone has to have a non-empty, non trivial .emacs file means it is maximally unsuitable - for everyone.

The fact that you don't have one for VS Code shows that any modifications to make it better are too difficult and that you just have to make do with how it comes out of the box.

Re: Making Emacs Popular Again

#550

It seems that if vim is so much more popular than emacs, old fashionedness doesn't necessarily make an editor less popular. If one believes that emacs would be more popular if it were more like some other editor that is more popular then being more like vim would make emacs more popular. Evil has existed for a long time but vim is still more popular. As much as emacs can be like vim, people still feel vim is better a…

Agreed. Emacs and Vim basically try to do the same thing with two very different approaches, and both can fit well depending on the use-case. I also get why many prefer VS Code, because spending hours to learn and configure a program just for text editing is not universally appealing. But other people just want that configurability.

> Evil has existed for a long time but vim is still more popular.

Because the behaviour isn't identical(it even has default settings that intentionally deviate!), because it isn't complete(it doesn't affect any other mode), but most importantly for me because Emacs cannot fully match Vim's keybinding functionality. I broke my Emacs configuration a dozen times before realising that.

I am glad I tried out Emacs as a Vim user though, it led to a couple improvements of my Vim configuration and I learned a couple new things.

Post reply on HN