COBOL技術者の憂鬱

COBOLプログラマは不在にしています

RailsからPHPへ

ここ最近の私は、新たなWebサービスの開発に向けた活動を始めています。


RetroTubeはRubyで作ったので、その流れから考えても次回作はRailsかなぁなどと思い、解説本を買ってきて日々写経に勤しんでいたわけですが、やはり私にはかなり難易度が高いというのが正直な感想です。
Railsの素晴らしい点は、なんとなく肌で感じ取ることはできるのですが、いざ自分なりに使いこなしていこうとすると、今の私には致命的に何かが足りないような気がするのです。
巷では、手足のようにRailsを使い倒している方が大勢いらっしゃいますが、どうすればあのようなことができるのか不思議でなりません。


Railsを使ってみて、まず最初に便利だなと思ったのは、DB定義を作成すると、それをいじる画面(と内部処理)が自動生成されることでした。開発者にとってやっかいな作業は、全部Rails側で引き受けてくれているような印象を持ちましたね。
さらに驚いたのが、DB定義を変更すると、画面(と内部処理)に変更内容が自動反映されるということです。プログラムのバージョン管理の仕組み(Subversionとか)と同様に、DB定義のバージョン管理の仕組み(migration)が用意されているというのも素晴らしい。メインフレームの世界で長年、私が妄想してきたことが、あっさりとこのフレームワークの中で実現されていることに、感動すら覚えました。新規開発から運用保守に至るまで、飛躍的に生産性が向上するような仕組みが用意されているんですよね、これって。


けれども便利になっている分、さまざまな制約というか「規約」ですね、そういうものがあって、必ずそれに従わなければならないのです。例えば「こういうやり方でDBにアクセスしましょう」という決まり事がいくつかあって、それに従う限りは、開発者全員が楽をできるような仕掛けになっているのです。
確かに、楽になるのはよいことなのですが、それによって隠蔽されてしまっている箇所が多く、実際に内部でどんな処理が行われているのか、具体的なイメージが掴みにくいように私には感じられるのです。
「こういうことがしたいんだけど、それってどこをどう触ればよいのか?」というのが、とっかかりの所からわからなくなってしまうんですよね。中途半端に出来上がっている料理に対して、途中から調理に参加させられているような気分になってくるのです。


で、ちょっと浮気心が出てきてしまった私は、PHPMySQLを触りだしてみて、こちらの方が自分にはしっくりくるなぁと感じています。
DBにアクセスする為のクラスを用意したり、実際にそこへSQL文を渡したりしていると、メインフレーム開発の現場でやっていたことと雰囲気がよく似ているので、不思議と落ち着いた心境になることができるのです。
他にも、処理速度が速い(RailsやCGIで動かすよりずっと負荷が軽くて済む)、公開も簡単にできる(そもそもRailsはどうやって公開するのかがよくわからない。やっぱり自宅サーバー立てたりとかになるのでしょうか?)など、色々とメリットはありそうです。


と、いうわけで、ここへきて、まさかの言語チェンジです。
まぁ、達人プログラマーを目指す私は、毎年新たな言語なり環境なりに触れていくのが目標なので、何も問題はないでしょう。Railsは来年以降の楽しみに取っておけばよいのです。