At RedMonk we don’t think forking is a bad thing. On the contrary it enables innovation through fast iteration and cross fertlisation of technology and ideas. Forking allows for a biological metaphor for systems design. As Stephen explains:
Bacteria – viruses too – evolve more quickly than do humans. If you’re reading this, that should not be a surprise. The precise mechanisms may be less than clear, but the implications should be obvious. Part of their advantage, from an evolutionary standpoint, is scale. There are a lot more of them than us, and each act of bacterial reproduction represents an opportunity for change, for improvement. Just as important, however, is the direct interchange of genetic material.
i was reminded of this when I saw a ZDNet post this morning with the title: Google Has Forked Android. As if that it were a bad thing. Of course conventional wisdom states that developers don’t want to target multiple environments. Yeah – that was the wisdom that got us a decade of Java uber alles thinking, and a 20 years of Oracle-for-everything architectural decision making. The truth is Android so far has been been pretty decent on phones. I really like my HTC Desire. I am also lucky enough to have a Dell Streak loaner to play with; another solid device, that makes for a great armchair TV companion. But Android wasn’t designed for a bigger form factor, like Apple’s 10 inch iPad, at least in its early versions.
Of course the Apple development experience has been perfectly seamless across iPods, iPhones and iPads, with perfect backwards compatibility. Or not. The truth is, the experience on a tablet is different, as any user experience designer can tell you. The iOS codebase is now common across tablets and phones, but it took Apple a while to settle it down. You could argue Apple forked and resolved iOS as it innovated into the new market.
Of course forking is a really emotive word. All software companies have to manage multiple code bases – particularly on the enterprise side. If one company is managing both code bases is that really a fork at all?
So what about the joy of forking? Android is exploding in a truly Cambrian fashion.. in a way that Apple’s ecosystem just isn’t. I recently tweeted
Android-based Headphones anyone? http://monk.ly/gvxItO
Seemingly moments later Stephen comes back with:
i see your headphones and raise you ski goggles: … monkchips Android-based Headphones anyone? http://monk.ly/gX5WhE
Ski goggles? Running Android? Well they surely need to be able to run exactly same services as a 10 inch tablet, right? Android is going to be basically headless (that is, without a display) in some contexts.
According to Microsoft CEO Steve Ballmer android is a “weird selection of machines” – by which I think he means they don’t run Office. Funny because Microsoft’s own ambitions for pervasive computing seem to be pretty much stalled at the moment. Historically Microsoft has had decidely mixed success with non PC form factors for Windows. Might more shared source with permission for forking have helped?
Today Sony accounced a PSP Suite for Android games. I haven’t really looked into it deeply yet, but it just seems like another obvious niche for Android to fill.
Gingerbread, Honeycomb and many other desserts. I will happily put them on my fork, maybe with some cream. I can’t wait to see some of the new bigger Android tablets. Will all this innovation create management challenges for Google and its partners? Sure it will. But forks are there too be resolved, and innovation isn’t going to wait.
update: it strikes me I should have included more of the source material (no pun intended) in this post, so here are some notes from the Android Developers Blog:
Android 3.0 (Honeycomb) is a new version of the Android platform that is designed from the ground up for devices with larger screen sizes, particularly tablets. It introduces a new “holographic” UI theme and an interaction model that builds on the things people love about Android — multitasking, notifications, widgets, and others — and adds many new features as well.
Besides the user-facing features it offers, Android 3.0 is also specifically designed to give developers the tools and capabilities they need to create great applications for tablets and similar devices, together with the flexibility to adapt existing apps to the new UI while maintaining compatibility with earlier platform versions and other form-factors.
Today, we are releasing a preview of the Android 3.0 SDK, with non-final APIs and system image, to allow developers to start testing their existing applications on the tablet form-factor and begin getting familiar with the new UI patterns, APIs, and capabilties that will be available in Android 3.0.
Here are some of the highlights:
- UI framework for creating great apps for larger screen devices: Developers can use a new UI components, new themes, richer widgets and notifications, drag and drop, and other new features to create rich and engaging apps for users on larger screen devices.
High-performance 2D and 3D graphics: A new property-based animation framework lets developers add great visual effects to their apps. A built-in GL renderer lets developers request hardware-acceleration of common 2D rendering operations in their apps, across the entire app or only in specific activities or views. For adding rich 3D scenes, developers take advantage of a new 3D graphics engine called Renderscript.
Support for multicore processor architectures: Android 3.0 is optimized to run on either single- or dual-core processors, so that applications run with the best possible performance.
Rich multimedia: New multimedia features such as HTTP Live streaming support, a pluggable DRM framework, and easy media file transfer through MTP/PTP, give developers new ways to bring rich content to users.
New types of connectivity: New APIs for Bluetooth A2DP and HSP let applications offer audio streaming and headset control. Support for Bluetooth insecure socket connection lets applications connect to simple devices that may not have a user interface.
Enhancements for enterprise: New administrative policies, such as for encrypted storage and password expiration, help enterprise administrators manage devices more effectively.