読者です 読者をやめる 読者になる 読者になる

Matz in Google Tech Talk

Ruby

昨日アメリカの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
  • enumeratorを連結できるようになったよ
  • 外部イテレータを定義できるようになったよ。JavaだとIteratorオブジェクトを作ればイテレータを使いまわすことができたが、Ruby1.8ではイテレータはコレクションに組み込まれているものなので無理だった。1.9ではeachメソッドを使って外部イテレータを定義できる(自信なし)。
  • YARVについて。

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を最後まで見たのって初めてだな〜(だいたい途中で英語についていけず挫折する)。

いずれにせよ、楽しく最後まで見ることができました。すばらしい!