Hacker News new | ask | show | jobs
by avanai 2052 days ago
I’ve spent 20 years in vim, Emacs, and various IDEs and I’ve come to the conclusion that nothing is more powerful for editing text than Vim’s interaction language, no system for text editing is more powerful and easier to customize than Emacs, and some languages really benefit from an IDE.

So: I use Emacs with EVIL (vim emulation), and for Java I switch to JetBrains IntelliJ, also with Vim emulation turned on.

Like a woodworker who builds their own tool bench exactly how they like it, a programmer needs a toolset that suits them and that they understand intimately. Yes, you can get a bench from Lowes and maybe save some time, but in the long run you’ll be better served by the one you built.

Where the analogy breaks down is that a woodworker can customize an off-the-shelf bench pretty easily, but a programmer has a much higher barrier to customize/build plugins for an IDE. On the other hand customizing Emacs (or Vim, but I think Emacs is much easier to dig into) is trivial, and with a bit more effort writing really advanced customization that script your editor for whatever you need is pretty easy. If something breaks, in your code, an installed package, or the core editor, you can just debug it with a first-class built-in debugger.

I often have project-specific code to e.g. spin up my current job’s integration test environment and run the test I’m looking at. Could I do that in Goland? Probably, with enough effort. But I can keep using the same tools I’ve used for 20 years to do it.

If you’re interested in getting started I would recommend Doom Emacs to a new user these days.