The Developer's Dilemma
By Douglas Rushkoff, Tue Mar 09 09:00:00 GMT 2004

The inability to create a great cell-phone software course may tell us a lot about the plight of independent developers in a development-hostile environment.


It's been two years - that's right, two whole years - since we decided it would be a good idea to offer a cell-phone applications course at New York University's Interactive Telecommunications Program, where I teach. We're a telecommunications program, after all, and the current frontier for interactive toolmaking is not the Internet, but the wireless networks unfolding all around us.

Our students have been clamoring for it ever since they came to understand - unlike most carriers, phone manufacturers, and operating system developers - that the cell phone is a legitimate platform, begging for a broad-based development community. It's not just a roving handset anymore, but a palm-sized bundle of untapped capabilities.

One would think that networking consultant and NYU professor Clay Shirky would be up to the task of designing a new course. An early advocate of online group interaction and collaborative software development, Clay sees perhaps better than anyone how the culture of the telephone industry has stymied the growth of what could - what should - be the most compelling programming opportunity around today.

"Phone culture is a culture of ownership at the center," Clay explained last week as he scurried out of the "quiet" car on his train to Washington, D.C., in order to speak with me on his own cell phone: "Find an old phone and you'll see something on the bottom that says 'Property of Western Electric.'" So even though our phones might have the processing power of an early '90s computer, the telephone landscape has been conceived and built with, to use Clay's terminology, "its smarts in the center." No matter how advanced our handsets, they are still treated like dumb terminals on the periphery - barely owned, and certainly not meant to be programmed by the end user. As far as the carriers are concerned, they subsidized our handsets, anyway.

But programmers will be programmers - and people will be people. Put a computer in our hands and, eventually, we'll want to make it do stuff. It's certainly true for interactive computing students, whose expectations for computers - especially for the computers they've bought - is to be able to program them. And that's the way they, and a burgeoning population of thwarted independent developers, experience these tiny computers currently serving as dedicated telephone devices.

Phone-industry culture just hasn't caught up to this new reality, however, and is standing in the way of the very community that could bring its devices to an entirely new level of functionality.

Take our effort at creating a development workshop. Which platform should we teach? Brew? It's a fairly simple and well-documented programming environment, but how the heck are we to get the programs we make onto the phones? Brew - or at least any phone that uses it - is locked. It's essentially impossible for an individual to write software for his or her own phone. It all comes from the carrier, through encrypted protocols. The phones are not designed to accept connections from any other device. "In PC culture," Shirky reminded me, "we were used to having all options. Now we have to take it or leave it."

Symbian, you say? Perhaps. But here in the United States, we can't use Symbian on Verizon, our No. 1 carrier, or on a majority of our phones. And while one can write to a Symbian phone, it requires that one use J2ME, a form of Java. Not an easy language to pick up on the fly - not like HTML or even the CSS scripting languages we use on the Web. True enough, a programming language is more powerful in many ways than a simple mark-up language, but a scripting culture will always beat out hard programming for broad adoption. HTML is practically ubiquitious today; whatever happened to Hypercard? People always come in later to clean up the interface, like the Blogger kids brought simple Web site creation to the mainstream.

With any luck, Nokia's new ports of scripting languages, like Python, for cell phones will engage a new generation of fledgling programmers. It'll have to be somewhere other than the United States, of course, unless Verizon really is brought down by the AT&T/Cingular merger.

Let's say we finally do conquer the platform dilemma. Now, which phone do we test on? Do we buy the software development kit for each one, and then register as a school? And once we've done that for a variety of phones, what sort of service plan can we buy that lets us move the kind of data back and forth that application development will require?

Carriers treat data transfer as some sort of weird option - as if voice weren't simply a form of data, too. Technologically, there's really no difference in cost between passing bits of voice data or text or video. But carriers concoct data plans that have little purpose other than to keep their phones from becoming generally useful. They don't want people creating value for one another without cutting them in on the profit.

Those of us who bought computers understood that our desktops could do more than run Office applications; we never would have tolerated paying for the privilege of programming them, or simply unlocking the features that are already inside them. Could you imagine having to pay Dell in order to unlock a port or install a drive? But phone companies, who still understand equipment as something to be lent, can't get their heads around the technologies they're unleashing or the hunger for programming that they've accidentally created.

Carriers manipulate their cost structures, their operating platforms, and their handset manufacturers in order to exercise command and control over their networks and how they're used. The programs people want to develop for their phones may have nothing to do with the carrier at all. One of Clay's students, for example, is interested in creating a simple utility for tagging photo entries on camera phones. Like countless other utilities people are thinking of for their cell phones, it would enhance their usability and even potentially foster the uptake of the camera phones companies are so desperate to distribute. That's right - carriers might actually make money, in the long run.

So, whether or not we end up winning any concessions from an industry we ultimately aim to support with new ideas and energy, we'll be offering our first cell phone programming course this fall. But I won't be surprised if students are more interested in hacking Brew than programming for it.