5/26、プログラミングRuby 1.9

投稿者 akira 2010-05-24 00:38:00 GMT

書籍プログラミングRubyの最新版が間もなく発売。みんなで読もう。今度は1.9ですよ。プログラミングRuby 1.9

レビューのお手伝いをした関係で少しだけ早く入手できた。1.9ということで、1.9系ならではというところに興味が向かうのだが、レビュー優先であるからして、他のレビュー参加者が担当しそうなところを後まわし、自分がレビューできそうなところを先に、読み進めた。その結果、レビュー期間中には文字の扱いを含む入出力まわりや文法表現の変化をはじめとする「1.9ならでは」のかなりの部分を読み残してしまった。まずはそこからひろっていこうと思っている。(が、積み本が……。)

「プログラミング言語Ruby」を読まなくてもよいのは誰か

投稿者 akira 2009-01-29 11:36:00 GMT

一昨日になってようやく入手できたプログラミング言語 Rubyプログラミング言語Ruby[rakuten]を、Ruby 1.9.1RC2とそのNEWSファイルを手元に置きながら読んだ。

少々乱暴な言い方になるかもしれないが、この本は以下のような人には用のないものだと思う。

  • Ruby 1.9.xもRuby 1.8.xも十分に理解できている
  • Ruby 1.9.xをしばらくは使うつもりがなく、自分が使う範囲においてRuby 1.8.xに不明なところはない
  • Rubyの経験がなく、その他のオブジェクト指向言語の経験および知識もない
  • プログラミング経験がなく、これからプログラミングの学習を始める

この本はRubyそのもののかなり詳しい解説書である。入門書ではない。一応は簡単なところから入る形になっているのだが、大部分はすでにRubyを使っていて、ちょっとしたことなら困らない程度の知識があることを前提としている。つまり、Rubyをより深く知るための解説がある。プログラミング自体の入門者は別の本(おそらく初めてのRuby[rakuten]やたのしいRuby[rakuten]など)が適切だろう。プログラミングの経験はあるが、Rubyやその他のオブジェクト指向言語に馴染みがないという人は、チュートリアルなどをこなしてからにしたほうがよさそうだ(これに当たる人には「用のない」とまでは言えない)。

全体的にはRuby 1.8系をベースにしていると思われるが、Ruby 1.9.1での状況についてもそれなりのスペースを当てている。私は1.9.1での新しい機能や1.8系との非互換に特に注目して読み進めたのだが、たとえば多言語化関係のような大きなトピックにはそれなりのスペースがあてられている。込み入ったところではどうかは分からないが、多言語化の仕様・実装の推移をほとんど追いかけていなかった(追いかけられなかった)私でも、その基本的な使い方や注意点がわかるのに十分な記述はある。細いところでも、メソッドの追加や削除についての補足があり、場合によっては新しい機能(たとえば->(){}やノンブロッキングIOなど)の詳しい使い方が示されてもいる。

参考までにRuby 1.9.1RC2のNEWSファイルとの対応状況をごく簡単にまとめてみたところ、少なくとも六割くらいはカバーされていることが分かった。NEWSファイルの記述は粒度がまちまちだということもあって、実のところ、読んでみた印象よりもこれは低い数値だった。とはいえ、前述した通り大きなトピックについては十分にカバーされている。

Ruby 1.8系から変化のない部分についても(もちろん)詳しい説明がある。思いもよらぬ機能や動作があることをこの本によって知ることができた。たとえばこんなことである。

  • f(3+2)+1f (3+2)+1の違い
  • p {1=>2}p 1=>2で正しいのは?
  • to_sto_strの違い
  • initialize_copyの機能とdupclone
  • and&&の使い分け方
  • ensure節の中でreturnすると例外が消える
  • Ruby 1.9.1のRange#include?の遅さ
  • Ruby 1.9.1のスレッド実装では複数スレッドが同時に実行されることはない

これらは、このような細いところまで説明しているという単なる例だ。一方で、HashやNumericなどと馴染むような標準的なクラスの作り方(7.1節)に十分なページ(20ページ)があてられてもいる。そうかと思えば「関数プログラミング」と題して10ページほどの解説を展開したりする(6.8節)。

そのようなわけで、Ruby 1.9.1をこれから始めようというのならおすすめだし、Ruby 1.9.1を使わないにしてもRuby 1.8.xで不明な点があるなら(そして他の書籍などが手元にないなら)やはりおすすめできる。結局のところ、多くのRubyユーザにとって読んでみて損のない本だと思う。ただし、何かの作業のための実用的な(というのは外部コマンドを起動したり、特定の形式のデータ処理をするような、実務的な)プログラミングのためのヒントは限られたものしかないため、そのような意味での情報を求めている人は別の書籍なりなんなりと比較してみたほうが良いだろう。

プログラミングRuby第二版

投稿者 akira 2006-08-19 15:00:00 GMT

プログラミングRuby 第2版 言語編プログラミングRuby第二版言語編[rakuten]とプログラミングRuby 第2版 ライブラリ編同ライブラリ編[rakuten]を一足早くいただいた。

レビュー協力者の一人として参加させていただいたのでひととおりは読んだが、30ページからなる索引を実際に見るとこれはなかなかのもの。なお、もともと一冊だったのを二冊に分けている関係で索引はどちらの本にも同じ内容が用意されている。そして、その本に含まれる内容についてのページ番号はゴシック体で、もう一方に含まれる内容についてのページ番号はイタリック体で、それぞれ表現している。

あわせてShip It! ソフトウェアプロジェクト 成功のための達人式ガイドブックShip It![rakuten]までいただいてしまった。ありがとうございます。

Rubyレシピブック268の技 2

投稿者 akira 2004-05-29 15:00:00 GMT

本屋に行ってみたがCode Readingはまだなかった。明日にならないとダメか。

でもRubyレシピブック 268の技Rubyレシピブック268の技はあった。パラパラとめくってみたところでは実用的でRubyをはじめたばかりの人なんかには便利そうだと思った。あと、丁寧に書いてある本だなあとも。

Ruby Wayとは雰囲気がちょっと違う感じがした。Ruby Wayのほうがヘンなことが書いてあるんじゃないかな、と。