OSC TokyoでのRubyのお話

オープンソースカンファレンス2008 Tokyoに行ってきました。ただ、体調が芳しくなかった(花粉で頭痛が)ので、Rubyのだけ聴いて帰ってしまいました。

以下、メモ。

高橋課長からの質問"Ruby1.9使ったことある人はいますか?" -> 4,5人程度(会場は120はいるみたい)

1.9ぐらいから、バージョン番号の付け方が変わった

  • 以前は、X.Y.ZでYが奇数なら開発版、偶数なら安定版
  • 現在は、X.Y.ZでZが0以上なら安定版


1.9からRubyVMYARVが採用された。YARVは、Ruby専用のVMだが、JRubyというJVMVMとする実装もある。速度的には、JRubyも十分速いので、専用VMだからはやいというわけではないみたい。でも、最近YARVのほうがJRubyを圧倒したとかいう話題もある。

M17Nが採用された。M17Nというのは、複数の文字コードを1つのプログラム中で扱えるようになる。
文字列Objがエンコーディング情報をもつようになる。 => str.encoding
str.size,str.lengthが、ちゃんと文字の長さを返す。今までは、バイト数。また、インデックスでのアクセスもちゃんと文字単位。

?リテラルの動きも変更された。

# 1.8 系
p ?a #=> 97 (アスキーコード)
# 1.9 系
p ?a #=> "a"

プログラムの先頭に

# -*- coding : EUC-JP -*-

のように、"coding 文字コード"と書かれていれば、その文字コードでプログラムを認識する。
講演終了間際の質疑応答で、id:moroさんより、vim形式の記述でも問題ないのですかとの質問が出る。"coding 文字コード"の形なら、認識されるはずなので問題ないだろうとのこと。ただし、ファイルの先頭にねと。
ふと思ったんだけど、基本unix使ってる僕としては、先頭行はshebang書くんだけど問題ないんだろうか?

File.openのときにも、ファイルのエンコーディング情報を添付できる。

File.open("hoge.txt","r:euc-jp")

ここで、高橋会長から聴いている人たちに質問。"どうすれば、Ruby1.9を使う人がふえますか?"
"さっとwindowsで使えるパッケージが欲しい" -> "1.9.0に限れば、artonさんがmsi形式のインストーラーを作られている"
"railsがうごけば" -> "railsは、Active::Supportで、バッティングされているメソッドがあるのだが、いくつかは修正されている。が、すぐには難しい"
"すぐに1.8にもどせるような仮想パッケージがあれば使いたい"
"ライブラリ周りが動けば" -> "Hpricotは、だいたい動くんですが、たまに落ちる"
Hpricotが"エイチプリコット"って、発音されていた。"アプリコット"派の僕としては、修正すべきか。

本当は2/29に1.9.0-1がでるという話があったのですが、どうなんたんでしょうね。まつもとさんから連絡がこないんですが... => 帰宅したらアナウンスでてたRuby 1.9.0-1 スナップショット公開

M17Nまわりの話がきけたので、ここら辺よくわかっていない僕には、結構よかったです。