Ruby 1.9.2 is released!
リリースマネージャであるyuguiさんによるRuby1.9.2の紹介。1.9.2の変更点は以下のとおり。
- IPv6対応を改善したsocket
- 2038問題に対応したtime
- random
- 携帯用エンコーディング
- Array/Enumerableにメソッドを追加
- fiddleを追加
- dlの代替
- 移植性のためlibffiを利用するようにした
- 新JSONライブラリ psych
- _whyどこいったんや問題
- libyamlをラッピングしたライブラリ
ただし、以下の問題点が残っているらしい。
- rubygemsの統合が一部うまくいっていない
- 数学関連ライブラリの整合性がとれていない
また、RubySpecにより他のRuby(JRuby,IronRubyなど)との共通仕様が固まったとのこと。で、固まったのでCRuby独自の以下のような機能拡張をやっていきたいとのこと
- プロファイラやデバッガ、トレーサ
- MVM
- dtrace
Rubyコミッタ Q & A
RubyコミッタによるQ & A。総勢25人ぐらいいたと思う。
だいたいこんな感じだったかな
- Q. 1.8で1.9の文法を読み捨てることはできないか
- A. 話はあったけどもまだそのような機能はできていない
- Q. エディタは何を使っている?
- A. emacsとvimが多数。あと、notepad++とxyzzy
- Q. rexmlは削除しないのか
- A. 削除する気はない。メンテナがいないが、互換性が重要
- Q. 英語と日本語のメーリングリストで言語の壁があることについて
- A. 1つにしたりするのは大変。現状維持
- Q. C言語バリバリの人が多いけど、どうやったらそうなれるの?
- A. Cで書かれたライブラリがあるのでそこから入って行けば
- Q. 古いバージョンのRubyのUnicodeのバージョンを現在のUnicodeのバージョンにアップデートしてほしい
- A. フリーズしたまま固定したほうがいいと思う
- Q. MVMは?
- A. ブランチはあるけど、いつ入るのかはわからない。
- Q. RubyでRubyを実装する方向にはいかないのか
- A. やらない。メタサーキュラーに関心がないらしい
- Q. たこやき仮面ってなに
- A. わからない
- Q. Rubyの嫌いなところは
- A. 開発体制がぐだぐだなところ
基調講演
matzさんによる基調講演。Ruby2.0でどんなことをやるかという話。matzさんが気に入っていない部分として以下の5つがある。
- ローカル変数のスコープ。
- ローカル変数が参照できなくて、面倒な場合があるという問題。
- mix-inの問題
- あとからモジュールをincludeするとモジュールのancesstorsの情報が反映されない。
- プライベートメソッドが存在しない
- global monkey patch
- 既存のクラスにメソッドを追加した場合、それがグローバルに反映される
- classboxで解決可能
- integer division
- 5/2=2となり、型を意識した結果になっている
の5つの問題があって、mix-inの問題が今回の話のメイン。
includeの代わりにmixというものを提案していてこれはincudeとは異なりancesstorsを変更するのではなく、メソッドをクラスにそのままコピーする。で、同じ名前があればエラーや警告などを出力する。明示的に上書きしたい場合はmixに引数を与えて明示的に上書きしたり、オリジナルを別名にしたりできる。こうすることでいつのまにかメソッドが上書きされているということがなくなるということらしい。includeとmixでどちらを使えばいいのかという質問にはmixを基本的に利用してincludeは徐々に使わないような方向にするらしい。
超絶技巧 Ruby プログラミング
Yusuke Endohさんによる発表。
rubyでesolangな話。まず、いろいろ文字種を制限したesolangとして数字だけ、'_'だけ、アルファベットだけの"Hello World"の紹介。あとはquineの話で、山の手quine、15puzzleのquine、マルバツゲームの思考ルーチン付きquine、オセロのquine、11個のプログラミング言語を順番に出力していくquineなどいろいろ、サウンド付きquineなど。よく思いつくなあ。
Rubyな日々
Kazuhiro NISHIYAMAさんによる発表。Rubyのコミッタとしてどのような作業をしているかというような内容。
Ruby リファレンスマニュアル刷新計画 2010 夏
okkezさんによる発表。るりまの進捗状況についての説明。組み込みライブラリはほぼ終わっているらしい。ただ、コミッタが減ってしまっていろいろリソースが足りないとのこと。
また、標準添付ライブラリの方は3年ぐらいかかりそうとのこと。
A Metaprogramming Spell Book
Paolo "Nusco" Perrottaさんによる発表。「Meta Programming Ruby」の著者。Rubyのactiverecordのコードを例にして、Rubyのメタプログラミングによるコードの読み方を説明していた。activerecordのコードはメソッド数とかクラス数とかが半端なく、Javaの常識としてはひどいコードということになるんだけども(著者は元々Javaプログラマだった)、これはRubyのコードだからJavaの常識を持ち込むのは良くないという指摘されていて、結構同意。
Lightning Talks
ARToolKit Ruby Binding
Urabe Shyouheiさんによる発表。ARToolKitのrubyバインディングを作ったという話とプレゼン自体もそれを使ったプレゼンで、内部でWebKitが動いてSVGで表示していたらしい。
Ruby/Tk-Kit から RubyKit へ : Ruby の単一ファイル実行環境の構築に向けて
Hidetoshi NAGAIさんによる発表。Ruby/Tk-KitはTkのライブラリなどを1つのファイルにまとめることでインストールを楽にしたもの。これをRuby本体にも適用してみてRubyKitにしてみたり、アプリケーションも単一ファイル化してAppKitにするという話。
What is few?
Shota Fukumoriさんによる発表。
less(ページャ)だと足りない部分があるのでfewという新しいページャを作ったという話。ブラウザをつかったものなので遅けども。
Toward Lightning RubyVM
Koichi Sasadaさんによる今後のRuby VMについて。AOTコンパイラの話は29日にやるのでVMの再設計の話。メソッドフレームが複雑なのでそこを修正するとか、並列性をVMが管理するようにするとかそんな難しい話。
MessagePackで多言語間通信
Sadayuki Furuhashiさんによる発表。MessagePackの紹介。
シリアライズライブラリとしてjsonの10倍、protocol bufferよりも4倍早いとのこと。また、ruby,python,c++,java,haskellのライブラリがある。
すでにkumofsやsedueやあめーばなうに利用されている。
Rubyで手軽に暦日を算出しよう!
Yoshihiko Haraさんによる発表。東洋暦日を扱うライブラリ、almanac for rubyの説明で占いとかに利用出来るということだったのだけども、URL忘れた。
Introducing the Lingo Project: A New Generationi Text Input System Leveraging Non-native English Writing
Kazki Matzさんによる発表。
lingoというブラウザ上の英文チェックサービスの紹介。訂正案を表示してくれるもの。デモがうまく行かなかったので動画での説明だった。
babushka―test-driven sysadmin for rubyists
Ben Hoskingsさんによるbabushkaの紹介。プレゼン資料の文字の色が見えにくい色で読めなかった。
parse.yの歩き方 -ワシのRubyは4式まであるぞ-
Ando Yasushiさんによる発表。Google Wave本の人。
Google Wave本のネタをやるか思っていたけど、途中からちゃんとRubyの話だった。ちゃんとかどうかは微妙だけども。parse.yをいじっていろいろ以下の3つの変なRubyを作ったという話。
時を超えた電子出版の道の中をRubyと歩いていく
Masayoshi Takahashiさんによる発表。githubの文書版みたいな構想を考えているらしい。技術的にはReVIEWとかgitosisとかのあたりかな。
Ruby Summer of Code 2010のご報告 〜俺たちのDecimalはまだ始まったばかりだ〜
Tadashi Saitoさんによる発表。decimal 0.1.0を無事リリースしたとの報告とRuby Summer of Code 2010の紹介。学生さんががんばってRubyのコードを書くと$5000もらえるらしい