「プログラミング言語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ユーザにとって読んでみて損のない本だと思う。ただし、何かの作業のための実用的な(というのは外部コマンドを起動したり、特定の形式のデータ処理をするような、実務的な)プログラミングのためのヒントは限られたものしかないため、そのような意味での情報を求めている人は別の書籍なりなんなりと比較してみたほうが良いだろう。

売り切れてなかった

投稿者 akira 2008-10-21 15:00:00 GMT

以前、売り切れになっちゃったかしらと見ていた[入門] Debian パッケージ[入門] Debianパッケージだが、昨日尋ねられたので久しぶりに確認してみたところ、現在はまた購入できるようになっていた。

内容はこちらをどうぞ。

「プログラミングの力を生み出す本」入手

投稿者 akira 2008-09-16 15:00:00 GMT

こちらで入手困難と書かれていた橋本洋志・松永俊雄・冨永和人・石井千春 『プログラミングの力を生み出す本』ですが、池袋のジュンク堂さんに面陳になってました。すごい(いやまあ私が話したからだと思いますが)。でも確かに在庫ももうあんまりないみたいだそうで。

[思っているよりもずっとずっと人生は短い。より引用]

という情報を得てさっそくジュンク堂で注文したのが今日届いた。情報感謝です。

追記(2008-09-19): 注文したときはたしか在庫が一冊になっていたと思ったけど、今見たら四冊になっていた。

「プログラミングの力を生み出す本」入手困難

投稿者 akira 2008-09-05 15:00:00 GMT

高林くんのところで紹介されていたプログラミングの力を生み出す本―インテルCPUのGNUユーザへプログラミングの力を生み出す本に興味を持ったのだけど、すでに入手困難な状態だった。amazon.co.jpでは二倍になってるし。

Ruby Way第二版

投稿者 akira 2008-04-17 15:00:00 GMT

とある事情により、kmutoさん&トップスタジオさんからRuby Way 第2版 (Professional Ruby Series)Ruby Way第二版[rakuten](cbook24)の献本をいただいた。事情…… 率直に言うと、出版されているのを知ったときにはびっくりした。まあ、イロイロあるんだなって。

でも、それはそれ、これはこれ。以下、本の内容について。

最初の印象としては読者象を想像し難しいかなというところ。目次を見てピンとくる人はもちろん手にとってみても良いと思う。あとはいろいろなRuby表現を解説付きで学びたいといった要求にも応えられるのかな。そういってみると、入門書を終えた人や実用を始めたばかりの人なんかにおすすめできるのかもしれない。ちなみに本書の目次はSEshop.comでは見られないようなのだが、cbook24の商品ページで参照できる。

ちょっと気になるのは監訳注のバラつき。たとえば:

  • 「このコードはRuby 1.8.6および1.9.0で問題なく動作します」というような、意味のとりにくいものがある(では監注が付いていないコードはどうなのか、と気になる)
  • 「最近のバージョンでは」のような表現があるが、それは1.9.0-0のことなのか1.8.5とか1.8.6のことなのか
  • 本文から少し距離のある(原著者がいれるような内容の)ものがあったりする

もちろん理解を助けてくれる監訳注もあるので、もう少しだけ全体的なバランスがとれているとより読み易くなったのではないかなと思う。

ついでにいうと、このタイミングで1.9系の情報に手を出すのは難しいのではなかったか、とも思う。構成上、どうしても断片的になってしまって網羅性とれないので、それはRuby 1.9 Wayになのかというと、ちょっと違うのではないかな、と。この本の主旨はそういうところに置かれているわけなので、1.9.0-0と1.9.0-1と、さらにその後でけっこうな変化がある状況の中、あえて入れないことを選んでも良かったのではないかしら。

(ふとRuby Way 1の監訳注を読み返してみたりして。視点の違いがちょっと面白い。)

Xen徹底入門

投稿者 akira 2007-12-19 15:00:00 GMT

今日はXen徹底入門Xen徹底入門の発売日。ということでいそいそと書店に行ったのだ。しかし、未入荷で入手できなかったよ。

この種の本の入荷はなぜか遅くなりがちなのだが、都内以外ではこんなものなのだろうか。それとも横浜、あるいは有隣堂での特性なのだろうか。

