クロスプラットフォームにしたい GUI ベースのツールを作成することを検討しています。私は個人的に Swing が好きではないので、Java を却下しました。現在、C# を検討しており、Mono を使用してクロスプラットフォームにすることを考えています。しかし、Ruby のような新しく登場したクロスプラットフォーム言語が適切な GUI 開発環境を提供してくれるかどうか疑問に思っています。
13 に答える
短い答え:いいえ(クロスプラットフォームと言ったため)。
長い答え:クロスプラットフォームの GUI は昔からの問題です。Qt、GTK、wxWindows、Java AWT、Java Swing、XUL -- それらはすべて同じ問題に悩まされています。結果として得られる GUI は、すべてのプラットフォームでネイティブに見えるわけではありません。さらに悪いことに、すべてのプラットフォームでルックアンドフィールがわずかに異なるため、すべてのプラットフォームでネイティブに見えるツールキットを何らかの方法で入手できたとしても、各プラットフォームでネイティブに感じるように何らかの方法でアプリをコーディングする必要があります。
最終的には、開発の労力を最小限に抑えて、各プラットフォームで適切でないルック アンド フィールの GUI を使用するか、それともユーザー エクスペリエンスを最大化するかを決定します。2 番目のオプションを選択した場合は、プラットフォームごとに共通のバックエンドとカスタム UI を開発する必要があります。
ruby は、一般的なバックエンドにとって悪い選択ではありません。
Ruby にはShoesがありますが、それは少し軽量かもしれません。
Linux で GTK ツールキットを使用できるようにするRuby/GTKが用意されています。Windows と Mac Os (Gimp、Gaim など) で動作するはずだと思います。
フランスの雑誌に、 Ruby/GTK に関する優れた初心者向けの記事が掲載されました。
編集 : SourceForge プロジェクトのメイン ページによると、Ruby-Gnome2 (別名 Ruby/GTK) はクロスプラットフォーム (Windows、Linux、Mac Os) です。
Ruby では、成熟したクロスプラットフォーム UI ツールキットである Tk を使用できます。これは、Python および Tcl 用の事実上の GUI ツールキットであり、Perl でも使用できます。Tk の最新バージョンはネイティブ ウィジェットを利用しており、Tk が時代遅れに見えるという主な懸念に対処しています。
Ruby と Tcl の両方でコード化された例を含む、Tk に特化した言語中立の Web サイトはhttp://www.tkdocs.com/です。
Ruby GUI 2008 の調査結果とディスカッションをご覧ください。あなたは知りたいと思うでしょう。
wxperl プログラマーとして、wxruby も存在することを知っています。Wx は非常に高速で、真のクロスプラットフォームのルック アンド フィールを備えています。
Ruby/GNOME2 はかなりうまく機能します。Glade を使用してウィンドウ要素をドラッグ アンド ドロップし、Ruby アプリから UI にロードできます。
Ruby についてはよくわかりませんが、Mono/C# について言及されました。最近、Mono と GTK# をかなり使用しており、非常に感銘を受けています。かなり安定しているようで、クロスプラットフォームの移植性は素晴らしいです。
Mac に挑戦したことがあるなら、 RubyCocoaを調べてください。明らかに OSX 専用ですが、Mac で GUI 開発をしようとして頭を悩ませている人をたくさん見てきました。Ruby が好きなら、RubyCocoa はとても楽しいものです。
クロスプラットフォームの GUI 開発のために Qt を強く支持します。それは素晴らしく、API は非常に直感的です。GUI のルック アンド フィールは、基になる OS によって提供される GUI コントロールを使用するため、Qt とほぼネイティブです。
C++ との基本的なインターフェイスは使用できますが、他の言語バインディングも利用できます。Ruby の場合、RubyQt が利用可能です。残念ながら、それは非常に未熟です。
visualrubyを見ることをお勧めします。ruby を使って GUI を作成するための IDE です。グラフィック ツールキットとして GTK を使用しており、アプリはどのプラットフォームでも見栄えがします。スクリーンショット ページで、Win7、WinXP、Ubuntu、および Mac のスクリーンショットを確認できます。
http://visualruby.net/site/Screen%20Shots.html
さまざまなプラットフォームに visualruby をインストールし、サンプル プログラムを実行することで、すべてのプラットフォームで簡単に試すことができます。
チェックされた回答は、visualruby がリリースされる前に書かれました。
SWT on Java を見たことがありますか? ネイティブ ウィジェットを使用し、Swing よりも優れたインターフェイスを簡単に取得できます。