Hacker News new | ask | show | jobs
by ilovecaching 1533 days ago
It's a weekend of learning for a tool that you use your entire life. Any computer scientist should realize the power of amortization.
3 comments

I'm a dev that spends 90% of his computer time with a JB IDE open and I'll give you my perspective on it. It just works out of the box (or with a couple of 1-click install plugins) for practically all my use cases.

* I mostly write Kotlin/Java for backend, desktop and Android projects. JB has that covered: Gradle integration, refactoring, navigation, dependency updates, documentation viewer, visual git log/diff/merge/rebase/blame, visual Android layout editor, visual JavaFX/Swing layout editors, run configurations, step through debugger that shows current variable state on top of my source code, all the android resource/variant stuff, test runners, trigger tests from source code, tool windows for docker (compose) or other services and probably much more.

* I do C/C++ development on some projects in Clion which has most of the stuff from above but :s/Gradle/CMake/g.

* Aside from the above I also use my IntelliJ Ultimate for Python, Ruby, Golang, Rust, Markdown, Mermaid graphs, Kubernetes yamls and Terraform hcl files, Lua and probably some more. All with the excellent IdeaVIM plugin so I have my modal editing and ex commands.

I gladly pay $600/year for all this. If I have to spend one day (likely more) on configuring vim/nvim to even do a subset of what I mentioned, then JB is cheaper.

So, that is why I switched from years of Vim use (and a couple years of Emacs before that) to JB and I haven't looked back. I don't see why I should artificially limit myself to vim/terminal only when JB+IdeaVIM gets me the best of both combined.

Purpose built tools like jet brains IDEs are super nice. What I like about an OSS terminal based editor is that all of the languages, frameworks, etc you listed above may change in the next 10 years. Or 5 years. And again that many times during my career. I'd rather not have to retool each time that happens. I like being able to jump into some area thats new to me, like data science or graphics, and have my existing tools just work (other than proprietary stuff like iOS dev).
You're paying about a minute every time you have to wait for your IDE to start. That quickly adds up.
<15 seconds, yes. Once a day in the morning when my machine boots and I'm brewing my coffee.
I've had systems were the IDE starts up after the OS boots and the OS is only shut down for security upgrades every few months.

Different workflows.

I do not know how your brain is wired, but vim is certainly not a weekend's learning (speaking from experience).
True, it was like half a day of extensive coding for the basics, a bit of cursing, then about two weeks of settling in and then a few hours over a couple of months, when I did heavy extension and configuration.

Bonus: my window manager has similar keybindings these days

Yes, do it this way. When I learned vim, I just went to work and decided to use it one day. The only thing I did was get on Stack Overflow and look up how to turn off the arrow keys, so I would have to use hjkl.

As you said, by the end of the workday I was very comfortable with basic vim use.

Print a sheet of basic commands, tape it to your monitor and off to the races.
While a weekend is quiet an exaggeration (2 weeks of 1h/day practice is more likely), the point of amortization still hold.
I absolutely want to learn VIM but saying it's only a weekend is plain misinformation. We're definitely looking at months of gradually building new habits.
Agree, and I would add that it's not just habits, it's committing to rearchitecting your workflow. Do you use things like debuggers, linters, refactoring tools, project management tools, etc.? Get ready to learn totally different tools (usually)!

I'm a committed (neo)vim user, but I readily admit I only got over the hump because I thought it was cool and hardcore and typing is easy for me. There's no question it's been worth it for me, and I would argue it's probably worth it for most people and better for the software ecosystem as a whole (GUI tools don't compose), but still I think trying to say one's better than the other is too narrow a view.

I think the difference between your and the other opinion is what does "learn vim" mean?

Is it enough to know how to enter insert mode, make an edit, then save and quit? That's easy enough to learn in a weekend.

Or is it learn how to edit efficiently using the various vim commands? That will indeed take much longer than a weekend.

(Even getting it configured just the way you want to will probably take more than a weekend...)

You're correct. I learned enough VIM to use it as my Git commit message editor. Beyond that... it's a journey as you said.
> Is it enough to know how to enter insert mode, make an edit, then save and quit? That's easy enough to learn in a weekend.

That's Notepad level usage, you don't gain anything from it.

I wouldn't say so.

The basics are very simple. You just get used to formulate a (weird) sentence of what you want to do in your head, abbreviate it and then learn (or configure) the buttons.

The problem here is the "just" word. To you it's "just" (as in a day or two), to me it's "I have to learn to think in a new way and that will take a while".

Filter bubbles, dude. ;)

True, I love to learn and especially learn new ways to think.

Everything is just a just for me ^^