You are confusing matters and overstating productivity factors. Editors, yes, including vim, have nearly zero impact on the timeline for any non-trivial project. The time devoted to all things outside of typing code dwarfs any gains had by counting keystrokes with vim. It's an illusion of the first order.
Now, good tools, such as the JetBrains tools can have an impact that has little to do with productivity. We do hardware and software development. It is useful to have a tool that has the potential to feel like you are doing pair programming by helping you along. Why? Because if you are popping between Verilog and Python with a range of other languages across server, desktop and embedded while using multiple tools and IDE's you start valuing tools that can help you context switch. And, no, I do not want to waste time messing with source for the two dozen tools we use on a regular basis. And, no, in this context vim has no real measurable value whatsoever.
My guess is you might disagree. And that's OK. If your context is web development you simply don't have enough of a view of the rest of the tech ecosystem to understand. If you've never run a tech business you will not have had the financial feedback loop that allows you to understand these issues. I can improve productivity by a far larger margin by providing every workstation with three large monitors, lots of memory and making sure people work reasonable hours and don't burn out than through some magical editor that also requires my engineers to even as much as look at source due to shortcomings.
In fact, I can, and have, improved productivity dramatically by having everyone work half days on Fridays while being very flexible with daily schedules and liberal with vacation times. As an example, I had one engineer ask me if he could take a few days off to go to a concert in London. I said "send pictures", paid him for the time he was away and did not take vacation days off.
We are a team, we know what our mission is and we get shit done. We are not factory workers counting keystrokes per second. We are knowledge workers, which automatically means we spend far more time on things other than typing code.
> The time devoted to all things outside of typing code dwarfs any gains had by counting keystrokes with vim. It's an illusion of the first order.
Editors are, or should be, the sole tool necessary to sculpt a system. Using poor languages, yes, there's a lot of ritual outside of coding which is necessary. With powerful languages, the design is the code and the code is the design and it all lives within an editor.
The editor is the interface to the documentation; it's the interface to the running system; it's an interface to the debugger; it's the interface to the world.
> Because if you are popping between Verilog and Python with a range of other languages across server, desktop and embedded while using multiple tools and IDE's you start valuing tools that can help you context switch. And, no, I do not want to waste time messing with source for the two dozen tools we use on a regular basis. And, no, in this context vim has no real measurable value whatsoever.
Which is why I use emacs, which is able to provide a seamless interface between server, desktop, laptop and embedded environments, in which context switching simply doesn't have to be necessary. Emacs provides a whole heck of a lot more than vim. Vim is a powerful editor; emacs is an ultra-powerful environment.
Yes, it's also important to have large monitors, lots of memory and a great work environment. And kudos to you (honestly) for providing that.
> We are knowledge workers, which automatically means we spend far more time on things other than typing code.
Which is why I use a tool which enables me to work with units of knowledge, not just letters and symbols.
> Editors are, or should be, the sole tool necessary to sculpt a system.
Absolutely not true. My guess is you are a web developer.
I am not going to spar with you. Engineering is a world that goes way beyond web development. I urge you to consider there's far more out there than what you might have been exposed to. To think that everything starts and ends with a text editor is a bit myopic.
rebootthesystem, you have simultaneously some of the best and worst views on productivity I have ever heard. You seem to understand human factors around burnout and work quite well, but completely misunderstand an engineer's relationship with his or her tools. It is precisely because we are not unskilled factory workers that we can and should each individualize and tune our tools to our liking. I would hope that you at least don't forbid the use of editors such as emacs or vim.
I don't forbid anything at all. All decisions are made as a team. And all have to be justified. I own the company. I am not the king. Yet, with this a given I have yet to run into a single engineer who's suggested we use vim extensivey. It does see use while supporting servers and that's about it.
Don't get me wrong, a nice IDE can be a pleasure to use. Does it make a significance difference in ROI or project timelines? Not at all. If we are working on an IMU for an aerospace project the time spent on the editor is almost a rounding error.
I think a lot of people on HN view the world through web development lenses. That is most certainly not how the rest of the engineering world works. For example, when doing muliti-GHz PCB design you can quite literally blow WEEKS of work if you make a mistake. Weeks. And so the idea of fretting over keystrokes per second or amazing refactoring tools --in that context-- is nothing less than laughable. And that's why, in my world, nobody has ever come up and said "you know, if we took a couple of weeks to get good at vim we could rock this thing". It hasn't come-up because, in our context, like I said, code entry is a rounding error. Nobody cares because it does not matter.
Now, good tools, such as the JetBrains tools can have an impact that has little to do with productivity. We do hardware and software development. It is useful to have a tool that has the potential to feel like you are doing pair programming by helping you along. Why? Because if you are popping between Verilog and Python with a range of other languages across server, desktop and embedded while using multiple tools and IDE's you start valuing tools that can help you context switch. And, no, I do not want to waste time messing with source for the two dozen tools we use on a regular basis. And, no, in this context vim has no real measurable value whatsoever.
My guess is you might disagree. And that's OK. If your context is web development you simply don't have enough of a view of the rest of the tech ecosystem to understand. If you've never run a tech business you will not have had the financial feedback loop that allows you to understand these issues. I can improve productivity by a far larger margin by providing every workstation with three large monitors, lots of memory and making sure people work reasonable hours and don't burn out than through some magical editor that also requires my engineers to even as much as look at source due to shortcomings.
In fact, I can, and have, improved productivity dramatically by having everyone work half days on Fridays while being very flexible with daily schedules and liberal with vacation times. As an example, I had one engineer ask me if he could take a few days off to go to a concert in London. I said "send pictures", paid him for the time he was away and did not take vacation days off.
We are a team, we know what our mission is and we get shit done. We are not factory workers counting keystrokes per second. We are knowledge workers, which automatically means we spend far more time on things other than typing code.
Of course, you are free to do as you wish.