ノキアから売却されてQtはどうなったのか? 弱体化してしまうのではとの心配をよそにダウンロード数は飛躍的に伸びている
2011年12月15日および16日、東京にて「Qt Developer Conference Tokyo 2011」が開催された。日本における開催は3回目となる。Qtはノキア(Nokia)からオープンソースソフトウェアプロジェクトとして独立してからもその注目度を上げ続けている。
今回、カンファレンスに参加するために来日したノキアのQtエコシステムディレクターであるダニエル・キールベルグ(Daniel Kihlberb)氏およびQtプロジェクトチームメンテナーであるラーズ・クノール(Lars Knoll)氏にQtの現在や未来についてお話を伺う機会を得た。以降、技術的に特に興味深い点に的を絞って紹介したい。
カンファレンスが開催された日、QtプロジェクトはQtの最新版となる「Qt 4.8.0」を公開した。Qt 4.8系は現在主要バージョンとして採用されているQt4系の最新版で、性能改善や新機能追加が実施されたバージョン。次期メジャーバージョンとなるQt5へ向けた重要なマイルストーンリリースといえる内容になっており、今後の移行計画も含めて採用を検討したいバージョンだ。Qt 4.8の主な特徴は次の通り。
従来、OpenGL実装そのものはマルチスレッドに対応していたが、主に「OpenGLを使用するQtライブラリの部分」がマルチスレッド化されていなかった。Qt 4.8ではこの点が改善されており、さまざまなスレッドを活用してOpenGLレンダリングを実現できるようになっており、よりスムーズなGUIの実現が可能となる。
HTTPの処理も変更されており、デフォルトで別スレッドからHTTPリクエストが処理されるように変更されている。ネットワーキングの処理にメインのイベントプールを使わないように変更されており、ネットワーキング処理がGUIに与える影響も低くなるように改善されている。また細かい変更となるが、ファイルシステムアクセスにおけるシステムコール使用回数の削減やキャッシュの活用などが進められた結果、どのプラットフォームにおいてもファイルシステムアクセスの性能が向上している点も注目される。
Qt WebKitが更新されたことで、HTML5に関連する機能も充実した点にも注目しておきたい。
また同時に、GoogleがChromeをターゲットに開発している高性能JavaScript実行環境「V8」が新しいバージョンへアップグレードされた点も注目される。HTML5技術はQtにおいても重要な地位を占めており、関連するコンポーネントのアップグレードはそのままサポート状況の改善や性能の向上に直結する。
QPA(Qt Platform Abstraction)はQtGUIを新しいウィンドウシステムへ簡単に移植できる機能を提供する。例えば既存のアプリケーションをAndroidへ移植したり、QNXやBlackBerryなどのプラットフォームに移植する作業をより簡単にする。
Qt4系がリリースされたのは2005年6月だから、もう6年前の話になる。この6年間でQtを取り巻く状況は大きく変化した。スマートフォンやタブレットデバイスの台頭、H/W性能の向上、モバイルデバイスにおけるGPUの搭載など、Qtのアーキテクチャを現状に合わせて再構築するべきタイミングに来ているというのがQt5の開発の根底にある。
「Qt4の登場から6年が経過しており、コードベースのリファクタリングを実施する時期に来ていると考え、Qt5に取り組んでいる」 と、 ラーズ・クノール氏はいう。Qt5は長期にわたって使用できるアーキテクチャにしたいと考え、Qt4からの移行もより簡単に実現できることに注力しているそうだ。時代に合わせてQtのアーキテクチャを再構築し向こう数年以上利用できる基盤技術とすること、それがQt5だ。
Qt5はQt4系と互換性を保ちながらアーキテクチャを抜本的に変更するものとなる。ラーズ・クノール氏は特に次の4つの特徴があると説明した。
モジュール構造アーキテクチャへの移行と、OpenGLをベースとした新しいグラフィックスタックの採用、というのがQt5の大きな特徴となる。モジュール化は組み込みデバイスにおいて大きな意味を持っている。必要となるモジュールのみを組み合わせてシステムを構築すればよく、消費するリソースを抑えることができる。
グラフィックスタックをOpenGLをベースにQt Quickを基盤にするというのもQt5の大きな特徴となる。組み込み向けのプロセッサにおいてもGPUの機能を搭載したものが増えており、今後もさらなる普及が見込まれている。OpenGLをベースの機能として採用しQt Quickを主要な機能として採用することは性能向上の面でも大きな意味がある。
OpenGLをサポートしていないプラットフォームでは従来の機能を使ったエミュレーターが使われる。QWidgetsは分離して提供され、こちらはOpenGLを必要としない仕組みになっている。
ノキアは2011年3月、Qtの商用ライセンスおよびサービスに関する事業を売却すると発表Nokia、Qtの商用ライセンス事業を売却した。同時期、ノキアはスマートフォンの主要プラットフォームにWindows Phoneを採用すると発表したこともあって、Qtへの取り組みがどうなっていくのか関係者に不安を与えた面は否めない。
しかし発表以降もQtのダウンロード数や利用数は増加の一途をたどっており、実際には良くも悪くも、発表があって注目を浴びることで、以前よりも多くの関係者の関心を得ることができたという。ダニエル・キールベルグ氏はこう説明する。「発表以来Qtへの注目が高まっており、さまざまな数値を塗り替えてきた。Qtは主要なコンポーネント技術であり、戦略として今後も投資を継続する。開発者への投資も積極的に進めている」
Qtはスマートフォンやタブレットデバイス向けのプラットフォームとして注目を集めつつあるが、当然今まで通り組み込みデバイスにおける注目度も高い。特に最近は自動車関係での要望が高まっており、日本では今まで以上に自動車開発におけるQtの採用事例が増えていることから、今後も積極的な採用が予想される。
Qt5はGUIの移植が従来よりも簡単になる。スクリーンサイズや搭載されている機能の異なるさまざまなデバイスに対してネイティブアプリケーションを提供する場合、Qt5の提供する機能はどれも役立つものとなる。Qt5は2012年夏ごろの登場が見込まれており、組み込み市場において注目度の高いリリースになるものと見られる。
最近のコンパイラ・インフラストラクチャ情勢を踏まえ、ラーズ・クノール氏にQtが想定しているデフォルトコンパイラについて訪ねてみた。というのも、最近はOSSデフォルトコンパイラとしてGCCではなくLLVM Clangを選択するOSSプロジェクトやベンダが増えているからだ。QtはC++であるためClangの採用は微妙なところがある。そのあたりを含めて聞いてみた。
ラーズ・クノール氏によればLinuxではGCC 4.4またはGCC 4.3を想定、Mac OS XではGCC 4.2を想定しているという。Mac OS Xの想定しているGCCのバージョンが古いのは、GPLv2で提供されている最後のGCCのバージョンが4.2だからだ。同様の理由でFreeBSDといった他のOSもGCCのバージョンアップを4.2で停止しているプロジェクトがある。
ClangはC言語のサポートが進んでおり採用するプロジェクトも多いが、C++に関してはサポートしている機能などが足りないところもあり、GCCほどは採用が積極的ではない状況にある。Qtとしてはまだそれほど魅力的なコンパイラ・インフラストラクチャとはいえないのだ。ラーズ・クノール氏によればQtはすでに完全にオープンソースコミュニティであり、要望に応じてClang対応を将来検討することは十分にあり得るだろうという見解を示した。
ノキアから飛び立ってオープンソースソフトウェアプロジェクトとして従来よりもオープンなコミュニティになったQtだが、すでにノキア以外の開発者がメンテナに就任しており、さらに、ラーズ・クノール氏によると今後ノキア以外の開発者のメンテナへの採用を増やしていくという。このような点からも、Qtをオープンソースエコシステムの中で積極的に推進していく姿勢が感じ取れ、よりオープン化が進むことで今後に期待できる。
オングス代表取締役
後藤 大地
@ITへの寄稿、MYCOMジャーナルにおけるニュース執筆のほか、アプリケーション開発やシステム構築、『改訂第二版 FreeBSDビギナーズバイブル』『D言語パーフェクトガイド』『UNIX本格マスター 基礎編?Linux&FreeBSDを使いこなすための第一 歩〜』など著書多数。
Copyright © ITmedia, Inc. All Rights Reserved.