4 ms·
The 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 postpon
by athrowaway3z 6y ago
The 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()).