An Argument For Old-School Tools
by Mike Levin SEO & Datamaster, 04/09/2012
Sometimes tools adapt to you, and sometimes you adapt to tools. Depending on the tools, each way can have its benefits. But generally, and certainly in modern times, you want tools to be quick and intuitive to learn, then fade quickly and invisibly into the background, so you can focus in the task at hand, and not the tool. This article argues for the other kind—not that they don’t fade into the background, but in that they are not intuitive to learn, and can take years to master, but can have the greatest reward.
The iPhone is an example of the former type of tool, intuitive and tearing away user interface contrivances like keyboards, buttons, scroll-wheels and getting down to the primal way people want to interact—do much so, babies are almost born knowing how to use iPhones. There is a natural inborn language that we all speak deriving from touching and pointing. Perfection of the touchscreen as a replacement to the vastly inferior contrivance of the mouse was just waiting to happen.
Keyboards and the Unix shell is an example of the later type of tool, requiring initiation, special training (even if self-taught and hard-won), understanding a whole series of insights that are built upon each other—and even then, take years to master. But there are vast rewards to adapting to certain tools. Think violin or martial arts. Keyboards and the Unix type-in environment are the same thing—which is amazing, given how rapidly technology generally changes.
I believe that skills become common and their value to society lowers as a result of the tools becoming easy and intuitive. We’ve seen it happen with typesetting with the advent of the Mac and desktop publishing. This opinion sometimes rials the snobby elite who derive identity through access to scarce resources, and they argue tools do not replace skills—and they are right. It’s just that those beacons of skill will be found now amongst a much larger populace. This is happening now with video and YouTube.
However, there at certain types of work and skills that have a limit to how much better the tools can become, and the skills can be devalued. Keyboards and programming are one such area, due to the precision and structure required in coding, it will be many years before voice recognition, hand gestures, or some other man/machine interface replaces the keyboard for programming.
Sure, there are attempts with increasingly bloated integrated developer environments like Visual Studio, Eclipse and Xcode, but I think these are mostly examples of diminishing returns with limited function, beyond getting boxed-in by vendors. I would go so far as to say that the mouse and window user interface has actually limited the possible mastery of programming by creating a disjointed experience where you always have to regain your bearings, throwing off the flow.
Before mice, I think text editors reached an apex with the gesture-based vocabulary for manipulating text built into vi—then was promptly lost due to the rise of WYSIWYG. Recapturing that experience is much like mastering the violin. This is the later type of tool—the kind which you must adapt to, but which comes with great reward. vi, and specifically vim, may be the ultimate example, but more generally, so is the use of the keyboard itself, and adeptness in the Unix command-line.
I dedicate plenty of other articles in this blog to precisely why, but in-short, vi & vim have a built-in language or sentence structure for editing text, by which you can put together an infinite variety of text manipulation instructions, without ever taking your hand away from the keyboard (nor ever programming a single macro). It’s the closest thing possible to those movie scenes where hacking masters just keep banging away at their keyboards, without ever taking their hands away for the mouse. That’s a real thing. It can be done. It puts you into the zone or the flow in a way where you can be more productive, and which is simply not possible, when you always have to stop to move your hand on and off of the mouse, breaking concentration and the flow.
So, I’m making a case for old-school, barebones, stripped down to the essential minimum Unix/Linux as that violin. Technology is a moving target. Integrated development environments are a moving target. Barebones Unix/Linux is not. Keyboards are not. The vi/vim text editor is not. And a single, long-lived programming language is not—and while I’m tempted to name that language ANSI C due to standards, power and pervasiveness, I’m choosing Python due to ease. Together, they sort of culminate into a tech platform analogous to a violin, in how it can be played. Or at least, that is my vision, and my mission is to bring that to the masses—or at least those who are looking for such a thing.