(This task lacks a proper plan, objectives committed to a MeeGo release and a coordinator. If you want to discuss it further go to meego-community)
THIS PAGE IS A DRAFT AND DOESN'T REFLECT OFFICIAL OPINIONS OF THE MEEGO PROJECT
What are the strengths and weaknesses of the MeeGo project compared to Android? Dave Neary wrote an article on the subject, and plans to integrate the ideas from that article into this page: MeeGo Progress Report
Links to analysis, data and examples are very welcome!
The MeeGo business model is quite straightforward and known in the open source context: developing a platform takes resources, and sharing the development optimizes costs for each contributor, while increasing the quality and reducing the time to market for all stakeholders. The platform itself becomes a commodity while each stakeholder still has plenty of room for their own differentiation with proprietary software, services and device products.
The Android business model is, in comparison, a lot more obscure. Android is for Google an extension to their complex of free services powering their advertisement business model. Taking the Android gift companies might get their own short term success, but they are always contributing to Google's benefits and growth. Google's growing power is seen with high concern by many companies, even by those benefiting from Android's short term benefits today.
The governance structure of MeeGo is open to all contributors while Android and the Open Handset Alliance are clearly governed by Google alone. Since the first day MeeGo has at least two different companies as core stakeholders, which requires a totally different setup. Intel and Nokia are willing to get more companies involved in MeeGo development, deployment and governance, including their own competitors.
MeeGo is a platform that sits entirely in the Linux and free software tradition. The platform is a standard Linux based stack made of cutting edge upstream projects that are developed independently and benefit also other distributions. It's the setup that has brought the Linux kernel and the operating systems based on it on a path of growth and success. The MeeGo API and development environment is based on Qt, a project with a long history in the free software community that has opened its development process and contribution model in the past years. Most of the components of the MeeGo platform are deployed also in other platforms.
Even if Android is based on Linux, in practice is developed as a fork by Google, who carries with most of its development. The Dalvik application framework is a Java based implementation also detached from the Java community. The key parts of the Android stack are basically used in Android alone. This isolation has been useful for Android in the short term, but in practice it pushes ODMs and application developers out of the broader Linux and free desktop currents, requiring skills and development specific to Android.
The MeeGo project wants to have an open roadmapping process governed by the Working Groups, where the main contributors and stakeholders are involved. In that process, the maintainers of development areas commit to develop features targeting specific releases. The progress of the development of those features can be followed at http://bugs.meego.com . The MeeGo roadmap indirectly depends also on the roadmaps of the upstream projects developing openly software components integrated in MeeGo (Linux Kernel, Xorg, Qt, etc). This allows platform and application developers to plan ahead in equal conditions.
The Android roadmap is private, designed entirely by Google and updated whenever Google decides to make announcements. Google partners involved in future lead products for the Android platform might get a view on those plans in advance, putting in disadvantage the Android deployers and developers without a special relationship with Google.
MeeGo releases are time based and occur every six months following a publicly documented process.
The MeeGo platform has single Core OS powering different UX categories. All these categories share the same MeeGo API but have an UX layer optimized for the form factors they are targeted to. This architecture was designed to satisfy different device categories since the beginning. Every MeeGo release brings an update to the Core OS and all the UX categories.
Android was created only with the smartphone form factor in mind. Even if it has been ported and customized to be deployed in other form factors, the adaptation is not trivial and the maintenance burden can grow considerably.
MeeGo has a professional integrated build system called OBS: [Open Build System] originally created for the openSUSE project.
The OBS solves the issue of moving dependencies between conflicting requirements :
The MeeGo project provides the initial OBS which contains the entire MeeGo project split in convenient packages. It can be daisy chained by the ODM private OBS if non proprietary code integration is required. Once the OBS process is configured, the ODM benefits from an automatic and fully customisable method to easy follow the movement of the MeeGo core and by side effect of Linux Community as a whole, while retaining an easy method to keep compatibility with their proprietary extensions. More on that use the [ODM case].
OBS also delivers to the Developers the capability to support simultaneously multiple distributions and/or versions of the same distribution by automatically triggering the build process and the secure publication of the new packages at each change of one of the dependency. Developers can enjoy the use of free community OBS, build their own, or use the simplify build sub-system.
First let's define the Android fragmentation problem:
The risk of falling in a similar scenario exists:
What are the measures the MeeGo project is taking / should take to avoid those problems?