C GTK+
C++ Qt
Java Java
LL Tcl/Tk
どれが良く使われているのでしょうか?それともこれ以外の方法が良く使われていますか?
本当に世間でよく使われているかは自信がありませんが、私でしたらJava + SwingまたはJava + SWTをお勧めします。
と、言いますのも普段メインで使用しているマシンがWindowsという方でしたら、Windows上で開発してLinux環境へ持って行き、実際の表示を見ながら微調整をすると言った開発スタイルがとれ、Windowsで使い慣れたツール類も活かせる点があります。もっとも、普段からLinuxをメインという方でしたら、一概にはそうとは言えませんが。
また、Javaでしたらフリーで秀逸なRADツールと称した、画面イメージにコンポーネントをマウス操作で貼り付けるイメージでアプリの画面をサクサク構成できるツール(eclipseのVisualEditor(http://www.eclipse.org/vep/WebContent/main.php)やNetBeans(http://www.netbeans.org/features/java/swing_ja.html)など)があり、かなり開発の助けになるかと思われます。デバッグツールとしても、C/C++でgdbやそれらのフロント(dddなど)を使うより簡単かもしれません。
この他、C/C++での開発と違いメモリアクセス周りのバグに悩まされにくいかな、と。
ただ、デメリットもあり、Javaで開発するとメモリ管理、メモリ使用量に無頓着になりがちで大量消費するアプリにしてしまったり、JavaのJREやJDKがプリインストールされていない環境であれば自分でインストールする必要もあります。これらに気を配ったり、許容できるのでしたらJavaがお勧めかな、と思います。
私が仕事で関わったり、見聞きした範囲ではJavaが多かったと記憶しています。
ただし、開発したいGUIアプリの種類によっては話が変わってしまいます。例えば画像処理で画素をゴリゴリ計算処理するアプリや、GCによる処理速度の揺らぎがあまり許容できない(広帯域なUDP受信クライアントなど)、大量配布予定があり開発したアプリの導入の敷居を下げたい、など。
このような回答でお役に立ちますか?
以前、私が経験した組み込みLinuxでの開発では、ハード仕様的な制限から対象機器のVRAMのアドレスが直接アプリにさらされていて、VRAMに対する描画ライブラリから開発し、その上にGUI層を新規に構築してあるものでした。
そのため組み込みLinuxという枠でGUIを考えると、対象機器の種類やハード的な仕様により千差万別なのかと思われますね。一般的にどうなのかは私の経験だけでは推し量りかねるかな、と。
個人的にはプロトタイプはTcl/Tkで組むのが楽ですね
例えば、LinuxでWebサーバ構築では
LAMP, Ruby on Rails, Strutsが混在していて
どれがメジャーなのか良くわかりません
GUIもGTK+, Qt, Tkが凌ぎを削っていて
どれがメジャーなのか良くわかりません
# WindowsのGUIでもWin32APIとMFCと.Netが削っていて
# 将来どれがデファクトスタンダードになるのか分かりません
# もしかしたらまた別の技術が出るかもしれないし...
ある意味賭けですね。
# なお、私は昔OpenWindowsに賭けて思いっきり外しましたので
# 私の意見に同意するのは自己責任でお願いします
>個人的にはプロトタイプはTcl/Tkで組むのが楽ですね
なるほど。私はRuby使いなので、Ruby/Tkも覚えたほうがよさそうですね。
>GUIもGTK+, Qt, Tkが凌ぎを削っていて
>どれがメジャーなのか良くわかりません
そうなんですよね。Javaならユーザーも多そうな気がしますね。
># なお、私は昔OpenWindowsに賭けて思いっきり外しましたので
10年くらい前にJavaで同じような目にあった気がします。出始めの頃色々面白がってやってたんですけどね。
調べた方の指針としては、sourcefoge.netで登録されているオープンソースプロジェクトをキーワード検索して件数を見てみたというレベルです。よく使われていれば登録プロジェクト数も多かろうという漠然とした判断ですが、ご参考になれば。
キーワード:件数(キーワードからLinuxを外した件数)
Linux GTK+ : 130(859)
Linux Qt : 122(558)
Linux Tcl : 15(299)
Linux Swing : 5(460)
Linux SWT : 5(108)
オープンソースという範囲ではありますが、GTK+がやはり多そうですね。
ただ、個人と企業などでどれを採用するケースが多いのか? と考えると、個人は様々な理由からでしょうが、企業となるとやはり移植性が高いものを選ぶ傾向があるのかな、と思います。
商用ミドルウェアなどの製品群の付属GUIツール類は、私が触ったことのある今まではJava製のアプリが多かったですね。これはSolaris、Linux、WindowsServerとメジャーなサーバ向けOSごとの移植が容易だからでしょうか。
そう考えると移植性もメジャーになるための必要要素だと考えられますので、オープンソースの世界で採用率の高いGTK+とQtと考えると、どちらが移植性が高いのでしょうか? どちらもそれぞれの環境用のものが存在はしますが、個人的にはQtの方が優れているのかな? と。
結果として私的にはLinuxでGUIについQtを練習するというのは良い選択ではないかなと思います。
情報ありがとうございます。
こうしてみるとGTK+ と Qtは同じくらい使われているみたいですね。
googleで検索してみても同じような傾向ですね。
GTK+ の検索結果 約 5,070,000 件中 1 - 10 件目 (0.12 秒)
qt4 の検索結果 約 2,510,000 件中 1 - 10 件目 (0.20 秒)
関連検索: gtk+ windows gtk+ インストール gtk+ プログラミング gtk+ runtime GTK+ ダウンロード
関連検索: qt4 windows qt4 インストール qt4 designer qt4 プログラミング Qt4 入門