Meego Wiki
Views

Marketing/MeeGo vs Android

From MeeGo wiki
< Marketing
Revision as of 14:15, 4 December 2010 by Dneary (Talk | contribs)
Jump to: navigation, search

(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? This analysis of the current state of play is based heavily on the MeeGo Progress Report article written by Dave Neary

Links to analysis, data and examples are very welcome!

Contents

Business model

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 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.

Governance

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.

Architecture

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.

Roadmap

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.

Releases

MeeGo releases are time based and occur every six months following a publicly documented process.

UX

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.

SDK

Build system

MeeGo has OBS, which is great. Help needed to explain how OBS helps to ODMs and app developers, and the equivalents (or lack of) in Android.

Distribution

FAQ

Why MeeGo and not using / contributing to Android instead?

Is there a place for MeeGo when Android already exists and is free?

Will MeeGo catch up with the Android growth?

Will MeeGo have the same fragmentation problems Android has?

First let's define the Android fragmentation problem:

  • Android has different versions with different API coverage (((FIXME and binary breaks?))).
  • Some Android products go to market shipping the last version while other new products are shipping previous versions.
  • Some Android products get OS updates while others don't, or the updates are provided at very different times.
  • For application developers is a pain to maintain different versions of different apps.

The risk of falling in a similar scenario exists:

  • MeeGo has a new release every six months. Just like any innovative platform these days, MeeGo will also have an evolving API and binary breaks. Some of these breaks might come from upstream projects and not even be under the direct responsibility of the MeeGo project.
  • MeeGo will eventually have a variety of vendors and the risk of seeing products shipping with different versions and being updated (or not) at different speeds exist.
  • If the conditions above are true, it will be also true that life might be more complicated for app developers.

What are the measures the MeeGo project is taking / should take to avoid those problems?

  • The open governance, roadmap and development on time-based releases help ODMs and the rest of MeeGo stakeholders getting involved in the definition and implementation of new MeeGo releases. Placing a binary break in the next release or one after is a decision made by many, and not a single company behind closed doors.
  • The 6 month release cycle plus the monthly maintenance releases provides an easier path for ODMs to plan new products and their OS updates. (((FIXME: are we planning for an scenario like e.g. Qt Mobility update to a maintenance release for better compatibility?)))
  • The Qt and Qt Mobility roadmaps are key factors of success managing releases and fragmentation. The Qt team has a long and well documented track managing their APIs across releases and platforms.
  • The MeeGo SDK (based on Qt Creator) and the OBS are designed to handle the compilation of the same source code for different targets. (((FIXME: more details about why life for developers can be non-painful if API changes across releases are documented properly))).
  • Note that the risk of fragmentation increases exponentially when apps use directly platform APIs not part of the official MeeGo API, unofficial toolkits, etc. This is directly connected to the definition and observation of the MeeGo Compliance.

Why MeeGo can't have a single distribution channel like the Android Market?

Personal tools