Ubuntu to get Qt
Jan 19, 2011 — by Eric Brown — from the LinuxDevices Archive — 7 viewsCanonical founder Mark Shuttleworth announced that the next version of Ubuntu Linux will adopt Nokia's Qt cross-platform development framework. Due in April, Ubuntu 11.04 (“Natty Narwhal”) will offer Qt libraries as an alternative development environment to Gtk+, further extricating Ubuntu from its traditional embrace of all things GNOME.
"As part of our planning for Natty+1, we'll need to find some space on the CD for Qt libraries," Shuttleworth starts off a Jan. 18 blog entry, referring to Ubuntu 11.04, "and we will evaluate applications developed with Qt for inclusion on the CD and default install of Ubuntu." By adopting the cross-platform Qt development framework, the leading consumer-oriented desktop Linux distro will further stray from its GNOME/Gtk roots.
At the Ubuntu Developer Summit in October, shortly after Canonical released Ubuntu 10.10 "Maverick Meerkat"), Shuttleworth announced that Ubuntu Desktop 11.04 would swap out the GNOME user interface as the default in favor of its homegrown Unity UI layer, which is now available on the Ubuntu Netbook Edition (UNE) of Maverick, pictured below.
Ubuntu Network Edition 10.10 with Unity UI
In a further indication of Canonical's willingness to break from tradition, the U.K.-based sponsor of the Ubuntu project announced it was abandoning the X Window interface for Ubuntu's graphical stack in favor of Wayland.
All of these moves have been controversial, but the adoption of Qt may top them all, awakening a long-running feud between Linux developers who live and die by Gtk+, and others who have been swayed by the cross-platform allure and mobile reach offered by Nokia's Qt.
Gtk+ libraries form the foundation of the GNOME desktop environment, which still predominates among desktop Linux distros over KDE, which is built upon Qt. The library battle, then, is tightly linked to the old GNOME/KDE schism.
Gtk+ developers "reeling and punch drunk" from Canonical moves
The tension between the Gtk+ and Qt camps has been going on for years, and is summed up nicely by Ryan Paul in in an Ars Technica story on the Canonical announcement. At ZDNet, meanwhile, Steven J. Vaughan-Nichols suggests that the relative quiet among the Gtk+ faithful in the immediate aftermath of yesterday's announcement is the result of shock. Developers are "still reeling" from the Unity and Wayland announcements and may be "punch drunk," he speculates.
As if anticipating the cacophony of boos and "Noooooo!'s" from the Gtk+ camp, Shuttleworth notes that Gtk+ is still available. What's more, he reminds Ubuntu developers that the chief complaint against Qt — restrictive licensing — was removed two years ago when Nokia's Qt Software division announced it would add a commercial-friendly LGPL licensing option. The licensing option was added several months later in March of 2009 with the release of Qt. 4.5. (See farther below for more Qt. background.)
LGPL places copyleft restrictions on the libraries themselves, but does not extend these restrictions to software that links to them. In other words, for the last year and a half, Qt developers have been able to build their proprietary applications on top of Qt without paying a licensing fee.
Shuttleworth argues that while Ubuntu has benefited from the focus on a single development environment, the distribution is now sufficiently mature to give developers freedom of choice.
Because ease of use has been a high priority for Canonical's open source Ubuntu project, "Historically, that has meant that we've given very strong preference to applications written using Gtk, because a certain amount of harmony comes by default from the use of the same developer toolkit," writes Shuttleworth.
"That said, with OpenOffice and Firefox having been there from the start, Gtk is clearly not an absolute requirement," he continues. "What I'm arguing now is that it's the values which are important, and the toolkit is only a means to that end. We should evaluate apps on the basis of how well they meet the requirement, not prejudice them on the basis of technical choices made by the developer."
Dconf bindings promised to bridge settings and prefs gap
Noting that differing system settings and preferences, "have long been a cause of friction between Qt and Gtk," Shuttleworth says that Canonical has contracted with developer Ryan Lortie to create "dconf bindings" for Qt to address this issue. Once completed, the bindings will make it possible "to write a Qt app that uses the same settings framework as everything else in Ubuntu," he adds.
Once again playing defense, Shuttleworth goes on to write, "The decision to be open to Qt is in no way a criticism of GNOME. It's a celebration of free software's diversity and complexity. Our work on design is centered around GNOME, with settings and preferences the current focus as we move to GNOME 3.0 and gtk3."
The MeeGo connection
Despite Shuttleworth's promise to continue focusing on GNOME, Qt appears to have the momentum. as ArsTechnica's Paul notes, Qt's "numerous technical advantages, excellent cross-platform compatibility, and strong positioning in the mobile space are making it an attractive choice for third-party developers and commercial ISVs."
All this led Nokia to sink $150 million in the acquisition of Trolltech and its Qt platform two years ago (see farther below), and under Nokia's guidance, the technology has continued to evolve and is now underpinning Symbian as well.
Nokia was also able to convince Intel to use Qt as a cornerstone of the jointly developed, Linux-based MeeGo operating system, giving Qt even greater clout in the developer community. Yet MeeGo is also based on GNOME, showing that GNOME and Qt can be made to coexist nicely.
As Paul writes, "It seems like Nokia has a few obvious incentives to collaborate with Canonical in order to continue improving Qt's GNOME integration."
Of particular interest to Canonical may be Qt's superior support for mobile devices, and indeed MeeGo's mixing of GNOME and Qt on mobile platforms helps pave the way. In recent months, Canonical has finally begun to publicly talk about pushing Ubuntu into the lucrative tablet market — where in fact, it has already begun to find a home.
Both Paul and Vaughan-Nichols worry that Canonical may have bitten off more than it can chew by pushing forward on Unity, Wayland, and Qt all at once — and keeping the developer community happy at the same time. Yet, they both praise the move, with Paul calling it "a major win" for Ubuntu.
Qt background
Qt (formerly known as Qtopia Core) is designed to help both mobile and desktop application developers create software that can be recompiled for multiple target OSes with a high percentage of shared code. It does this by letting developers compile binaries for various platforms from a single C++ code base.
Qt has traditionally supported Linux, Windows, Mac OS ("Carbon"), and Java VMs, and more recently added support for Windows CE/Mobile and Symbian.
Nokia took control of Qt's destiny when it acquired Norwegian software firm Trolltech in June 2008. The acquisition followed Qt 4.4, which added the open source Webkit browser engine and Phonon multimedia framework.
After the aforementioned Qt. 4.5 release in March 2009, Nokia followed up with Qt. 4.6 in Dec. 2009, adding multi-touch and gesture support, as well as well as the first cross-platform support for Nokia's Symbian and Maemo platforms. Qt 4.6 also provided enhancements including new animation and state-machine frameworks, an updated Qt Creator IDE, and new OpenGL and WebKit engines.
In September of last year, Nokia released Qt. 4.7, touted for offering much faster performance. Qt 4.7 also added two building blocks of an upcoming high-level animation- and touch-enabled UI stack called Qt Quick: a Javascript-based QML language and a "Qt Declarative" C++ module.
In October, Nokia announced it would focus on the Qt framework for both its MeeGo and Symbian mobile operating systems instead of using older Symbian development platforms.
Availability
Mark Shuttleworth's blog announcement about the adoption of Qt may be found here. Clarification and amplification has been provided, meanwhile in this Ubuntu Qt FAQ on the Ubuntu site.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.