MacRubyは、ネイティブの Apple Objective C スタックを使用します。
長所: そのクラス ライブラリは基本的に、Objective C GUI クラスのラッパーです。高速なネイティブ アプリケーションを取得できます。
短所: Mac でのみ実行されます。それらは iPad や iPhone にも移植できません (Ruby ソリューションは移植できません)。
IronRubyはネイティブの Windows .NET フレームワークを使用します。
長所: ネイティブの WinForms を使用して、リッチなネイティブ アプリケーションを作成します。ライブラリの完全な .NET エコシステムにアクセスできます。
短所: Windows でのみ実行されます。
JRubyは Java 抽象化レイヤー (JVM) を使用します。
長所: 複数の GUI ライブラリが利用可能です。最も一般的なものは SWT と Swing です。SWT はネイティブ ウィジェットを使用し、より高速でネイティブに似ています。Swing は純粋に Java (エミュレートされたウィジェット) であり、より移植性があります。SWT と Swing を抽象化して、より Ruby に適したものにするライブラリが他にもあります。たとえば、スイングのProfligacyを見てください。
短所:レイヤーの上のレイヤーの上のレイヤー。Swing と SWT は非常に成熟していますが、その上の Ruby レイヤーはそれほど成熟していません。
Qt ライブラリを使用した別のオプション
Rubyもあります。
Qt はクロス プラットフォームであり、ネイティブ ウィジェットを使用し、C++ で記述されています。かなり高速ですが、ライブラリは複雑で大きいです。
私の経験則では、GUI が複雑になればなるほど、ネイティブ プラットフォームに近づける必要があります。これらの各グラフィカル ライブラリの学習曲線と、プラットフォーム間での移植に必要な労力も評価する必要があります。