> So often we're asked to build something we've built before, so we estimate with confidence that it might take a week.
I‘ve never built the same thing / received the same requirements twice, making estimation pointless.
I've often received the same requirements for a system that already existed, and had to ask, why do you need a new one instead of the one you already have that does exactly what you're asking for? And oh boy does the answer to that get interesting.
90% of the job takes 90% of the time. The remaining 10% takes the other 90% of the time.
Software though - why would you start over from scratch? That is maybe once every 30 years.
If it "looks like an alligator, except..." then it's not an alligator.
I can't count how many times I got burned, tried to beat previous code into submission to fit the new thing, only to realise I'd have an easier time just doing it bespoke from scratch so that it has 100% fitness for purpose.That, or you start writing reusable frameworks, which you have to somehow design and maintain, and "the project" becomes the framework itself instead of what you set out to originally do. How many have developed game engines instead of the game they set out to write? or blog generators instead of doing actual blogging they set out to do?
Reusability can be a beautiful trap. I'm done with that, now I just do the damn thing.
If you _like_ those then keep using them by all means.
But when people tell me “it’s so much more efficient if you never have to take your hands off the keyboard”, I don’t buy that.
Sure, it is more efficient to know shortcuts for things you do commonly in your IDE. And yeah, editing text is a common task in the IDE.
But (for me) 90% of an engineering task is gathering requirements, testing, waiting for Jenkins or something, chatting with a colleague about the context of the task. Fumbling around.
Writing new code or editing existing code is really a small part of completing the task, and being able to do it as quickly as possible isn’t that big of a benefit (again, for me specifically).
So, again I’ll reiterate, these editors work great for some (I know enough in vi/vim to get stuff done), but don’t try to sell me on the efficiency argument. Just use it because you like it!
IME, without good muscle memory (touch or hybrid typing) of keys, consciously searching for each key is going to seriously disrupt the flow and thought process behind the code being written.
It may not make you a rockstar programmer, but it will definitely make coding more enjoyable.
I think there was a recent HN discussion on this topic.
In the end, tho, you don't understand the argument, don't know the tools (know enough to get stuff done doesn't count), haven't walked in the shoes, but you're absolutely certain all us vi/emacs users are wrong. I mean, I've heard this pissing contest since the Win3 days, so I don't expect much intellectual rigor, but most people who feel the need to "well ackshually" keyboard jockeys at lest take the time to google up something like AskTogs infamous "I spent $50m to prove mice are faster" (for Apple, trying to push the Macintosh, with none of the research ever published AFAIK) to 'prove' how deluded we are. There is actual published research out there covering not just speed but ergonomics and accuracy; it's pretty inconclusive all things considered, and very dependent on the use case the researchers decide to examine, so really easy to cherry pick so you get to win arguments on the internet.
You seem to be trying to win a fight that I’m not trying to start, and that’s ok.
I said it’s not for me, and I will stand by that. Anyone who comes along in a reply arguing is missing the point entirely.
When caught out, try denial and sanctimony. Common tactic.