勉強からはじめ10日間ぐらいでひとつのRubyアプリケーションをつくった。
キャッチコピー道場 CatchCopyHacks
ドリコムの運営さんにDBのキャラをLatin1からutf8に変えてもらってようやく日本語が動くようになったので一応公開。
これをつくるまでの詳細な過程は[Ruby]のタグをひいてみてほしい。
http://anond.hatelabo.jp/c/Ruby
RonRに触ってみて思ったことをいくつか書いておきます。
0から作る分には正直それほど生産性は高くないと思う。
ただ、既存プロジェクトの焼き直しやプラグインを活用できるようなケースに限って言えばほぼ設定変更だけで対応できる。10分でつくる***みたいなものは既存のものをナゾルというバッチスクリプティングというような作業。(プログラミングという所作からは遠いかもしれない。)
Ruby on RailsはDRY:繰り返さないことを標榜しているがあれはウソだと思う。
プラグインなどをオーバーライドさせて再帰的に繰り返していくことこそがこの言語の特性だとおもう。
過去のプロジェクトなどの繰り返し。これこそがRailsの本領ではないのだろうか。
プラグインを自作してストックできる体制ができあがったら物凄く生産性をあげることができる。
敷いたレールのうえを突っ走らせるのはものすごく簡単だ。
だが、レールに分岐をつくったり、既存のレールから少しでも外れたことをやろうとすると他の言語よりも苦労をする。
とくにO/Rマッピングは設計から頭を悩ませることになる。
逆にO/Rで何ができるんだという発想から辿らないと設計できなかった。
もし既存のシステムからのリプレイスであったら困難を極めるだろう。
システム会社がRonRを生産性が高いだの、国産だのとの流行で取り入れて、
リプレース案件を請け負ってデスマーチに陥る姿がありありと目にうかんだ。
find_by_sqlを連発せざるをえないシステム。少し想像するだけで怖い。
RailsのMVCは賞賛にあたいすべきものであるが、もしRonRをチームで取り組んだときには担当分担は非常に頭を悩ませることになると思う。Vの部分は分業容易だが、特にCの部分は設計が担当できるレベルのPGが必要になる。
コンシューマ向けサービスのように自らの要件と仕様が近いようであれば回避できるかもしれないが、
客先都合で変更が入った場合RonRのその特性が仇になる可能性が高い。
チームに目的地まできちんとレールをひける人が居ないと間違いなく地獄に落ちる。
その目的地に案内することを客先にきちんとコミットできる人が居ないと間違いなく地獄に落ちる。
まだ1、2年ぐらいはないなという思いを強くした。
コンシューマー向けのサービスをRonRで展開することはできても、人月仕事をRonRでやるにはまだ無謀すぎる。
現状では、やれたとしても単票、マスメン系が限界だ。10人を超える案件にはまだ向かないとおもう。
言語としての難易度は他とそれほどかわらないが、方言というレベルでは収まらないので、
3、4年生レベルのイキのよさそうなところに勉強会にでてもらうとかアンテナ立てておいてもらうより無いのではないか。お金になるのはもういっぽ先だ。