In Star Trek the next generation and it’s subsequent spin-offs a child walks on to the holodeck, arguably the most advanced user interface ever imagined short of Neuromancer, and says “I want to play with a teddy bear” and small teddy bear appears and starts dancing around in a nonthreatening way. The child says “No, bigger” and suddenly the teddy bear is as big as the child. “Bigger” and the teddy is now adult sized. The child smiles and runs off with their new playmate to explore their favorite holonovel. And in the corner old man Barclay says “Darn kids. In my day we had to spend hours in a character customizer before we could play with a 6 foot teddy bear, and it was better that way.”
I usually pick my titles to be intentionally provocative, so let me diffuse that “sucks” right now. I have used command-line interfaces since I was a child learning BASIC on my Commodore 64. I used DOS on Dad’s IBMpc jr. I ran network tools on the command line on the university’s Linux mainframe. But since my university days I haven’t had much need to Linux and migrated most of my work to Windows. I peeked in on Linux once in a while, mostly because people I knew spoke highly of it, but without a reason to stick with it I quickly abandoned it. However recently my excitement about the Raspberry Pi has given me a reason to stick with it, particularly in the context of promoting it’s kid-based goals, and it has caused to me realize that I resent having to use the command line.
It seems to me that there is a pervasive attitude among Linux users that the command-line is the only way to go. I think part of this mentality is driven by the fact that the default tool set for most Linux distributions don’t include GUI tools. It’s not that GUI tools don’t exist, they’re just not the default. And this illustrates the major difference, I feel, between Linux and Windows. Windows is set up for the every user first, and the technical users can get the tools they need themselves later. Linux is set up for the technical user first, but could be configured for the every user if they knew what they were doing, which is kind of paradoxical. If the every user knew what they were doing they wouldn’t be the every user.
Cymon’s Games aims for a user kind of in-between; someone who isn’t technical, but wants to be. So I try to make the transition as comfortable as possible, minimizing time spent in the highly technical and in the process end up with something in-between. Not highly technical, but functioning higher than a base user level. Getting users past the technical barrier into a comfortable place usually ends up somewhere in-between as well; IDEs and 3rd party GUI programs that implement all the necessary core functionality.
I sometimes feel like command-line aficionados run with a “I had to learn this, so everyone else should too” mentality a lot of the times. I know a guy who uses the windows version of Vi. That such a thing even exists is borderline illness in my mind. Vi was written for mainframes that didn’t even have arrow keys on their keyboards. While it is impressive to see a talented Vi users do their thing, insisting that Vi is still the best expresses a disturbing unwillingness to learn something new. This is not a good mentality in the computer world, nor is it the way to introduce new blood to this hobby or career that we all love.
We must be the giants that others will stand on the shoulders of and, I advocate, we should make our shoulders very comfortable. This means taking a hard critical look at the tools we’re using and ask “is there a better way”, and define “better” as “appeals to or encourages a wider audence.” If that means the next generation will never see a “man” page then that’s the cost of progress.