Qt 使いたいけど高すぎる… そう思ったことはありませんか?
ここでは、タッチディスプレイを備えた組み込み Linux システムを開発するときに、Qt の価値とその代替について考えてみます。
Qt が高い理由
Qt は非常に良くできたアプリケーション開発フレームワークで、GUI だけではなく様々な機能が豊富に揃っています。その分、価格も高めに設定されています。
自動車の統合コクピットをすべて Qt で作るような用途では価値に見合うと思いますが、シンプルなシステムの場合は使わない機能がたくさんついてくるし高いと感じることもあるでしょう。
さらに Qt 本体だけではなく、OS を含めたソリューション、テストツール、コンサルティングなども抱き合わせで販売されることが多く、結果的に高額になりがちです。
加えて、Qt の価格は年々上昇傾向にあります。
ではどうするか?
オープンソース版(LGPLv3)の採用
B2B の製品であれば、オープンソース版の Qt を LGPLv3 で利用することも可能です。
Qt のモジュールの大半は LGPLv3 で提供されます。一部、GPLv3 でのみ利用可能なものがあるので気をつけましょう。
ただし、Qt のオープンソース版には LTS(長期サポート) が存在しないため、採用するバージョンやアップデートの戦略には工夫が必要です。
オープンソース利用時にできる貢献
オープンソース版を利用するのであれば、ぜひ何かしらの形で Qt プロジェクトに貢献することをおすすめします。
- 最新のリリース版に追従する
- バグレポートを提出する
- バグ修正のパッチを提供する
- Qt を使っていることを積極的に発信する
(※ただし商用版購入を勧められる可能性も) - コンサルやトレーニングを通じてエコシステムに還元する
Qt 以外の選択肢
Qt 以外を検討する場合、Rust で書かれた GUI フレームワーク Slint が最有力候補となります。
- Slint は有償ですが、安価で価格も公開されているので安心して採用できます
- Slint は GUI 部分のみを提供しているため、それ以外は標準の C++ で開発する必要があります
- 標準の C++ だけでは機能が不足するケースも多いため、KDAB の KDUtils の利用を視野に入れると良いでしょう
- あるいはロジック部分に Rust を採用するという選択肢もあります
Rust 採用のメリット
Rust を選んだ場合、以下の利点があります。
- Rust の巨大なエコシステム(ライブラリ資産)を利用できる
- メンテナンス性に課題はあるものの、Ferrous Systems が提供する Ferrocene によりこの問題を解決できる
- Ferrocene を採用することで、機能安全認証に対応したソフトウェア を実現することも可能
- Rust の組み込みのエンジニアはそれほどまだ多くはないが、C/C++ の経験があるエンジニアであれば学習は可能で、Rust のトレーニング を受けることもできる。
まとめ
商用版 Qt が高いと感じたときに考えられる選択肢は次の通りです。
- 高いけれどそれに見合う価値はあると信じて採用する
- オープンソース版 Qt (LGPLv3) を戦略的に利用する
- Slint + C++/KDUtils の組み合わせで開発する
- Slint + Rust を採用し、Ferrocene による安全性とエコシステムの利点を活かす
それぞれ一長一短がありますが、タッチディスプレイを備えた組み込み Linux システム開発において、プロジェクトの性質や求めるサポートレベルに応じて最適な道を選ぶことが大切です。
お困りの際はお気軽にご相談ください。