Hacker News new | ask | show | jobs
by willbw 1530 days ago
I'm going to assume this isn't trolling and if it is, you fooled me.

I've use Vim professionally, as well as VSCode and Jetbrains IDEs and dabbled in Emacs - the idea that one can replicate what IntelliJ does for Java for instance in any other IDE or text editor is to me, nonsensical. The amount of configuration it would require in vim/neovim/vscode to replicate the refactoring ability of IntelliJ alone would take you longer to setup than it would to code whatever project you're working on.

Saying that Vim or Emacs have "zero fiddling" compared to Jetbrains IDEs is a statement that is so vastly different to my experience (doing plenty of fiddling in both) that I would love to hear the backstory of how IDEs hurt you.

2 comments

To be fair Java is an outlier here (there are few others I guess, C# comes to mind) and I would consider it a weakness of a language to require a complex IDE to do anything nontrivial comfortably.

I agree with you tho, I was looking for my options to develop in Java with Emacs and decided to not even try.

I've written C# professionally for many years, though it's far from my favorite language. I write 90% of it in Emacs, reserving Visual Studio for managing .csproj and .sln files and unit testing with the Visual Studio test framework. Once my workplace switches over to .NET Core, I hope to be able to get rid of those uses. Actually writing C# in Emacs has been fine for years, with Omnisharp, and now with LSP is about on par with VSCode, except you have the rest of Emacs available at a keystroke.

I've tried Java with LSP, and I think it's on par with Eclipse rather than JetBrains these days. The language server is fine, but I've never gotten it to understand, e.g., an Android Studio project.

Emacs distributions are built for people who want zero fiddling. Fiddling in of itself is not bad. Fiddling is how you learn, and this is a profession that requires constant learning and tinkering. Most of features of a modern IDE are unnecessary or are actively harmful to developing good code. Thinking, taking your time, writing as little code as possible, and organizing a project so it can be easily understood and modified with nothing other than a text editor are positives that an IDE actively inhibits by trying to be helpful.
You're going back and forth. On your first post, you talk about all the things Emacs/Vim have that VSCode/Jetbrains can't possibly have. On this one, you talk about how less features is a good thing. Regardless of where you actually stand on that particular point, you're still comparing apples to oranges.

It is also worth noting that I have never had an issue jumping from vim to VSCode (or vice-versa) on the same project. Neither of the two need any extra metadata or configuration. They just work, and I'll choose whichever tool makes sense for whatever I'm doing at the moment. As, frankly, I think everyone should. This fixation over one specific type of tool over another is unnecessary: go with whatever you are most productive with.

What I mean is that the notion that Emacs/Vim require endless fiddling is unfounded. It caters to both the people that want something easy to use, and those that want endless customization. For those that want something easy to use, Emacs distributions are built and maintained by very experienced Emacs users who curate and put together an Emacs with everything you need. All you have to do is use it, which doesn't even require much learning thanks to `which-key` integration.

Productivity is a bad word. Productivity can mean low value busy work, or it can mean high value thinking. High value thinking leads to longer term success, because it is not easily bought or replaced. It requires an individual who has invested in a breadth and depth of knowledge by not choosing the path of least resistance. We should choose tools that optimize for this type of long term success. Choosing free and open source software is a choice for long term sustainability of our industry. Choosing a tool like Vim/Emacs is a long term choice towards individual success.

This is the philosophy I follow, and I have been very successful with it both financially and in terms of making an impact on the industry. It isn't novel either, I simply emulate the many, many expert programmers who universally choose to still use Emacs/Vim despite the existence of "smarter" IDEs.