cypher256's blog

Pleiades とか作った

RubyでCOBOL技術者は復活する

Rubyの生産性について,吉岡氏は「COBOLやC/Sシステムとほぼ同じだった」とする。

[OSC島根]「RubyでCOBOL技術者は復活する」---松江市の基幹システム開発で得られた実感 | 日経 xTECH(クロステック)

えー!?

50代の元COBOL技術者であるSE2人も参加している。

危ない危ない。生産性が同じなのは設計の話ですね。一見、COBOL 技術者がコードをガリガリ書いて生産性が同じだという記事に見えました。設計なら、最近の良くも悪くも OO 設計を放棄した Rails 型のフレームワークなら、Java でも PHP でも Perl でも同じような気がします。また Rails 使いの方々が上級者向きだと言ってるのをよく耳にします。Ruby on Rails を知らない COBOL 技術者が、この記事を間違って認識して製造に入れば地獄を見る気が。


ところで、Rails が上級者向きっていうのを Rails 使いの方々がよく言ってますが、普及促進に関しては致命的になります。作者の DHH さんは決して、上級者向けとか言ってないと思うのですがどうしょう? フレームワーク作者は誰でも使える、初心者でも簡単に使えるようにしたい、と。元々出来る人の生産性を高めるためにフレームワークを作ってるわけではないと思います。上級者向けだと思ってる方が多いということは、作者の意図と使う側の認識ずれが大きいのかもしれません。

Java でも比較的先進的な考えを持つフレームワークがたくさんあります。そして、先進的なフレームワークは作者でさえ、流行っている、たくさん利用されていると錯覚する場合があります。利用者となるプロジェクトには大抵、新しいことが好きな先進的な人がいて、アーキテクチャを決めてしまいます。そういう人はよくネットなどで情報を発信します。また先進的であれば、記事や書籍でこぞって取り上げられ(もちろん中の人の努力もあります)、流行ってるように見えてしまいます。実際には出来れば新しいことには手をつけたくない人のほうが圧倒的に多いにもかかわらず。

そこでデファクト化するにはキャズムを埋めるような考慮が必要になると思うのですが、これは明らかに相反するものです。「先進的な機能や用語が満載」かつ「機能が枯れていて小難しい用語がない」ものがデファクトになり得る。ところで DI コンテナ上で動く SAStruts の機能リファレンスには「DI コンテナ」や「インジェクション」という用語が登場しませんね。ここまで意識して書くのは大変だったんではないでしょうか。