はじめに
今回から、Ruby on Railsを使ってCurlのリッチクライアントアプリケーションを効率的に開発する連載を書かせて頂きます、吉田裕美です。よろしくお願いいたします。
Ruby on Rails という言葉を聞いたことのある方は多いと思いますが、実際に Ruby on Railsでアプリケーションを開発されている方はまだ少ないと思います。しかし、既に国内でもレシピ検索サイト「クックパッド」や 口コミグルメサイト「食べログ」といった大規模なサービスがRuby on Railsで構築されるなど、徐々に事例もでてきています。
著者も、いくつかのWebアプリをRuby on Railsで構築してきました。Ruby on Railsなら、「プロトタイプを作ってお客さまとディスカッションし、またプロトタイプを変更して…」という作業を繰り返すやり方であっても、高い生産性のおかげで苦になりません。お客様の望むシステムを短期間で構築できる点が素晴らしいと実感しています。
Ruby について
ご存知の方も多いと思いますが、Rubyは日本人のプログラマーまつもとゆきひろ氏を中心に開発されたオープンソースのプログラミング言語です。今では世界中で使われています。
Rubyは、C言語やJava言語と違いコンパイルする必要がなく、手軽に使えるスクリプト言語です。一方でJavaと同じくオブジェクト指向言語で、大規模なプログラムの構築にも耐えられるようになっています。また、動的な特性や高位関数なども持っていて、生産性の高いプログラミングを可能にしています。
Ruby on Rails について
Ruby on Railsは、Rubyで作られたWebアプリケーション用フレームワークで、David Heinemeier Hansson氏を中心に開発されています。当初は37signalsというベンチャー企業のサービスを作るためのフレームワークとして作られましたが、その後オープンソースとして公開され、その生産性の高さから注目されるようになりました。
Ruby on Railsは、ある日突然現れたまったく新しいWebアプリケーション用フレームワークという印象を持っている方も多いかもしれませんが、実はそうではありません。Ruby on Railsはオブジェクト指向開発およびその周辺から出てきたデザインパターン、DRY原則、CoC原則、テスト駆動開発などのベストプラクティスを忠実に実現しています。また、Ruby言語の特性を活かした DSL(ドメイン固有言語)によるメタプログラミングや動的オブジェクト指向などにより高い生産性を生み出しています。
さらに、AjaxやRESTなど新しい技術も旺盛に取り入れながら早い速度で進歩しているのも技術者を引きつける魅力だと思います。
Curlについて
Curl は米国マサチューセッツ工科大学(MIT)で開発されたリッチクライアント用の言語です。中カッコで括られLispに似た表現のオブジェクト指向プログラミング言語で、HTMLのようなマークアップ機能も取り込まれているため、Curl だけで高機能なリッチクライアントアプリケーションを記述できます。また多数のGUIコンポーネントがあり、日本でも業務系アプリを中心に使われています。
Curlを使ったことの無い方は、カール社の初心者の為のCurl入門講座や特設ページCurl Step Jump内の記事を試されると良いと思います。
この連載では、フロント側をCurl、サーバー側にRuby on Rails を使う事で、より生産性の高いリッチクライアントアプリケーション開発を実現する方法について書いていきたいと思います。