April 20, 2009

It’s hard to sit through a meeting or go to a lecture these days without seeing someone lovingly stroking an iPhone, perhaps researching some vitally important topic or (much more likely) reading e-mail or playing a game. The iPhone was always a sexy toy, but it’s become the geeky tool of choice, even for people who are far from geeky.

iPhone owners always have a new toy to show off, some cheap or even free program they got from Apple’s App Store. Some are pointless but amusing, like the one that pours a glass of beer as you tilt the phone. Some are fun games. Some are useful, like the ones that help navigate from here to anywhere. And some are simply remarkable.

In my class few weeks ago, part of the lecture was to be about Django, a software system that makes it comparatively easy to build web applications. Django is named (for no reason known to me) after Django Reinhardt, the gypsy jazz guitarist of the 1930s and 40s. Thus my musical selection of the day was some of Reinhardt’s music. As the CD was playing, one of the students in the class pulled out her iPhone and 30 seconds later showed me that Shazam, a free iPhone program, had found the album I was playing, complete with artwork, and Amazon was offering to sell it to me.

Arthur Clarke’s famous Third Law says, “Any sufficiently advanced technology is indistinguishable from magic.” Shazam is not magic: the various technological pieces are straightforward, though the specific algorithm that can so efficiently identify one tune out of zillions surely qualifies as advanced technology. Some deprecate the whole thing with comments like “It’s not really very good at classical music.” True enough, but viewed more generously, it’s nothing short of astonishing.

A couple of weeks earlier, a friend from Google aimed his Android phone at the bar code on the back of a book in my office and a few seconds later showed me the web page where Amazon (again) offered to let me read pages in the book and of course to buy a copy. We can see where this is going. Pictures of landmarks? Of items in a store? Of famous people? Of ordinary people like you and me? No problem: camera phones, universal connectivity and powerful central computing services working off huge databases are going to make such apparent miracles routine.

What does it take to create such systems? Phone applications sit atop a huge library of supporting software, of course; no one starts from the bare hardware, so we really are standing on the shoulders of, if not giants, at least a myriad of helpful programmers who have gone before. But the other thing is that the companies that sell the phones — Apple, Google (indirectly) and others — have provided enough entree to their systems that anyone with some programming expertise and a bright idea can create something new that will make the phone even more appealing. This open environment unleashes the creativity of thousands of people. Some ideas are brighter than others, but no matter what, there are far more good ideas than Apple or Google could have produced on their own. A thousand flowers can bloom, and some of them will be beautiful.

I’m not sure whether opening up the programming interface was entirely public-spirited on Apple’s part, but with the threat of Android, an open platform with Google muscle behind it, things did open up, and today it’s quite possible to build interesting software fairly quickly for iPhones and Androids. Google came a bit late to this party and is definitely playing catch-up. The first Android phone seems clunky next to the iPhone, though it has a real keyboard, not a simulated one, and it has a few tricks that the iPhone hasn’t yet managed, like a neat integration with Google’s Street View, so you can look around a location by turning the phone or yourself.

There were two phone projects in my class last spring, but it was early days, the development systems were rough, and writing code was hard going. In spite of that, the projects were very good, and one was so successful that a couple of the students who built it are selling it on the App Store. This year the development systems from Apple and Google are more polished and stable. I have half a dozen projects in the class and two JPs devoted to phone systems. The majority are iPhone-based, but a couple are using Android, with phones donated by Google. For sure there will be some winners this time, too.

I kid my students about endowing a chair when they become rich and famous, but the real reward is watching enthusiastic and creative people convert dumb devices into smart ones. That really is indistinguishable from magic.


By : Brian Kernighan

Previous The UNIX TimeSharing System
Next The Cathedral And The Bazaar