Symbian goes open -- or does it?
The big news in mobile this week is that Nokia has bought Symbian, the mobile operating system provider, so that it can give it away. In the first article on this news we looked at the deal from the view of the shareholders and competitive threats. In this second article we take an in-depth analysis of the nuts and bolts of software licensing and governance, to see if Symbian really lives up to its 'open' headline.
Symbian: open in parts
With operators being pushed towards 'open', what can they learn from Nokia and Symbian's approach?
A ship with a small hole still sinks
Like it or not, technocratic choices of licensing schemes really matter. The plan is to release the entirety of the Symbian OS and S60, UIQ, and MOAP under the Eclipse Public Licence by the end of 2009. What is an Eclipse Public Licence? Well, it's a development of IBM's Common Public Licence, originating when IBM Canada released the software development environment known as Eclipse. It differs from the purist open source GNU General Public License in that it doesn't require work released under it to be purely open-source. For example: you can build something containing both Eclipse-licensed code and code you wish to keep as your intellectual property, and release the whole thing under Eclipse.
This implies that you can't include anything licenced under EPL in a "more open-source" project -- the GPL bars you from imposing restrictions on the user beyond the requirement to maintain the GPL status of the work, so the fact Eclipse licensing permits IPR restrictions would preclude it. Similarly, as you cannot legally assert restrictions on GPL code, you can't include it in an EPL project. You must choose.
So, this is somewhat less open than Google's rival OS, Android, whose guts are subject to the Apache licence. It is also significantly less open than the mobile Linux OSes LiMo and OpenMoko. Both of these are GPL, and the latter is open enough to satisfy the most rigorous free software fundamentalist. It's glatt kosher software. On the other hand, though, it's a big step forward in terms of openness from most vendor OS so far.
Even if only a very small part of the code is tainted with restrictions, it is likely to be a new and important feature with IPR held by some third party. As Linux users know to their cost, it doesn't matter if every other part of your PC is working if you can't get a driver for your particular network or graphics card.
Who is really steering the ship?
Software licensing and IP law, despite or even because they are the sexy issues here, are far from the whole story. There are a lot of other questions. Governance of the project is one, and another is the status of the developer infrastructure around it. The Nokia announcement allows us to know quite a lot about the organisation structure...
The members of the foundation's Board of Directors will also have seats in each council, with additional seats in the councils available for other foundation members. The foundation will operate as a meritocracy [sic]. Device manufacturers will be eligible for seats based on number of Symbian Foundation platform-based devices shipped, with the other board members selected by election and contribution. The initial board members will be AT&T, LG, Motorola, Nokia, NTT DOCOMO, Samsung Electronics, Sony Ericsson, STMicroelectronics, Texas Instruments and Vodafone.
That's certainly an interesting definition of 'meritocracy', one you could easily mistake for 'plutocracy'. Note the detail that, as well as shipments, you can get on the board by "contribution" - this seems to mean that the more lines of code your developers check in, the better you are. (All the traditional objections to measuring code value by the line are well and truly in effect here.) And what are Moto doing in there, as a company that has a proprietary OS, some Windows Mobile products, and a major role in LiMo -- but is about to sell its handsets division and cut half its R&D staff?
It's also worth noting that two pureplay chip makers are involved; perhaps their low-level microcode is the proprietary treasure the Eclipse licence is meant to protect.
Who is navigating the ship?
So what will this big carrier/big vendor/big software house club be responsible for?
The foundation will be responsible for managing the software roadmap and releasing the software platform, with the source code available to all foundation members. The development of the platform will be the responsibility of the foundation members, with the foundation coordinating development projects and managing the master code line.
So, not that open; if you're not on the board, it doesn't look like you'll have much input, even if you're an important stakeholder, like the operator who has to subsidise these products. And does the provision regarding the source code being "available to all members" only last until the 2009 release to Eclipse? Or will there be chunks that the Foundation keeps to itself? It's been pointed out that most Symbian Foundation people will be Nokia employees, but this doesn't worry us much -- OpenOffice, various Linux distributions, and Sun's Java are all maintained to a large degree by Sun, Novell, and IBM coders.
Keeping the ship sea-worthy
A huge issue in all open-source projects is the status of the developer infrastructure. Things like standardisation working groups, the process through which new software releases and updates are handled, preparation of things like software installation packages and Windows installers, tech support, and the tool chain -- software development kits, documentation, IDEs, debugging tools and compilers -- often define their culture and success as much as the headline stuff about GPL & Co. In fact, a large part of the very first Free Software Foundation project, GNU, was the development of free utilities in order to make GNU independent of proprietary software throughout.
The Platform will be completely free and open to developers whether enthusiast, web designer, professional developer or service provider. Of course, membership is not required to develop services and applications on the platform. The Symbian Foundation's developer program will provide a single point of access for developer support, providing a wide offering of tools and resources - most available free - including:
- Software Development Kits (SDK's)
- Sample code
- Knowledge base
- Application signing program
- Incident based technical support
Well, that sounds pretty good -- except for the "most" tools and resources. Which ones won't be? We suspect it's probably the Symbian Signed process, which isn't free (either in terms of free beer or free speech) today, and is widely hated by developers. Symbian, or should we say Nokia, is keen on keeping it going as a barrier to mobile malware, but it's hard to see how it fits in an open-source project that's a development platform rather than an application. Think of it like this: obviously, open-source means that I can do anything to my copy of Firefox or Linux I damn well like, and further that I can submit the alterations to the Mozilla Foundation.
Beware of customs checks and duties on arrival
Obviously Mozilla is within its rights to make me go through its development process before they let any of my code into the version that is available to the public, and certainly no-one would expect them to let J. Random Hacker offer their version of Firefox as an official Mozilla product through their release process. If I really wanted to, I could fork the project, and offer my own browser under some other name.
But the Symbian signing process doesn't just apply to changes to Symbian itself -- it applies to all applications developed for use on Symbian, at least ones that want to use a list of capabilities that can be summed up as "everything interesting or useful". I can't even sign code for my own personal use if it requires, say, SMS functionality. And this also affects work in other governance regimes. So if I write a Python program, which knows no such thing as code-signing and is entirely free, I can't run it on an S60 device without submitting to Symbian's scrutiny and gatekeeping. And you though Microsoft was an evil operating system monopolist...
May require proprietary fuel to operate
What else should a Symbian developer be careful of?
Furthermore, the platform will embrace the runtime technologies already used by the developer community allowing for efficient use of existing assets and skills. The platform will support an extensive offering of development environments including native Symbian C++, POSIX C and C++, Python and Web Runtime based on WebKit.
Webkit is open; so is Python, although the Nokia-contributed bits like the GUI toolkit and the wrappers for the Symbian API are debatable. There's no mention of the Carbide IDE in there, or the standard Symbian C++ developer toolchain. It's also not clear what influence the Foundation's directors will have on the signing process.
Curiously, the mobile industry is adopting this sort of semi-open model just as the IT industry has given up on it. Sun has just finished open-sourcing the entirety of the Java world, and has even chosen to use the open-source version of Solaris instead of its own. But both Google and Nokia are choosing to be slightly less than open, or not quite the same way. Criticisms of Google over Dalvik (their homebrew Java virtual machine, which underlies Android, but unlike Java itself isn't GPL-licenced) are perhaps overdone - Dalvik is covered by the Apache Public Licence, and nobody really doubts the openness of Apache.
But Symbian could be much more open, in more ways than one. Is Nokia under pressure from the chip vendors or the carriers to maintain certain special restrictions? And what would have happened if Psion had gone open source back in 2001?