追記(2007-12-25): 買ってきた。いつ読むか。

売り切れ?

投稿者 akira 2007-12-07 15:01:00 GMT

楽天ブックスで売り切れ?ふと見たら入門Debianパッケージが楽天ブックスで売り切れになっていた。

追記(2007-12-09): 本やタウンでも「ご注文いただけません」になっていた。

雑誌メモ: Software Design 2007/12号

投稿者 akira 2007-11-19 15:00:00 GMT

Software Design (ソフトウエア デザイン) 2007年 12月号 [雑誌]Software Design 2007/12号はなかなか読みごたえがあった。

Puppetはちょっといじり始めてたから、gihyo.jpの記事を読んだりもしているのだけど、まとまっていて、かつ、少し進んでいる、今回の特集記事のほうが良かったかな。gihyo.jpのほうでは、この記事をしたじきにしてさらにつっこんだ内容を期待したいところなんだけど、雑誌記事を前提にするのはさすがに難しいだろうか。

動作を確認しておきたいことも少しあったのでまた確認しておこう。69ページの注でruby-shadowのソースが見付からなかったあるが、ttateさんのところがその場所じゃなかったかと思う。

巻末のZshのまとめ記事もちょっと設定をいじるにはちょうど良かった。たとえば除外パターンなんてのは知らなかった。本文の例をとると*.c~est*は、*.cにマッチするもののうちestではじまるものを除いたものになる。変な例だけど、ruby1.8パッケージのテストでelispだけ別扱いにしたいことがよくあって、いちいち*_1.8.6.111-2*debをいったん展開してからコマンドライン編集なんてことをやっていたのだった。

詳しいZsh記事っていうのもうれしいのはうれしいのだけど、詳細な記事は、読んで、それなりに理解して、で、つい手を置いちゃうことがあったりなかったり、なんかして。

雑誌メモ: WEB+DB PRESS 41号

投稿者 akira 2007-11-01 15:00:00 GMT

かなりためこんでしまっている雑誌を読んでいこうかと。よく見えるところにあったWEB+DB PRESS Vol.41WEB+DB PRESS 41号から手をつけはじめた。

目をひいたのは、特集としては後のほうになっている第三特集「すぐわかるComet」(瀧内元気さん)。なんとなく、漠然と、という感じでの関心をCometに対して持っていた。それでも実態をよく知らなかったのだが、この記事を読んで、技術的に本当に深いところはともかくとして、どんなものかというのはよく分かった。

この記事は単にご紹介で終わるのではなくて、Cometの仕組み、実装上の問題点、複数の実装の機能や性能の比較、そしてアプリケーションを作るというところまでカバーしながらも、割合いにコンパクトにまとまっているというバランスの良い記事だと思う。

その他で気になった記事は「MySQL&RDBMSラボ」(池邊智洋さん)と「RESTレシピ」(山本陽平さん)だが、こちらは連載記事の途中なので前の号を読んでからまた戻ってこよう。

RailsによるアジャイルWebアプリケーション開発 第2版

投稿者 akira 2007-10-23 15:00:00 GMT

たいへんありがたいことにRailsによるアジャイルWebアプリケーション開発 第2版RailsによるアジャイルWebアプリケーション開発 第2版の献本をいただきました。関係者の方々、ありがとうございます。

実は必要にかられて、数か月前に英語版をPDFで購入し、ぼちぼちと読んでいたりもするのだが、読んでみてなおさら日本語版が待ちどおしくなっていたのだった。まだ出ないか、早く出ないか、と待ち続けていた。

同書第1版はRails 0.13ベースだということもあって、現在のRails 1.2.xでは変わってしまっているところがいろいろある。たとえばscript/generateなんてところからしても変化があるわけで、全体としてみると機能面でもずいぶんと変わっている。そういうわけで、Railsのソースをバリバリ読んでしまうような人は別としても、多くのRailsユーザ(特に1.2.xのユーザ)にとっては(改めて)第2版を手元に置いておく価値が十分にあるだろうと思う。

ところで、あまり関係ないのだけど、最初のおどろきは薄さだった(紙一枚一枚の薄さね)。第1版から厚さすえおきなのに100ページ増なものだから、うわっ、と :-)