← Back to context

Comment by trevor-e

1 year ago

This thread is certainly eye opening. It reminds me of a post I saw somewhere, maybe on Reddit, where someone was describing their experience working as an intern at an old-school tech shop. All of the developers there were hardcore Vim/Emacs users with 20+ years of experience.

The intern was tasked with a large-scale refactoring of some modules which the senior devs estimated would take months of work to complete. After shadowing a senior dev to get an idea of the work involved, they realized the dev was literally string replacing a lot of the code, hence why the estimate was ridiculously long. The intern instead loaded the project into IntelliJ and used the built-in refactoring tools to get the task done in a couple days. This caused a bit of an internal shit-storm with the product owners because the intern made the devs "look bad".

The intern didn't make them "look bad". They were bad. I mean, I'm sure that they were great developers in some sense, but refusing to ever update your toolkit because you've always gotten along just fine with what you already use is a great way to get sped past by the next generation who start from a better baseline.

  • Yea, that's the exact point I'm trying to make. And I'm getting very similar vibes in this post with folks refusing to use LSP.

Work at a "tech shop," even old-school ones, most likely involves extremely varied types of work, much more than name-refactoring, for which something like IntelliJ indeed would be the best tool. Just because one use-case of one tool being better than another use-case of another, doesn't imply that users of the former are stubborn/unintelligent/worse than the others. Maybe there's a use case where the Vim user is at an advantage.

The fact that the market hasn't outright eliminated such people goes to show that things like LSPs aren't that extreme of an advantage.

  • LSPs are useful because they are context-aware and understand the syntax.

    But that advantage becomes a weakness when you need more complex text replacement or specific repetitive actions.

    That is why I use vim with an LSP, I find it to be the best of both worlds (especially the macros in vim): a smart but limited tool, and a dumb but powerful one.

    Maybe we'll get a smart and powerful one some day (but I doubt it).

As someone who used InteliJ before working in Emacs full time (20+ years of experience), these are just bad developers.

btw, LSP is not the only way to make go to definition work.

Sounds like those developers were just bad, regardless of the tools.

I expect that especially hardcore and purist Vim users (the likes that does not use any plugin or configuration) should know to use macros and other available tools (not even mentioning bash) to make the work faster.

With enough experience on those, you can get a level of productivity that is not much different than IDEs like IntelliJ.