Friday, October 2, 2009

Importance of hackability

This is something I wrote down on my blackberry during one of those sleepless nights.


As I huddle in the darkness of my room with my Blackberry in my hand, listening to the mp3 rip of the Deus Ex soundtrack, and reading Cory Doctorow's the Makers serialized on the web, I am inevitably reminded of a question that had been plaguing me for a long time.

I read about the greatness of the old computer systems all the time, being something of a retrocomputing enthusiast. I read about all the wonderful stuff people did with their first Apple computers and Spectrum ZX, making and running crazy things on 128kb of memory. I also read about the demoscene where people squeeze old retro hardware to it last reserves of computing power to create fascinating works of pop art.

And then I look at my handset. I remember my old nokia running symbian, which is a modified version of linux fitted to run on mobile platform. I scrounge through the apps on my blackberry. Any modern handset I can remember using, and I can remember other people using is vastly superior to most of the retro hardware that are remembered so fondly. Even my older model Blackberry can kick the pants off the old Apple computer in terms of hardware spec, and it has much more sensors to boot, allowing it to communicate with the world through its eyes (camera) and location awareness (GPS). I'm not even going to talk about the always-on data connection because it's a given on any working handset.

Yet despite the reserves of computing power and amazing array of sensors available on this little buggers, they just don't seem to be able to inspire that same level of awe and creativity the first generation of personal computers did for its users. Just what happened? What is the difference between modern handsets and first generation PCs other than how superior many of the modern handsets are in terms of spec?

The answer I think, may have to do with the hackability of the handsets compared to the first generation PCs. First generation PCs were intended as computers. They had moderately sized screens (though the resolution was mostly worse than even the poorest smartphone out in the market today) and a full complement of input device you can use for extended period of time (just a full sized keyboard really, though it does make a difference). Yet these are still superficial hardware differences that can be made up for quite easily. Most high end Nokia phones support connecting to tv screens and what not, and most bluetooth equipped smartphones can interface with a bluetooth keyboard. Can, but not allowed to.

The biggest difference, perhaps the only difference, between the old first generation PCs and current handsets seem to be the software. The PCs were intended as computers meaning you were provided with the tools to develop new content for that platform, usually in form of BASIC implementation for the given system. It was possible to code in assembly and such if you were good enough. The best memories of the old systems and their wonders are almost always linked with the entry level development for the system.

You can't find that on handsets. Even Google Android doesn't yet provide a suitable platform on top of the mobile that can be used to manipulate the machine fully. There is a zero chance that a user of a blackberry handset would be able to run a code on the handset itself, and even linked to a full scale PC the road is usually long and confusing.

Granted, modern smartphone hardwares are complicated which necessitates (really?) the need for complex development environment. Yet, what if the mobile OS itself just gave the users just a slight bit more control to their own hardware? What if we can bring the modern BASIC equivalent like python onto the mobile OS, capable of interfacing with, and controlling the hardware?

Would it lead to another wave of developers and tinkerers world wide to create things that were completely unexpected?

No comments:

Post a Comment