Technically, both Maemo and Android run on Linux kernels. However, Maemo is a full Linux
distro, based on Debian, while Android is a sole kernel with a few programs on top of it
(namely, Dalvik virtual machine and Sqlite database). On Adnroid all applications run within
Dalvik virtual machine, which is heavily optimized and modified version of Java virtual machine
(JVM). I tried to analyze the benefits of each platform from the perspective of a software
developer, as well as platforms' current "strategic position". If you are too busy to
read all the details, there is a short summary paragraph at the end of each chapter.
Android vs Maemo from developer's perspective
Maemo SDK is Linux-only. It's not a problem for me (as Linux is my OS of choice), but it may
be a problem for many developers. SDK works best on Debian or Debian-based distros (e.g.
Ubuntu). Maemo is also a Debian-based distro, so SDK simply uses Scratchbox
cross-compilation toolkit to build for both x86 and ARM architectures.
Maemo applications are developed in GTK+ using Hildon application framework. Naturally,
the primary language of Maemo application development is C. Other languages can also be
used, as GTK+ has bindings for many programming languages, including C++, Java, C#, Ruby
etc. However, most applications will be developed in C, mainly due to performance constraints,
which are especially actual for mobile devices. GTK+ itself is a bit archaic by today's
standards, and although Hildon is specifically targeted for touch-screen interfaces, most of
work is still done in GTK+ and good old C. Thus, the development platform is not on par with
modern mobile application development environments such as iPhone SDK, Android SDK, or
Palm WebOS Mojo SDK. This may change with Maemo 6 release (codenamed
"Harmattan") when Qt libraries will be supported and Qt will become Maemo official
application development framework. B