Live data from Hacker News

The values of Emacs, the Neovim revolution, and the VSCode gorilla

murilopereira.com

31–40 of 353 posts

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#31
post #11

Earlier quoted context omitted.

The only place that the developer of neovim is referred to as its “author” is in a quote. But also, I didn’t get this impression at all while reading the article.

The article is deliberately using selective quotes to paint Bram Molenaar in the worst possible light. A common tactic among people who take over code bases in order to cruise on other people's hard work.

You and thread OP seem to have signed up just to make these comments. Do you think your obvious bias against Neovim is coloring your perceptions of the piece? Because it is not about trashing Vim or Moolenaar.

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#32
post #14

Are powerful editors really that much of a force multiplier? My career path has pulled me from a CS degree into loosely related fields so I mostly only code as a hobby. I end up using basic editors (e.g., gedit) and reaching for grep/sed/etc when I need something fancy. Is having that power in the editor versus the command line that much of an advantage?

Yes. Switching context is expensive for humans and modern editors mean you do it less frequently and with fewer conventions to learn. A big one for general editors is that they work for everything: you can build, lint, debug, refactor, etc. using the same UI for every language which reduces the frictional cost significantly in fields like web development. Having code-aware auto completion, function signatures, and type validation is especially good here since you waste a fraction of the time realizing that you were omitting an argument by mistake or passing the wrong type – especially when that isn’t something which a quick compile check will tell you.

Refactoring is a good example: I’ve noticed that most programmers who don’t use advanced editors avoid fixing things which require analysis because it’s tedious to do right. That leads to accumulated technical debt over time with variables or methods having now-inaccurate names, etc. Nothing critical but a frictional cost which goes down when you have easy tools to perform language-aware refactoring (e.g. replacing a name in a function but not the same name used elsewhere in the same file).

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#33
post #5

> It also shines in areas where Emacs doesn’t: if you’re a programmer working on typical contemporary projects, mostly just wanting to get stuff done, things usually… just work. You install VSCode, open a source code file, get asked to install the extension for that particular language, and that’s it. You get smart completion, static analysis, linting, advanced debugging, refactoring tools, deep integration with git…

Completely agree that magit is superb. The fantastic integration with git forges to check out PR branches as worktrees has really been a game changer for me. I can see what PRs are open, create a worktree with fuzzy selection on PR branches, and then switch to that worktree to review changes in ediff.

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#34
On vim vs neovim: My deep vim usage hasn't really changed much since it stopped being my primary editor usage 5 years ago, so this isn't the world's most informed opinion, but I've not noticed a drastic difference between vim and neovim. The one difference I've noticed and literally the only reason I've moved to neovim is that it uses XDG dirs by default and thereby clutters my home directory less. Otherwise, the two seemed pretty interchangable.

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#35
post #28

Noob question: Is Sublime text still a good text-editor in 2021? Did it just loose momentum or not being open-source is insurmountable? I still think its speed and usability are not easy to match.

Open source is kinda irrelevant IMO. The answer is, of course, it depends . How much do you value language integration? Do you have muscle memory for vim or emacs? There are many more questions here. VSCode supports language server protocol arguably best, because LSP/VSCode/TypeScript were all developed somewhat in parallel. But some languages don't have complete language servers, or already had their own forms of ID…

> Open source is kinda irrelevant IMO.

Good tools become even better with time investment. I don't want to invest time into a tool that dies if the dev company loses interest/goes bankrupt/gets bought by oracle/... . Emacs is much older than me and will be around for decades to come. Sublime 2? Probably not. Sublime 3, probably several years. Sublime 4,5,6... who knows.

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#36
post #4

I don’t find VS Code to be a good text editor in the sense of a tool to wrangle text: the keyboard shortcuts are rather arbitrary and don’t seem to be logically organised, and it seems not to have learnt much from eg modern text editors like Sublime Text (even Sublime compatibility isn’t as good as the real thing). That said, for writing code, it’s fine because most of the time I’m thinking and typing in short runs o…

I completely share your sentiment. VSCode is by far my favorite programming environment, its killer features as far as I'm concerned are its excellent debugging functionality and the remote mode (we often work on multiple remote machines simultaneously -- being able to have ad-hoc remote configs is a life-saver!)

