台風4号を避けるため、この週末は家に閉じこもって「Ruby on Rails」でプログラミングをしていました。「体重管理 Web サービス」を作るためには、今から PHP 言語を覚えるよりも、Ruby 言語と Ruby on Rails フレームワークを使った方が手っ取り早いのではないかと考えたのです。コマンドラインの使い方など戸惑うところも多々ありましたが、たった1日半で機能が充実した Web アプリケーションのサンプルを作り上げることができました。
まず、入門書「たのしい Ruby」を読みながら Ruby 言語のお勉強です。Mac OS X には最初から Ruby がインストールされているので、サンプルプログラムをすぐに動かして確認できます。「ある数が素数かどうか判定するプログラムを書け」「ある月のカレンダーを表示するプログラムを書け」などの課題もあり、ひさしぶりに頭をひねって、楽しくプログラミングできました。
そして次は、本命の「かんたん Ruby on Rails で Web アプリケーション開発」を開きます。Ruby on Rails というのは Web アプリケーションを作るための土台となるものです。開発がしやすく生産性が高いといわれており、「わずか 15 分でブログを作る」(Mac、英語解説)、「わずか 10 分でブックマークを作る」(Windows、日本語解説)
といったデモ動画も有名です。
しかし、ここからしばらく苦難の道が続きました。Ruby on Rails を動かすためには Unix のコマンド画面を使っていろいろなツールを導入しなくてはなりません。グラフィカルなインストーラに慣れてしまった身には、ソースファイルを自分でビルドするという作業はちんぷんかんぷんでした。
その後も、RubyGems で導入するツールのバージョン違いの問題や(本の通りインストールした後、gems update コマンドで最新版を導入し、さらに cleanup コマンドで古いバージョンを削除して解決)、rake コマンドでデータベースが作成できないというトラブル(rake environment RAILS_ENV=development db_setup のように、環境変数を明示して解決)にも見舞われ、なかなか大変でした。
また、プログラミングを楽に行うため、Rails のデモ動画などでは必ず使われている定番エディタ TextMate をインストールしました。日本語の表示や入力ができないという致命的な問題は CJK-Input プラグインと ForMateKonaVe フォントで解決しました。
そうした壁を乗り越えて、おそるおそる Ruby on Rails の上を走り出したわけですが、その開発と学習のスピードには驚きました。たった 1 日半で、メール通知を使ったユーザー登録・認証の仕組みを備え、日本語と英語リソースの両方に対応し、Yahoo! 検索の Web サービスと連携した、Ajax を使った画面描画や JavaScript による画面効果を組み込んだ、フォトアルバムのシステムが完成したのですから、まさに「急行列車」並みです。
Ruby on Rails のおかげで「Web プログラミングは HTML 言語とスクリプト言語と Java スクリプトがぐちゃぐちゃで手に負えない」というネガティブなイメージが吹き飛びました。モデル、コントローラ、ビューという仕組みも理解しやすく、新規に書くコードの量も少ないため、見通しがとてもいいのです。「体重管理 Web サービス」完成までの道のりが、ぐっとスムーズになった気がします。楽しい週末でした。