以前にもあった、Googleで「"i love x" programming」と「"i hate x" programming」とを検索して、 LOVE/HATE比を出す、というお話。ここで「x」にはRuby, Java, Pythonなどが入る。
| Language | Love | Hate | Ratio |
| Ruby | 1,450 | 13 | 111.54 |
| Python | 1,330 | 46 | 28.91 |
| Smalltalk | 57 | 3 | 19.00 |
| Perl | 1,720 | 426 | 4.04 |
| Lisp | 185 | 77 | 2.40 |
| Java | 2,680 | 1,350 | 1.99 |
| C | 872 | 506 | 1.72 |
なんと、Rubyはダントツの一位。ま、しょせんお遊びだけど、それでも嬉しい。
宅急便で献本が届いた。『恋するプログラム〜Rubyでつくる人工無脳』。
著者の秋山さんからは正月にメールをいただいていて「献本したい」とのことであった。 ようやっと完成したということだ。まだ読み込んでいないが、なかなか良いテーマで書かれた本だと思う。
が、しかし、編集の方から連絡があって 「秋山さんは2月18日に亡くなられました」とのことだった。著者紹介の欄にもそう書いてある。 36歳、クモ膜下出血だったそうだ。 まだ若いのに。自分とほぼ同世代でまだまだ若い人(しかもRubyユーザ)が亡くなるのを聞くのは切ない。
また、先日の尼崎の列車脱線事故の被害者の中に石井 勝さんがいらっしゃったのだそうだ。彼とも直接面識はないが、彼を通じてRubyを知ったという人も多かったようだ。 彼もまた同世代(37歳)であった。
彼らの魂よ安かれと祈る。
「動的言語ってばけっこういいじゃん」ってお話。
Javaのような厳格な言語を自在に使いこなして大規模な企業システムをバリバリと作っている技術者の中にも,スクリプト言語ファンは多い。彼らを惹きつけるものは,いったい何なのか。
Rubyを愛するそんな技術者のお一人に,この疑問をストレートにぶつけてみた。その方いわく「とにかく楽なんだよなあ,Rubyでプログラミングするのは。なんでだろう。よく分かんないなあ」。
この言葉を聞いてはっとした。この一言に,スクリプト言語が持つ魅力が凝縮されているように感じたのだ。言葉にできない何か,感覚的な「楽」さ。それこそが,スクリプト言語人気の根底にあるパワーなのではないか。
パワーなんです。
八木さんからは先日の「日経バイト」の特集のためにメールでインタビューを受けていて(ちゃんと献本していただいた、感謝)、その内容がここでも再利用されている。 あ、そのインタビューの中では動的言語のデメリット(型がないから実行してみないと分からないとか、プログラムを見ただけでは何を渡してよいか分からないとか)についても触れていた。記事には使われなかったけど。
まあ、こういうところで紹介されるというのは動的言語がメインストリームに近づいてきたということなのだろうか。10年時代を先行していたということか。そんなこと言ったらLispなんか40年時代を先行しているわけだけど。
あまり登録した記憶がないメールマガジンが送られてきた。 忘れているだけできっとどこかでアドレスを渡したのだろう。
しかし、妙な記述が。
このメールマガジンは、日○○○○主催または協賛の展示会やセミナーに
(Webセミナーを含む)にお申し込み・参加された際に、情報提供について
ご了解いただいた皆様にお届けしています。
このメールはプロポーショナル「固定ピッチ」でご覧ください。
えーと、つまり要するにフォントはなにを使えと。 「プロポーショナル」で「固定ピッチ」などと自己矛盾するフォントは持ってないっす。
This work is licensed under a Creative Commons License.
すばらしー。<br>Perlのhateが思ったより少ない、、、手のかかる子ほどかわいいってやつかな。
すごいですねー.Javaへのhateは.<br>loveだけ考えるとトップなはずなのに...
PHPでやってみたら<br><br>Love Hate Ratio<br>4,060 1,450 2.80<br><br>となりました。PerlとLispの間かぁ。
Objective-Cだと<br>love:20 hate:2 ratio 10.00<br>わずか20件ですか...
日本語でやってみたらまたちょっと違った結果が出ました。<br>http://www.mikihoshi.com/d/2005-04-27.html#200504271642330
"thirty-seven reasons i love ruby" programming : 704 件<br>が貢献大ですね。
動的言語と動的型付け言語って同じものなんでしょうか。<br>個人的には動的でかつ静的型付け言語なんてあるといいなーと思ってるんですが。
どうなんでしょう。<br>ただ、「型付けは動的だが他の動的要素が少ない言語」は想像できますが、「静的型付けだが動的な言語」はあんまり想像しにくいですね。型推論を使ってもやっぱり静的型は静的になってしまいそうです。<br><br>想像力が貧困なだけかも。
動的言語の定義って決まってたんでしたっけ?<br>個人的な感覚としてはコンパイルが必要なくて、evalできる言語ぐらいの感じだったんですが
人によって定義は違うでしょうが、私は<br><br> * 動的な型<br> * リフレクション機能<br><br>などを考えています。「コンパイルが要らない」はあんまり関係ないんじゃないでしょうか。Rubyだって内部ではコンパイルしてますし。
Javaは静的な型だけどかなり動的な気がします。(←なんちゅういい加減な言い方だ。)実行時にクラス作ってロードしたりアンロードしたり。リフレクションもあるし。<br><br>昔からの個人的な疑問:静的な型の言語で、すべての変数をObject型(とか、いちばん根元の型)と宣言するのと、動的な型の言語は、本質的にどう違うのか。記述の冗長さ以外に。<br><br>自分ではあまりよく判らない。
Javaみたいにすべてのクラスのルートになるクラスがある言語では冗長さ以外には違いはないんじゃないでしょうか。もっとも言語において記述の冗長さはわりと本質ではないかという気もしますが。
あ、でも静的言語では普通その型のクラスが持っているメソッドしか呼べないではありませんか。うっかりしてました。それだと本質的にまずいですね。<br>とはいえ、Objectクラス以外のメソッドも呼べちゃうと今度は静的型の重要なメリットを失うわけで。
たしかVBだとvariant型なんてものがあってどんなメソッドも呼べたような気が?<br>大昔にちょこっといじっただけなので忘れてしまいましたが。<br>ただ自分はそれが便利だとも思わないし、使ってませんでしたが。
存在するオブジェクトのshapeを変えられる、というあたりは、「楽」とか「パワー」とかの重要な要素ではないかと思ってはいます。