Hacker News new | ask | show | jobs
by bborud 1055 days ago
I used Emacs for all development work from about 1990 to 2018. About 28 years of development work in a dozen different programming languages. I also used Emacs for reading Usenet News and my email. I also used it for calendaring, planning, tracking work and a few other things.

Gnus made Emacs a great Usenet news reader, but I could never get it to fit with my email regimen. And eventually Usenet died too. For about a decade I used a mail client that someone else originally wrote, but which I modified over the years to do email like I wanted to. But this became really tedious to maintain alone so I have up.

Along the way I tried various IDEs like the tools from IntelliJ and Eclipse. None of them took. In fact, I figured it had to be me, so I promised myself to spend a few months every 2-3 years or so trying to get used to IDEs. (I still can't stand the IntelliJ and Eclipse tools).

I think what made me switch to VSC was that I eventually grew tired of the constant annoyance of having to fix my setup so it would be reasonably useful for Go development. Emacs support for the Go language server was slow and shaky, and eventually I got so tired of having to make a patchwork of Emacs packages work that I gave Visual Studio Code a second chance.

And the second time around it stuck. I'm not entirely sure why it stuck, but it did. It's been 5 years and I'm still using it. And I'm still not entirely sure why. I think it is mostly that I'm a programmer - not an editor enthusiast. Emacs was a pain in the neck to keep running when I switched. I liked Emacs, but VSC has better support for just about any language you care to program in.

I ditched Emacs because I'm interested in writing code. I'm not interested in spending a day figuring out how to keep barely working Go support running so I can get work done. It's a tool. And when maintaining the tool starts eating into my productivity, it isn't worth the effort.

The problem with Emacs is that it doesn't have a sufficiently large community. Which in turn means that if you are interested in creating tooling, your efforts will have a much bigger payoff if you choose something millions of other developers use. This is a vicious cycle.

Last I checked, VSC had about 14 million users. Out of a global population of 25'ish million developers. That's slightly over half the global developer population. That's a pretty big market. I think a fair guess (given the stack overflow surveys) is that less than a million people use Emacs as their primary development environment. Which I find surprisingly high, but it should give people hope.

Is VSC a fad? Who gives a crap? What matters is that, for me, and for a lot of other people, it is a better tool than Emacs. Because it is. If VSC is replaced by something else that works even better, and VSC disappears: who cares. Better tools is a good thing. Getting overly attached to tools that offer less is just weird and unproductive.

2 comments

Enshitification is coming to VSC, and when it does, you'll be back.
Maybe VSC will worsen over time. In which case I'll move to whatever is a better alternative when the cost of moving feels lower than the cost of continuing to use it. Just like what happened when I stopped using Emacs.

I'm assuming that "you'll be back" means I will start using Emacs again for programming.

Well, for that to happen Emacs would have to provide a better programming experience for the environments I care about than VSC does. Right now it doesn't. If or when it does, I might consider it again.

I did the exercise of installing Emacs 29.1 yesterday and trying to set up a Go programming environment from scratch. After about one hour of head scratching I had something that barely worked and I wasn't entirely sure how to get it all the way there. That's not a good user experience. It is going to be an even worse experience for someone who hasn't been an Emacs user for a few decades.

It would make me happy if Emacs was a better alternative. It just isn't. If someone has the time and commitment to fix that I'll certainly consider it, but we know that at best, that's going to be years away.

configuring vanilla emacs from scratch is certainly a lot of work. There's various distributions (Doom emacs, Spacemacs) that while not perfect have a pretty decent 'new user' experience without too much work. I don't use Go too much but I've done some projects in it. I just uncommented (go +lsp) in Doom's init.el, ran doom sync, restart emacs, and everything just worked, I didn't feel that need to configure anything further.
could you summarize in 1 sentence?
I don't know if their sentiment could be summarized into one sentence, but I recommend reading it in full.
Why?