Manipulation far outweighs input. And manipulation is fundamentally thinking, at least for me.
Manipulation far outweighs input. And manipulation is fundamentally thinking, at least for me.
For example, I once read an economics book that characterized computers as lowering the cost of integer arithmetic by an extreme amount. That led to things like digital music/pictures - no-one would have previously thought of using a ton of numbers to represent a song - not just efficiency gains in accounting.
Music has long been represented using math and math concepts. Musical notation is a cartesian plane with time on the x-axis and pitch on the y. But that's the representation, and it's not about the representation, it's the ability to manipulate at extremely high speed.
The power of text-based manipulation is that you don't have to learn a different set of hotkeys for different types of material.
Or do the reverse — find all usages of a CSS class from its definition (again: do so reliably, it's not a simple grep).
Find all references to a particular database column (in SQL queries across the project, foreign keys in other database tables, and ORM models)? Same hotkey.
Stuff like code selection works reliably since IDE work with code on an AST level and you're asking it to select the current AST node (and not the "current text block"), going up the tree as needed.
And so on.
And the weakness of text-based manipulation is that it views code as characters rather than as semantic data.
Modern IDEs either have their own semantic code operations, or use language servers to actually understand the code rather than just work with character strings. This is vastly more reliable when doing refactoring or project-wide navigation. Text-based approaches are a crude hack by comparison.
Ctrl/CMD + Y vs r
There’s a significant difference in speed. But more importantly, the former requires RSI inducing finger gymnastics, whereas the latter is a tap of a fingertip.
The much faster speed but more importantly less complicated chords/key taps in VIM, leads to a qualitatively different editing/reading experience.