« AIR in context | Main | Running out of time? »
November 13, 2007
Opening the right layers
Opening the right layers: Stephen Shankland of CNET examines the Google Android SDK and finds a Java fork... Techmeme already presents divergent interpretations. ("Android" is Google's version of a Linux operating system which mobile handset manufacturers can adopt.) Bottom line: The Google proposal seems to split mobile Java delivery still further, and it's unclear to me whether this is just a Google fork, or whether there's the risk of additional manufacturer forks, and/or potential enduser forks. Many of the standard "open source" arguments gloss over the key point of who can open the code, and to whom it remains an unpredictable black box. When a code package runs on your own machine, it can be controllable and predictable to customize it. But when you're coding to a package running on someone else's machine, every potential customization they might make just increases your development, testing, and maintainence costs. The various current J2ME implementations already cost far more to code atop than does the predictable Adobe Flash Lite mobile engine... further pitting the Google brand against the Sun brand doesn't seem like it serves anyone very well. If Google wanted to open up, they could open up the part that currently runs on their machines: why can't people host the Gmail engine on their own machines? why can't they inspect and control their Google cookies, search histories, and other records they create? why isn't ad-serving decentralized to the advertisers' own servers, reducing the risk of centralized IP tracking as you surf across the net? It's just the Web; one server is as accessible as another. Why not release control of the data servers? Google's focus in commodifying the presentation layer is to strengthen their own proprietary databases. But predictable presentation layers offer great benefits to the world's developers. This Dalvik story is still in its early stages, but it seems dramatic enough to raise the commonsense question: Which layers are useful to customize, and which layers are useful to have predictable and standardized? What does it cost you if someone else controls the source, and renders your code less predictable?
Posted by JohnDowdell at November 13, 2007 8:30 PM