4 ms·
Thing is, the learning curve may be steep, but it's incredibly valuable, time very well spent. I learned VI on some UNIX tools my father installed on our DOS c
by npsimons 6y ago
Thing is, the learning curve may be steep, but it's incredibly valuable, time very well spent.
I learned VI on some UNIX tools my father installed on our DOS computer in the 90's. Then I learned Emacs in 2000 and have been tweaking my setup ever since. Sure, it's not perfect, every few years when I have some down time I will spend a day fiddling with things heretofore unlearned, but the general setup has worked well (and gotten better) for two decades.
How many other editors have come and gone in that time?
- coldtea 6y ago>Thing is, the learning curve may be steep, but it's incredibly valuable, time very well spent. 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?
- passivate 6y agoFor me, I do regret the countless hours I wasted learning vi. Back when I was a C++ developer, editing text was a tiny, minuscule portion of what I did. The overwhelming vast majority of time was spent reading, navigating, debugging, discussing, and explaining code. When I did switch to a mainstream IDE (Visual Studio + Visual Assist X), I was far far more productive in all areas that mattered to me. 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.)
- nitrogen 6y agoWas anybody's choice of editor really a major point in their developer progress and productivity? 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.
- coldtea 6y ago>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...
- athrowaway3z 6y agoThe numbers aren't helping. 100 lines of what? It all boils down to 'it depends'. 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.
- tsimionescu 6y ago> 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()).
- npsimons 6y ago> Was anybody's choice of editor really a major point in their developer progress and productivity? 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.