The worst part is, ironically, the editor itself. As a former vim user I'd love to have vim keybindings, but the vim extensions are painfully slow and unresponsive. I ended up just using the default in spite of it being incredibly mediocre.

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#37
post #17

Our text editor is a tool, there’s no fundamental value in a tool vs the other, they do not possess life. They’re tools like a fork is a tool. I wonder what of the things you use in the day to day you analyze so deeply, your microwave ? The forks you buy? Might be an interesting exercise of thought but for something that I use to make money, I will use the best tool available for the job, thank you very much.

Maybe not forks for eating. But when I buy a pitchfork, I do care about the source of the handle's wood because I do not want to contribute to deforestation. I also look at the repairability. For example, would any standard handle fit? And can I attach one myself? And the "usability" of the handle, and the fork as a whole, is another factor that is important to me. Often, just from handling them, you do get a good feel if the pitchfork makers actually seem to care about their users and know what they are doing or not.

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#38

Noob question: Is Sublime text still a good text-editor in 2021? Did it just loose momentum or not being open-source is insurmountable? I still think its speed and usability are not easy to match.

Sublime is a perfectly fine and frankly faster editor than VSCode. The problem is the slow nature of the updates, the underwhelming API and people abandoning it in droves because they opt for VSCode makes the extension library not as comprehensive or feature packed. Half the extensions I use in VSCode don't have a parallel in Sublime

I still use it to quickly edit text or read some files quickly cause it opens really fast but it's definitely never going to be my daily driver unless something changes drastically

Re: The values of Emacs, the Neovim revolution, and the VSCode gorilla

#39
Emacs "doesn't, however, affect progressiveness as much as freedom. Because of freedom, when faced with a question of using technology that is 1. Non-free, but objectively better, 2. Free, but objectively worse, the latter will always be picked. Given that most technological progress happens through the mechanisms of capitalism, "free" alternatives commonly lag behind to a large degree."

Emacs has a degree of integration and customization ability that VSCode just can't touch, so all this talk about VSCode being "objectively better" is pretty myopically focused on just a handful of things geared towards ordinary developers "who mostly just want to get stuff done".

Those aren't the only people in existence, and if Emacs doesn't cater to those it's not because of its philosophy of Freedom, but because it doesn't have enough developers who care to steer it in that direction.

Emacs is an editor-creation toolkit which is about customization, flexibility, and power. Making it easy to use for people who don't want to invest much time crafting their own editor with this toolkit is just not a big priority.

That said, there are some packages like Prelude, which aim at giving Emacs sane defaults and making it easier to use for beginners (though I've never used any of them, so can't vouch for how well they achieve this aim, and I doubt that any of them would give you a full VSCode-like experience out of the box).

To me the biggest weakness of Emacs, but also a strength, is that like a typical large open source meta-project (like Linux, the OS including all the software developed for it, not just the kernel) it's a multi-directional effort of hundreds of volunteer developers each running in their own direction.

There are no orders from the top steering in one direction, no army of paid developers to make thorny, decades-old bugs finally disappear. Volunteers will get to those if they're interested, and go the way their own interests take them.

It just so happens that the stars aligned so that we have the Emacs of today, given the volunteers of yesterday. If they were different volunteers with different priorities, Emacs would be different, and different volunteers tomorrow may steer Emacs in yet another direction. There is no plan. It's an anthill without a queen, with each ant building what it personally wants.

This is why, like mature languages with large ecosystems, like Python, like other flexible editors (ie. vim, with its many plugins), and like Firefox (with all of its extensions) you have packages that "interfere with one another, depend on functionality from other packages that get deprecated, changed in incompatible ways, or removed."

You really can't have a large package ecosystem developed primarily by volunteers and not have this problem. People work on what they want to work on, and if they don't want to spend the time maintaining their package or making sure it's compatible with whatever package combination any particular user happens to be using, then there are going to be incompatibilities.

But I'll take that incompatibility in a heartbeat for the enormous flexibility and power it offers, especially if the alternative is a meager, inflexible package ecosystem where how I edit is dictated from on high by people who cater to the average developer who "just wants to get things done".

If you want Emacs to be something else you either have to be really good at herding cats, do it yourself, or pay someone to do it for you. Even then, you'll have to somehow convince all of its users to switch to your "improved" version. Good luck.

Post reply on HN