GUI アプリの一般的な作り方ですが、画面はコードで書いたり、 XML で書いてそれから生成したりします。ただ、実際には** GUI ビルダー**と呼ばれるツールを使ってボタンやテキストボックスなどの部品をレイアウトすることが多いです。 Visual Studio や Eclipse などの IDE がその機能を持つこともあります。
GUI の動作は基本的にイベント駆動で、呼び方はいろいろですが、イベント-コールバックという仕組みです。例えばボタンの"クリック"のイベントにコールバック関数を対応付けておくと、ボタンがクリックされた時にその関数が実行されます。その関数にいろいろなアプリの処理を書いておきます。
web アプリにある GET, POST のようなデータのやり取りは GUI アプリにはありません。
各部品がオブジェクトになっているのが一般的で、テキストボックスなどの内容をメソッドで直接取得することができます。
ただ、簡単にアクセスができすぎるため、モジュール性を上げる目的であえてやり取りを制限するといったことはあります。
web アプリのイメージで言えば、画面のレイアウトが html で、これを GUI ビルダーを使って作り、残りの部分は全て JavaScript で作るようなものです。ただ、 JavaScript と違い、 html に埋め込むのではなく、別ファイルで作りますし、直接ファイルや DB にアクセスもできます。
web アプリは簡単だけど、 GUI アプリは難しそうというのはただの慣れの問題だと思います。
私などは GUI アプリをメインでやっているので、 web アプリの GUI ビルダーの無いところや GET, POST のようなデータのやり取りは面倒だと感じてしまいます。
「Ruby が GUI 向きか」というご質問に関しては作りたいものによります。
GUI アプリは基本はコンパイル型の言語で作成します。 Windows では C#、 Unix 系では C, C++ などが主流です。クロスプラットホームのために Java が使われることもあります。 Mac は使ったこと無いのですが、 Objective-C で、最近では Swift らしいです。
Ruby でも GUI は作れますが、それらのものを頑張って使えるようにしたという感じです。本格的な GUI アプリを作りたいのであれば、それらの言語を使った方がいいと思います。
ただ、 凝ったものでなければ Ruby で作った方が簡単です。
Ruby で使える GUI はいろいろありますが、 お勧めは jruby + JavaFX です。
jruby は Ruby の Java 実装で、 JavaFX は Java の新しい GUI キットです。JavaFX にイマイチなところはありますが、Java の VM という仕組みによって Ruby でも Java と遜色なく作ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。