«前の日記(2006年10月02日) 最新 次の日記(2006年10月04日)» 編集

Matzにっき


2006年10月03日 [長年日記]

_ インタビュー

大新聞社のインタビューを受ける。なんか取材なんて滅多に受けないのに ある時には重なるものだ。

OSSについて正直なところを話す。 が、あまりにも普通なので記者の人はちょっと不満げに見えた。 もしかしてなにか期待していらっしゃったことに応えられなかったかしら。

_ [OSS] OSS コンサル会社が設立

元ミラクルの小田切さんが会社をはじめたという話。

昨日の日経コンピュータとの取材で、自分でOSSをハックするわけにはいかない 情報システム部は「OSSを使ってなんとかできる」人たちをつかまえる必要がある(ソフトウェアはどんどんコモディティ化するから)とかいう話をして、 それの受け皿となるOSSサポート企業というのはこれからニーズの高まる分野で ビジネスチャンスがあるのではないか、という話をしたのだが、 この「オープンソース・ソリューション・テクノロジ」はそれに対応するものになる、のかもしれない。

_ [Ruby] Rubyの生産性の高さはどこまで本当か?

最近、Webで公開されたYuguiさんの記事「Rubyを仕事に使うべし!」に対して、それじゃ「使うべし」をちゃんと説明したことにならんだろう、という反応。

いや、まあ、その批判は当たっていないこともない。私自身は「Rubyを仕事に使うべし」とは必ずしも思ってなかったりするんだけど。

が、(たぶんワザとだと思うんだけど)この批判そのものが「なにができるか」ということを ベースに論が構成されている。が、正直な話、言語の比較で「なにができるか」を 比べるのは不毛なんだよね。だって、大抵のことは大抵の言語で「可能」なんだもの。

最初にはっきりさせておかなければならないのは、 仕事で使う言語(というかツール)を選択する時に、 「その言語になにができるか」という基準で選ばれることはマレである。

重要なのは、教科書があるかとか、プログラマが確保できるかとか、 必要なライブラリが入手できるかとか、IDEがあるかとか、 その言語を気に入ってる上司がいるかとか、 話題になっているかとか、そんなことであって、 ある言語がどのような機能をもっているかではない。

そういう意味では「Rubyを仕事に使うべし!」というタイトルの記事は、

  • Rails話題になってますよ
  • ライブラリも最近充実してきてます
  • RubyGemsも結構便利だし
  • IDEも揃ってきてます
  • 某最高学府の教育課程ではRubyが採用されました

とかいう話題を中心にした方が効果的だったと思う。

それはそれとして、「どこまで本当か」というエントリの方は 些細な文法の違いから来る記述力を無視しすぎだと思う。

Rubyなんかよりも、もっとずっと本格的なメタプログラミングのできるCLOSとかで書くべきでしょう。

とか

この程度のわずかなシンタックスシュガーで、それほど生産性に大きな違いがでるのでしょうか?

とはいえ、おそらく「計測できる生産性」での差は出ないだろうと思う。 しかし、「計測できない生産性」では大きな違いが出るのではないだろうか。 気分とか。

そして、(たぶん不幸なことに)ほとんどの場合生産性は計測不能なのだ。

ま、それもこれも仕事に使える言語を自分で選べて初めて言えることなのだが。

追記

このエントリについて、fromdusktildawnさんから批判されちゃいました。 「ありもしない錯誤をでっちあげて批判している」のだそうです。

そう指摘されてあらためて引用部を見返すと、確かに

RubyとCLOSでは、シンタックスの違いに起因する生産性の差なんて、少ししかないよ。

と読めるように引用してますね、私。これは私の落ち度です。 原文へのリンクが あるので前後はそちらで読んでいただけるだろうという甘えがありました。

引用の仕方がまずかったことについては謝罪します。

実際には、二つの引用部は独立して引用したつもりで、前者は

(書き込み系)メタプログラミングしたいならRubyよりもCLOSだよ

後者は

RubyとC#では、シンタックスの違いに起因する生産性の差なんて、少ししかないよ。

という主張が読み取れると言いたかったのでした。

で、その主張に対して

  • Rubyのように手軽に書き込み系メタプログラミングができることで(普通のソフトウェア開発でも)広がる世界があるよ。
  • RubyとC#でのシンタックスの違いに起因する(おそらくは計測できない)違いは大きいと思うよ

ということが言いたかったわけですね。要するに「Rubyは間口になれる」と。

間口をくぐった後は、Rubyにとどまるもよし、SchemeやCLOSに進むもよし、 あるいはHaskellのような関数型に進むもよし。 それはユーザの自由でしょう。

間口になるためにはCLOSやSmalltalkは本格的すぎ(多くのプログラマにとって日常とのギャップが大きすぎる)、PHPでは「上」とのつながりが薄すぎて「面白くない」。これがRubyが「ウケる」理由なんじゃないかと(Perlも確かに「上」とつながっているんだけど、そこはそれ。ねぇ)。「今そこにあること」という弾さんと同じような結論になっちゃいましたね。たぶん、PythonもRubyと似たようなポジションにあるのだと思います。

_ [Ruby] block parameter to be local variables

思い立って、とうとうブロックパラメータについて

  • ローカル変数のみ許す
  • スコープはブロックローカル

という修正を実現した。ずいぶん悩んでいたわりには 実際に手を動かしたら30分で実現できるというのはどうよ。

他の悩んでいることについてもそうなのかなあ。

_ ジョブズ氏のいないアップルが来る日--IT企業が直面する「後継者選び」

いずれ世代は交代する。企業でも家族でも。 それについてどれだけ備えることができるか。

時として、非常に長い(数十年とか数百年とか)スパンの視点に立つ必要があるのかもしれない。 ま、聖書とか見てると数百年が一行で過ぎたりして、新鮮な気持ちを味わうことがある。


«前の日記(2006年10月02日) 最新 次の日記(2006年10月04日)» 編集