Micro-blogging is a Unix state of mind
28 Mar 2012 - Nic Ho Chee
Hello my name is FuncRandm, and I'm a Unix user. Its been a few years since my last dose, and I'm trying to fathom what happened since then.
For non-programmers, Unix is a family of computer operating systems written by programmers for programmers as part of a research project which created a framework to enable a simple philosophy summarised as:
Write programs which do one thing very well and which work well with other programs.
A robust machine organism was created with each application acting as part of its cellular structure. I stumbled upon my first Unix system after many soul crushing years spent wrangling the early versions of Windows and MS-DOS. Where Unix utilised a holistic approach to computing with each component having clearly delineated tasks, allowing the system to hum along like a finely tuned engine, Microsoft Windows was like an undifferentiated cancerous mass, with various core units interpenetrating without rhyme or reason, and always on the brink of destruction. I became a Unix evangelist, finally I could create new software without continually worrying that it would somehow corrupt my install and waste hours or days of my life getting my computers into a working state again. It was my Mycenaean golden age, but then something quite subtle and insidious occurred... at the end of which, I was a Windows Programmer.
Microsoft Windows was buggy, slow and technically inferior, but people consumed the pain. It came shipped with their machines, and they didn't know any better so they just got used to it crashing and losing work or not actually doing what they really wanted. It had an entry level programming language in Visual Basic, a Chthonic horror rising up from the depths of the world's personal computers to engulf developers, never as good as any of the rivals, but always there, watching and waiting. For most, Windows was good enough, they accepted the loss of work with perhaps only the mute sacrifice of a keyboard dispatched in anger when things got particularly rough. Slowly over time Windows was rehabilitated with each version displaying slightly fewer horrific crash bugs, and eventually even had a decent language of its own in C#, even if it was heavily influenced by another cross-platform language, Java. Perhaps it was Stockholm Syndrome but as Windows was used predominantly in the workplace, and as more registry hive and event log arcana were unearthed, for me, the beauty of the Unix philosophy fell by the wayside.
A babel of programs spread into the online space, each exhibiting mutually incompatible interfaces and encumbering the users who would have to remember a different set of passwords and usage logic for each online service. It was no surprise that people tolerated these hardships when the perceived benefits were so great, as services like Myspace and Friends Reunited offered up social riches through clunky front ends. Windows with all its faults prepared developers for the riot of difference served up by hypertext... then Twitter was introduced. My initial Windows ablated reaction was, "so basically its like the status bar in facebook, but limited to 255 characters... it'll never take off..." But it did, it had the Unix state of mind.
Twitter may not have the defined interfaces which brought elegance to Unix, but it does a single action very well and people have responded to it. A new-ish site ThisIsMyJam has a similar Unixoid feel, allowing you to tell the world what your favourite song is this week and that is pretty much all. It does a single thing well, which seems to underline that it will have very decent usage shortly. Over the coming years more Unix style single use web applications will come into being, each carving out a niche by finding a simple core competency and executing it with the cleanest interface possible. We seem to be missing a framework to hold that together, when one appears I would expect to see modules creating:
- A secure log-in service where I can guarantee that I'm entering data to be submitted to a single trusted authentication authority which will allow me to identify myself to web applications without leaking all my personal data.
- A mechanism to pipe data between web applications that the user can control such that they can string together web applications to create their own mash-ups and manipulate data for their needs.
- A WebOS which allows users to centralise the web applications they use and meta-programs which consist of the web applications and pipes between them that the user finds useful.
- A private network of trusted friends which you can use as the output of your data pipes, or who have data that you can use as inputs to your web programs/meta-programs.
- A repository of data you can use as inputs and outputs to your applications and web applications which you have not had to sign away ownership rights to. You will be able to control access rights as to who can see and use this information.
We live in a world where simplicity and minimalism of design are the rule rather than exception, and where amazingly complex and beautiful creatures are expressed from very simple building blocks. I look forward to the time when behemoths like Microsoft Windows are obsoleted and Web applications are created as the end product of playing with small interchangeable Lego-like code modules.