昨日アメリカのGoogle本社で行われたMatzのTechTalkの様子がさっそくアップされてます。
TechTalkの概要は以下のとおり。
1.9の新機能
- 1.8は安定版、ビジネス開発者むけ
(このへんでなんかジョークを言っていたような) - >このバージョンをメンテしてるのは、自分よりももっと信頼できる人だよ > 聴衆(w
- "Incompatibile"の発音で詰まる(^^)。「Due to the changes, it is Incoppa, インコッパァ、インコッパァ、ミャウみゃうみゃう〜、インコッパァ、Incompatibile from 1.8.」
- 1.9は1.8の言語設計ミスを直したり、パフォーマンス向上したりとか。
- 2.0について。OSSコミュニティーのモチベーションは常に改善していくことなので、進むか、さもなくば死ぬか、的な話。
- Ruby1.9の新機能について。
- ブロックパラメータはローカル変数のみ使用可能になったよ。
- Stringをline,char,byte単位で指定して扱うことが可能になったよ。encodingも指定できるよ
# -* encoding: UTF-8 -*- とか open("filename", "r:UTF-8") do
- lambda式を"->"で書くようにしたよ。".()"で実行できるよ。Kernel#lambdaメソッドは廃止したよ(?)。ところで"->"って"λ"に似てるよね(ということを証明)
->(x){|x|x*5}.(2) => 10
Rubyって何さ
- 言語。Matz自身が満足するため。
- コミュニティ。マーチンファウラーもRubyコミュニティは良いといってました。
- 実装。MatsのRuby Interpreter(MRI)、YARVのほかにも、JRuby, IronRuby, Ruby.NETがある。あとグーグルではRubyは禁止されてるみたいだけど(Java,Python,C++,JavaScriptのみ)、グーグルの人がJavaScript(Phino)上で動くRubyを作ってたよ。まあJRuby使えばいいんだと思うけど。
- Rubyは開発者をより生産的に、より幸せになることを支援する言語。グーグルの人も支援できたらいいな。たぶんJRubyで。
質疑応答
- (聞き取れなかった・・)
- クリスマスに1.9をリリースしてたけどなんか意味はあるの?->クリスマスだからね〜。でも今年は忙しかったから家族と過ごせなかったよ。ミスった。
- Rubyの公式な言語仕様と、JRuby,Rubiniusの関係について?
- Rubyの開発者は1.9にシフトしているの?->Matzは1.9の開発やってるよ。去年、長年の夢であったYARVをリリースできたから、やっと次のステップにいけるっていう感じ。あとは紙の上で2.0のデザインやったりしてるよ。
- 1.9の正規表現エンジンのドキュメントはあるのー?文法についてのドキュメントはRubyのサイトにあるよー。
- CC(?)について?Continuation Library(?)
- >詳しくは
callccと1.9で導入された継続について
Continuation - Rubyリファレンスマニュアル
http://www.ruby-lang.org/ja/man/html/Continuation.html
- 文字列の扱い方について->Rubyでは文字列は単なるバイナリー列として内部データで持っている。特定のエンコーディング情報を言語の中に持ちたくないからだよ。エンコード・でコードのラウンドトリップしたくないからね。UTF-8を使いたいときはUTF-8を、古い日本語エンコーディングを使いたいときは、それ専用のフィルタみたいなものをつかうんや。
- pythonのnames parameterをRubyで採用しないの?->何?(と質問を繰り返してもらう)2.0でやるかも?Rubyのsymbolみたいなもん?(ここでMatz、日本語で「届いたかな?」)。ハッシュパラメータの話?
- >名前付き引数について。ハッシュを使って名前付き引数を実現するかもと思っている。
Matzにっき
http://www.rubyist.net/~matz/20040320.html#p01
http://www.rubyist.net/~matz/20060629.html#c05
質疑応答のところは良くわからなかった・・・orz。それにしてもMatzはこの英語力をどこで身につけたのだろう。すごいな〜。Google Tech Talkを最後まで見たのって初めてだな〜(だいたい途中で英語についていけず挫折する)。
いずれにせよ、楽しく最後まで見ることができました。すばらしい!