July 15, 2009
This article was contributed by Nathan Willis
At the Gran Canaria
Desktop Summit (GCDS) on July 4th, Nokia's Maemo marketing manager Quim Gil announced
that, beginning with the Harmattan release expected in 2010, the company
would adopt the Qt toolkit for Maemo's application and user interface
layer, replacing the Hildon user interface and
GTK components that have served that function since the platform's debut.
The announcement was met by a mixed reaction from the Maemo development
community, which is already faced with significant API incompatibilities
scheduled for the still-to-come Fremantle release, but most agreed that the
move was inevitable in light of Nokia's acquisition of Qt creator
Trolltech.
Gil presented
his talk during the combined GNOME and KDE portion of GCDS, starting with
an overview of the current Maemo platform and explaining the upcoming
changes in Fremantle before addressing the move towards Qt. "Fremantle" is
the code name for Maemo 5.0, and although the software development kit
(SDK) has been released, the software and the new hardware devices on which
it will run have not. Fremantle will retain many of the same components on
which earlier Maemo devices were built, but also introduces some new ones,
including the PulseAudio sound
server, an X.org X Window implementation,
and the Upstart init
replacement.
Fremantle will also support a community-maintained Qt toolkit, but the
Maemo environment and Nokia applications will remain on GTK and Hildon.
Starting with Harmattan, Gil explained, the GTK/Hildon and Qt frameworks
will swap places: the core applications and interface will be written for
Qt, and GTK/Hildon will be supported through a community-maintained stack.
He went on to explain that Nokia will continue to use and contribute to
numerous middleware components from the GNOME stack that have always been
pieces of Maemo — including GConf, GVFS, and GLib, among others —
and emphasized that the move to Qt would bring Maemo a step closer to being
a traditional Linux platform, rather than a partially-compatible, niche
variant.
Regarding the decision to move from GTK/Hildon to Qt, Gil's talk cited
two factors. First, the Qt framework is available on desktop systems and
handheld devices like Symbian-powered phones, making it easier for
application developers to use one tool chain and one API across a variety
of platforms (although GTK is available on desktop systems, Hildon is
designed for mobile devices). Second, Nokia plans on furthering
development of the Qt toolkit through its QtMobility
project, which will develop entirely new APIs for mobile devices running
Symbian, Maemo, or Windows CE.
Developer reaction
Responses to Nokia's announcement hit Maemo-related blogs and discussion
boards almost immediately. Some expressed optimism about the switch, but
many more expressed their reservations — not about Qt itself, but
about the sudden switch from one toolkit to another, and the accompanying
switch from C to C++ as the core language. In the Maemo Talk forum thread discussing
the announcement, several posters expressed concern that neither
Fremantle nor Harmattan would officially support both the old and
the new toolkit, thus leaving third-party developers without a smooth
transition plan.
Furthermore, the difficulty of the toolkit switch between Fremantle and
Harmattan is compounded by the fact that Fremantle will break compatibility
with the Maemo 4.x-series, thus forcing two consecutive rewrites onto
developers. Others in the thread questioned the timing of the
announcement, since Fremantle has yet to be released. According
to forum member "pycage", "This story gives me the impression that
Fremantle, from a developer's point of view, is already obsolete even
before it was released."
Murray Cumming of embedded Linux company Openismus observed
on his blog "its clearly a rather arbitrary and disruptive
decision. I suspect that some managers are dictating the Nokia-wide use of
Qt even in projects that dont otherwise share code, without
understanding the difficulty of the change. UI code is never just a thin
layer that can be replaced easily, even if it looks like just another block
in the architecture diagram. Likewise, hundreds of C coders cannot become
capable C++ coders overnight. I expect great difficulties and delays as a
result of the rewrites [...]"
Gil, however, defended the move to forum members, noting
that "providing commercial support on both frameworks [GTK/Hildon and
Qt] for both releases [Fremantle and Harmattan] implies an amount of work
that we simply can't nor want to commit [to]." He responded
to developers' fears of two consecutive releases breaking compatibility by
assuring them that the transition would be smooth because of the consistent
middleware layer, and noted that the advance timing of the announcement
itself was an effort to give early warning so that developers could have
adequate time to prepare. He also said
that it was too early to draw conclusions about compatibility across
releases, since many of the details of Harmattan are still unknown.
Nokia and Qt ... and Symbian
Uncertainty about transitioning between two user interface toolkits
aside, no one seemed surprised by the announcement that Maemo would move to
Qt, given that Nokia acquired
Trolltech — subsequently renamed Qt Software — in January of
2008. As Gil alluded, moving Maemo to Qt allows Nokia to more efficiently
repurpose its engineering resources toward the development of a single
software stack. More importantly, however, by using Qt on Maemo Nokia will
be "eating its own dogfood," and can thus more actively promote Qt as a
commercial solution to application developers.
Several in the community noted that, in the market for Qt, Maemo is
considerably smaller than desktop Linux, which itself is considerably
smaller than the smartphone operating system Symbian, which Nokia acquired
in June of 2008. Shortly after the acquisition, Nokia announced plans to release
Symbian as open source software, and set up the Symbian Foundation to manage the code.
The company released its first preview of Qt running on top of Symbian in
October of that year, and has continued to develop it as a "technology
preview," highlighting its cross-platform capabilities.
Maemo Talk forum member "eiffel" speculated
that Nokia's plan might be to somehow merge Maemo and Symbian into a single
OS, but Gil's talk presented a more straightforward plan: he described
Maemo as the platform best suited to high-end mobile hardware like mobile
Internet devices (MID), occupying the middle slot in between
Symbian-powered phones and full Linux desktops. Maemo bloggers Daniel
Gentleman and Jamie Bennett
both observed that by acquiring Qt and Symbian, Nokia was better
positioning itself to compete against the full range of handheld devices
that are soon expected to be running Android.
Gil commented in the Maemo Talk discussion that Nokia plans to develop
new Qt APIs specific to handheld devices under the QtMobility project. The
QtMobility site lists three new APIs: connections
management, contacts,
and a service
framework. Source code for all three is available from a public Git
repository, although none have yet been bundled for stable release. Gil indicated
that the new APIs will be shared across the platforms, but that Maemo and
Symbian will not share other code. "The interest is to align on the
API level. Then each platform will push its own identity and strengths
based on the target users and form factors of the products released. This
means that UI and pre-installed application might differ, and in some cases
even significantly."
What's next?
Moving Maemo from GTK/Hildon to Qt may be painful in the short term
— at least for some developers — but the long term benefits of
a single toolkit for both Linux-based and Symbian-based platforms no doubt
made the decision easy for Nokia. The big question remains —
regardless of whether it uses GTK/Hildon or Qt — where does Nokia
intend to take Maemo itself? The platform has plenty of fans in the open
source community, but it remains a niche OS.
Since its debut, Maemo has shipped on only three Nokia devices: the 770,
N800, and N810 Internet Tablets, the last of which was launched in 2007.
Although a community effort
exists to extend the platform's hardware support, and it can run on a BeagleBoard development motherboard, to
date no non-Nokia consumer product has ever adopted Maemo as its operating
system. Fremantle will reportedly launch on a new generation of device,
running on OMAP3-based
hardware that Nokia notably does not refer to as an Internet Tablet like
its predecessors, opting instead to use generic terminology like "device"
and "hardware."
It would require considerable reading between the lines to speculate
that Nokia intends to ship Maemo on its high-end smartphones, especially
considering that the company has continued to push Symbian as its platform
of choice for its high-end N-series and E-series phones four years
after launching Maemo. But unless Nokia plans to offer more products in
the MID product category, it does seem strange to expend resources
maintaining an entire operating system for a single device, especially
while touting the multi-platform reach of Qt as one of its strengths.
(
Log in to post comments)