TermKit: A Graphical Replacement for Terminal
Steven Wittens got sick of staring at terminal screens from the 80s, and decided to do something about it. He built TermKit, a graphic replacement for terminal, using WebKit. But Wittens isn’t trying to build a GUI. TermKit is still a command line system. Instead, Wittens is trying to retain the power of the command line with modern displays.
Wittens acknowledges that the traditional UNIX-like command line has stood the test of time, he writes that many areas of computing have come a long way. “We’ve gotten a lot better at displaying information. We’ve also learned a lot of lessons through the web about data interchange, network transparency, API design, and more. We know better how small tweaks in an implementation can make a world of difference in usability.”
TermKit is more than just a pretty interface with some visualizations. It has a Node.js based back-end for dealing with asynchronous processes. Also, all the display updates are asynchronous, enabling background processes to run without overflowing the command prompt.
TermKit has received a lot of attention this week, and much of it has not been positive. It’s a project that’s galling to many UNIX purists, as well as those who have internalized many processes as part of their workflow. Looking at this project, it seems best fit for dealing with administration, not development.
“Every new adept has to pass a constant trial by fire, of not destroying their system at every opportunity it gives them,” Wittens writes. “We should be more pro-active in nudging our users in the right direction, and our tools should be designed for maximum discoverability.”
I’m reminded of what Neal Stephenson wrote about UNIX in his In the Beginning was the Command Line essay. Stephenson compares UNIX to the powerful drill called the Hole Hawg:
The Hole Hawg is dangerous because it does exactly what you tell it to. It is not bound by the physical limitations that are inherent in a cheap drill, and neither is it limited by safety interlocks that might be built into a homeowner’s product by a liability-conscious manufacturer. The danger lies not in the machine itself but in the user’s failure to envision the full consequences of the instructions he gives to it.
A smaller tool is dangerous too, but for a completely different reason: it tries to do what you tell it to, and fails in some way that is unpredictable and almost always undesirable. But the Hole Hawg is like the genie of the ancient fairy tales, who carries out his master’s instructions literally and precisely and with unlimited power, often with disastrous, unforeseen consequences.
Elitist users will undoubtedly refer to the ideas implemented in TermKit as training wheels. But given the thin margin of error UNIX affords, a more usable interface could be a big boon to all admins. That said, the project is in its earliest stages and there are many valid criticisms of the particulars of how TermKit is implemented. But it’s definitely a project to watch.