[Eight months after the announcement of the MeeGo project by Intel and Nokia, guest author Dave Neary analyses the progress made to date in MeeGo Handset, and the project's prospects for the future]
The end of October saw the release of MeeGo 1.1, the second major milestone release of the platform since it burst onto the scenes in February 2010. The MeeGo project was born under the auspices of the Linux Foundation from a merging of Nokia’s Maemo platform, targeting smart phones, and Intel’s moblin platforms, aimed at netbooks.
The merger grew from a core idea: pick the best of breed components from both stacks, collaborate on the integration and testing of shared components, and standardise a number of open source UX (User eXperience) profiles, on which vendors could build and deploy complete commercial grade stacks. The initial UX profiles announced were netbook, smartphone, IVI (In-Vehicle Interface) and media center/TV.
Nokia and Intel have both made a major commitment to the platform, but critics say that the relationship is little more than a marriage of convenience. After all, Intel is a silicon vendor, betting heavily on the Atom-based Moorestown platform, and Nokia is a handset designer, largely shipping ARM-based devices.
The project has had some teething problems. Troubled Nokia has changed CEO, and the founding father of the Maemo project, Ari Jaaksi, has been among a number of high level software executives to leave the company, leading some to ask whether Nokia might have a change of heart about the platform. The first MeeGo device for Nokia, originally expected at the end of 2010, will now appear in 2011, according to recent comments from new CEO Stephen Elop, as Nokia strive to ensure a good first impression for its first MeeGo device.
There are some early public signs of friction in the working relationship of the stakeholders in the project, also.
The adoption of Qt as the primary toolkit for both platform and applications has met with resistance from Intel engineers, who acquired Clutter in 2008 and integrated it heavily into the netbook user interface, plus partners like Novell who developed versions of GTK+ applications like the Evolution email client and Banshee music player specifically for the netbook form factor.
Long-awaited MeeGo compliance specifications have resulted in drawn out and sometimes acrimonious debate. Trademark guidelines have been a sticking point for community ports of the MeeGo netbook UX to Linux when these ports do not include required core components.
Related to the technical governance of the project, there is some uncertainty around the release process, and the means and criteria which will be used when considering the inclusion of new components. And there are some signs that the “all open, all the time” message at the project launch has been tempered by the reality of building a commercial device.
The Promise of Openness
Many of these issues are to be expected when merging two projects into one and pairing two very different animals. Every open source project has its own culture, and Moblin and Maemo are no different. Relationship capital which participants built up in the contributing projects must now be rebuilt within a broader group.
MeeGo has had some early successes. MeeGo 1.0, which included the Netbook UX and an early prerelease of the smartphone UX, was delivered in July, complete with the source code of a number of components which had previously been proprietary. Novell MeeGo has been shipping on a number of netbooks since then. The MeeGo wiki lists dozens of MeeGo-compatible devices. The inaugural MeeGo Conference is set to take place in Dublin, from the 15th to the 17th of November, and has sold out with over 600 registered attendees to date.
And there is no denying that the companies involved in the project are committed to it. With the recent rumours that the Symbian Foundation may be shutting up shop, Nokia has few choices of platform left for upcoming high-end devices. Announcing their updated software strategy during their quarterly results call this month, the company confirmed that they are fully committed to MeeGo as the only platform for high end devices from now on.
Clearly, there is a future for the project. The question is, how will MeeGo Handset hold up against the competition from the platforms with the most momentum in the market – iOS and Android, or the recently released Windows Mobile 7. Will a newly reinvigorated WebOS (with Ari Jaaksi at the helm) challenge it for the mantle of the exciting new upstart? In short, is it any good? And will operators, handset manufacturers, application developers and users adopt it?
Since we do not yet have a MeeGo handset device available, it is very difficult to accurately judge the user experience at this time. It is possible to install MeeGo on the Nokia N900 and use it as a phone, using Nokia’s proprietary drivers to enable the hardware, but a lot of basic functionality is missing at present. In my tests, the camera, GPS, battery indicator, network signal strength indicator and WiFi did not work correctly. Features which do work can be slow, or have stability issues. Basic functionality like reading contact details off a SIM card, or unlocking the SIM card on boot, are still missing.
A MeeGo device getting to the market will undoubtedly have pristine hardware integration using 3rd party drivers, and a considerable amount of fit-and-finish which the basic MeeGo stack does not yet have.
The MeeGo handset user experience is still in transition. Maemo 5, the platform’s predecessor, was created using GTK+ and Clutter, while the MeeGo user interface has been built from the ground up using Qt. By all accounts, there are still a number of stability and quality issues with the stack, which we can expect to be addressed in a release shipping on a device.
At this time, the MeeGo Handset UX is not intended for anyone but developers. It is too early to be able to tell how the final product will compare to iOS or Android.
The Developer story
At the time of its announcement, one of the key advantages held up to developers was the potential to use a single toolkit, Qt, to build native applications which will be portable across Windows, Linux and Symbian. Nokia has been investing heavily in RAD tools like Qt Quick to allow developers to get up and running quickly. In addition, their as-yet unavailable Web Run Time promises to allow developers to easily integrate web applications.
The developer tools are in development, and do not yet compare favourably with the equivalent Android offering, which includes easy tools for building, testing and deploying applications using Eclipse. In addition, since the project is still in relatively early stages, there is a marked lack of entry-level documentation to help developers get started.
It is still unclear what software distribution channels or app stores will be available for application developers on a MeeGo device. Ovi Store will be available on Nokia devices for commercial applications, and there may be a community distribution channel made available for community-built applications, but what form this channel might take, and to what extent it will integrate with the MeeGo user experience is still unclear. Presumably other handset manufacturers, should MeeGo gain wider adoption, will provide their own application stores, further fragmenting the application developer story.
MeeGo certification ensures that it will be possible to build applications which work across all vendors, but at this point the jury is still out on how useful “MeeGo Compliant” will be to application developers. There is a possibility of considerable fragmentation among non-core APIs when MeeGo devices from several vendors are available.
From the point of view of tools, documentation and software distribution channels, MeeGo is undoubtedly behind its primary competitors – but for such a young project, this is to be expected. The success of the project among application developers and the free software community will depend to a large extent on the project’s ability to fill these gaps and provide developers with an excellent development experience.
For platform developers, the story is much more encouraging. The source code to the entire MeeGo stack is available, and anyone can download images built daily. Images built for ARM and Intel Atom can be installed and tested on a range of developer devices, including the Nokia N900, TI’s BeagleBoard or PandaBoard, or the Aava Mobile developer kit.
On the other hand, there has been a tendency of the platform architects to reduce the range of hardware and software supported by the basic MeeGo stack. There is limited support for non-Intel x86 chipsets, and support for only a subset of ARM chips. Kernel modules have been aggressively trimmed, sometimes arbitrarily, to disable functionality such as NFS.
Community and governance
MeeGo development is all happening in a public git repository, most discussions are on public mailing lists, and there are a large number of experienced free software developers among the community development team, which is ensuring that any communication or transparency problems are identified and addressed swiftly. In the mobile platform development world, it is fair to say that MeeGo is second to none in terms of its open development model.
This contrasts sharply with Android which is primarily developed behind closed doors by Google, and iOS which is a completely proprietary platform. If there is a key differentiator for MeeGo in the hand-held market, this is it. It remains to be seen whether the open development model will be a selling point which will tip the balance when manufacturers are choosing a platform for a device.
The MeeGo community is made up of members of the Maemo and Moblin communities, and in the case of Maemo, there have been a number of contributors who have decided not to contribute to the MeeGo project. The move to MeeGo represents the third major change in the project in two years (after the move to GTK+/Clutter in Maemo 5 and the announcement that Qt would be the only supported application toolkit) and has left some shell-shocked.
The Moblin community, on the other hand, did not develop a large platform developer community, partly since the project did not offer a distribution channel for application developers. It seems like all those who were productively contributing to moblin have followed the project move to MeeGo.
OEMs and operator support
One of the key differentiators between traditional handset manufacturers and the young guns (iOS and Android) which have taken the market by storm, is that both Android and iOS have concentrated on the user and application developer experience to the detriment of their relationship with OEMs and operators. It is widely argued that Apple’s iPhone has reduced the role of the operator to that of a bandwidth and infrastructure provider. In turn Google takes a take-it-or-leave-it approach with handset manufacturers; unless manufacturers comply with Android’s compatibility definitions (CTS and CDD), they can’t have access to the Android trademark, Android Market’s 100,000+ application, Google Maps and several other closed source applications.
Nokia has a more traditional approach of putting handset manufacturers and network operators ahead of developers. This shows through in many of the architecture decisions in MeeGo. The platform has been built with operator and OEM customisation and integration in mind from the start.
A primary concern for OEMs with MeeGo is the time required to integrate the platform into a specific device and ship to market. With the time to market for Android handsets dropping to 4-5 months from project to production, it will be very hard for MeeGo to compete, even with the MeeGo 1.2 release, due in the first half of 2011.
Still a long way to go
It does not feel fair at this point to compare MeeGo, a project which came into being 8 months ago, with iOS or Android, but this is the yardstick which will be used when the first MeeGo smartphone comes on the market. The project has come a long way since its inception, in particular in working towards an open and transparent development model. There is still some way to go but improvements have been happening daily.
However, to succeed as a platform, the application developer story and the user experience are vital. There is a lot of work to be done in these areas for MeeGo to gain serious traction outside of the small community of Finnish handset designers. Nokia still has a long way to go.
[Dave Neary is the docmaster at maemo.org and a long-standing member of the GNOME Foundation. He has worked in the IT industry for more than 10 years, leading software projects and organising open source communities, He's passionate about technology, and free software in particular.]