Is it? Or is it mostly the IKEA effect ("I spent time on this, so it must be valuable") and busywork?
Was anybody's choice of editor really a major point in their developer progress and productivity?
Is it? Or is it mostly the IKEA effect ("I spent time on this, so it must be valuable") and busywork?
Was anybody's choice of editor really a major point in their developer progress and productivity?
And so, even if I was born an expert vi user, I don't think I would have gotten any boost in productivity as a developer. Just my opinion though! :)
(Yes, I know how you can get vi editing in VS. I purchased a copy of ViEmu.)
Having used multiple IDEs and editors, from DOS edit/qbasic to notepad.exe, RHIDE from DJGPP, Visual Studio, Xemacs (briefly), Vim, Eclipse, IntelliJ, probably others...
Yes, some of those bring unique abilities that the others lack, that have an effect on the way I write software. Had I just picked one editor or IDE and never used any others, I would be much less accomplished. Vim, for example, is for me incredibly rapid at rearranging and replacing words/lines/regions of text compared to the others.
Sure, but how much of that clerical work is relevant to programming, where a rate of say 100 lines per day is a major achievement, and it's usually much less? Even if one needs to delete/copy/re-arrange 1000 lines in order to get to those 100 (and usually it's more like 30-50 per day than 100 anyway), it's still a tiny part of the time.
In any case, I've seen great coders, from Brian Kernighan and Bill Joy, to Linus, Carmack, and Persson using whatever from Vi and Emacs to Visual Studio and Eclipse, and still getting shit done...
In my personal experience, before i started using spacemacs i would postpone re-arranging code when i was busy coding something useful. Pushing all the cost into an afternoon of _just_ rearranging code.
Besides not having a very 'productive' afternoon, the costs would linger because i need to update my mental map of all the stuff that moved around.
Now, most rearranging is a couple of key strokes away. I'm not sure what i would do in another IDE. I would probably do the rearanging as soon as required, because I've learned my lesson.
But moving my hand to the mouse and clicking multiple buttons while typing new file names and dragging my mouse over pieces does take a lot of flow out of the session.
I don't understand why people equate IDEs with mouse interaction. All major IDEs, from Emacs to VisualStudio, have key combinations for anything you can do. It's fair to say some key combinations are better in one program than another, but there is no reason to imagine that using an IDE means you must also use a mouse. The mouse is always an extra option, not a requirement.
And there are code modifications that an IDE can do for you cheaply at the press of a key that would take hours of tedious, error-prone manual work, even with fancy vim fingerwork. Even the lowly 'Extract Function' already can save a good half an hour for more complex cases. And modern IDEs offer things like passing a parameter down through a long call stack in all places (a calls b calls c calls d calls f, and now you want a variable in a to become a parameter in f), with guaranteed 0 manual intervention. Or extracting an interface out of a class and patching all callers.
Not to mention all of the code exploration options, such as IntelliJ's 'Dataflow to here', which finds all of the code which is responsible for a variable's value throughout your entire program (or the dataflow from here operation, which finds how a value set in this function is used further down the call stack), stopping only at IO (so if a.foo() reads a value from a file and stores it in a field that is read in a.bar() which puts it in a dictionary, where it is read by baz() which adds 7 to it and prints it out, you can ask for dataflow to the variable being printed and it will find that it was read from some file in a.foo()).
Wait, what? 100 lines per day is an achievement?
I'm honestly curious in what branch of SW development this happens. I'd assume something that requires formal proof of every piece of code ever written?
Most. It is based on some well studied and established averages, anywhere where it's actual core programming (ie. not counting churning out boilerplate html/css/CRUD code N times for the same/same-ish functionality).
Actully 100 lines/day is on the optimistic side:
"Capers Jones has compared many methodologies (RUP, XP, Agile, Waterfall, etc) and programming languages over thousands of projects and determined that programmers write between 325 and 750 lines of code (LOC) per month"
I believe you are picking a point that wasn't my main one. I may not have made it clear, but in my view, I'm going to be using a tool (in this case, an editor), so if I can pick one that is powerful and will be around, it's a net win to learn it. I'm going to learn it anyway (through use).
Emacs is insanely powerful and it's not going anywhere, and I'm fairly certain it was a major point in my progress and productivity, and it continues to be.