Ruby 1.9

1.8からののりかえがキビシー。

まず文字列。string[n] が 文字コードでなく長さ1の部分文字列になった。 なんだよう。これ教えるときに何でこれだけ文字コードなのかちょと めんどいなと思ってはいたのだが、だからといって突然変わっちゃうのも 困る。ファイルをバイト列として読み取って、そのどこかの値を unsigned char で得るときに string[0] とか していたのだがこれが使えない。Ruby 1.8 と共存させるにはこうか。

(1.8まで) value = string[0]
(1.8+1.9) value = string.unpack("C")[0]

(1.8まで) value = string[n]
(1.8+1.9) value = string.unpack("C*")[n]

あと、デフォルトのエンコーディングがutf-8になって、euc-jpで 書かれているスクリプトでヒアドキュメントなんかを使うと こける。失敗してもいいから自動判別するとかして欲しい。 マジックコードを使えっていうが、ワンライナーの場合 指定ができない。ruby -Ke とかしても、正規表現オブジェクトが ASCII-8BITにしかならないからこける。困る。

うーん、1.8に戻した。せめて自作プログラムは10〜20年は使いたいのだ。 そうなるともはやCしか選択肢はないのか? Emacs-Lispはバッファとかの 取り扱いのバージョン差異はあるものの、リスト操作とか基本関数は 20年くらい変わってないからまあ偉いよなあ。とはいえスクリプト言語としては 使えないし。awkに戻るか?