トップ «前の日記(2010-05-25) 最新 次の日記(2010-05-27)» 編集

日々の破片

著作一覧

2010-05-26

_ 達人たちはおもしろいープログラミング Ruby 1.9

オーム社から達人と情熱プログラマのRuby本が送られて来た(ありがとうございます)ので早速ざっと眺めた。

で、ほーと思わず感心したのが次の一節(いや、本当はまず表紙にびっくりしたんだけど。RubyはRubyでも成長する(悪く言えば放っておくと爛熟して落ちてしまうわけだが)Rubyというか、なんというか下のほうに獣がうろうろしていると見るか、これこそ生産の現場であると見るか。しかもパノラマだし)。

プログラミング言語に関する書籍はどれも大体似たような構成になっています。基本型(整数、文字列など)に関する章から始まり、(中略)筆者らは、こうした構成にあきあきしていました。

そこで、筆者らは本書の構成を考えるときに壮大な計画を立てていました(当時は若かった)。トップダウン方式でRubyという言語を解説しようと思ったのです。つまり、いきなりクラスとオブジェクトから入り、構文の詳細は後回しにするやり方です。当時は、それが良い考えのように思えました。Rubyではすべてがオブジェクトですから、まずはオブジェクトから入るというのは筋が通っていました。

少なくとも我々はそう思っていました。

しかし、残念ながら、そのような方法で1つの言語を説明するのは難しいことがわかりました。(中略)

そこで我々は別の壮大な計画を思いつきました(だてに実用主義者(pragmatic)と呼ばれているわけではないのですよ)。(後略)

第2章 Ruby.new P.13

いや、なんかすげぇものを期待したおれが非現実主義者だったということなのだが、どれだけ壮大なことをしでかしてくれるのか期待し過ぎてしまったよ。

次に、Fiberのあたり(12章)を読む。すると

ファイバを使うと、次のようにシンプルなコードになります。

という例が出てくる。これが最初見たときは、苦し紛れにいい加減なことを書いたな、と思う例なのだが、よくよく見てみると結構含蓄があることがわかり、ページをめくると無限リストを扱うための遅延評価用に利用する例が出てきて納得したり。というか、確かにそういう利用方法があるのかと良くわかった。だから継続の代替にならないかというような話も出てくるのだな。

あと、MiniTestとTest::Unitの経緯とか相違とかが出ていて(13章。比較的早い時点でユニットテストについて出てくるところは達人本らしい)、これは結構良い点だと思う。ruby-talkを読めば出てくるのかも知れないが外から眺めていると何が起きていてどうなったのかまったくわからなかったからだ。

プログラミングRuby 1.9 −言語編−(Dave Thomas)

どうでも良いけどサンプルジュークボックスの中の曲のうち、これはすぐにわかるどころか口笛で吹けるが、それ以外はまったく知らないなぁ。

スルー・ザ・パスト・ダークリー(ビッグ・ヒッツVol.2)(紙ジャケット仕様)(ザ・ローリング・ストーンズ)

でもPerlはわかった。妙なものを引っ張り出したものだ。

A String of Pearls(Pearls)


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え