ポートランドからビーバートンへ移動。
Open Technology Business Centerでミーティング。 なぜオレゴンがオープンソースか、などとかいうような話を聞く。
Linusをはじめとして意外な(?)有名人が ポートランド近辺に住んでいるとかいうような話であった。 Linusはあまり表に出ることが好きでないということだが、 よくいくコーヒーショップは知られているのだとか。
島根から来た人たちは、なんとか参考にできないかと思っているのか 大変熱心に聞いていた。
似ているところ
似てないところ
シリコンバレーよりはポートランドの方が島根っぽい?
でも、オレゴンの場合、オープンソースの背景にはIT産業が、 IT産業の背景には半導体産業があるわけで、 その辺は見逃してはいけないと思う。
そのほか、Rubiniusの話とか(なぜかポートランドにいるEngineYardのエンジニアから)、 Rubyをどう使ってるかとか、オープンソースがどうとか、 教育機関での取り組みとか。
Wikiの父、Ward Cunninghamも来てた。 Wardにあうのは久しぶり。2005年のOSCON以来か。 最近はaboutus.orgというサイトに取り組んでいるんだとか。
aboutus.orgは現在Mediawiki(PHP製)なんだけど、 段階的にRubyに移行しつつあるんだとか。
2001年に最初にWardに会った時には「Smalltalkに似てて良い言語だと思うよ。私は使ってないけど」 とのお言葉をいただいたのだが、それから7年、Ward自身がビジネスでRubyを使うようになるとは 時代も変わったものだ。
私自身もプレゼンしてくれという話だったので、 先日Sunでしたのと同じRubyアソシエーションについて発表する。 今回は通訳を付けてもらえたので日本語で発表したのだが、 途中からスライドは英語だし、通訳の人と英語で話したりしているうちに混乱してしまって 英語で話し出したり、ややわけのわからないことになってしまった。
あと、LUNARRの濱口さんが発表された。 高須賀さんは訪日中だそうで、残念ながらいらっしゃらなかった。 濱口さんは、なんていうんだろう、日本人的なところと、 全然そうでないところをあわせもったとても不思議な雰囲気を持った人であった。 この人が「やれる」と思ったというだけでLUNARRに期待できる。そんな感じがした。
後で、高須賀さんとも電話でお話する機会があった。びっくり。
OTBC関係者およびportland.rb(Portland Ruby Brigade)の合同ディナー。
大変楽しかった。全員とゆっくり話せなかったのが残念だ。 Gemstoneの人と隣り同士になっていろいろ話した。 やっぱりポートランド近辺に住んでるRandal Schwartz(Schwarzian TransformのRandal)が 今は彼の下で働いててSmalltalkを書いてるんだとか。
もっとも彼は以前もSmalltalk書いてたんだそうで、 知ってる人にとってはそんなにびっくりするようなことではないのかもしれないけど、 私はびっくりした。
朝から団体さんでGoogleへ。 しかし、訪問するところがどこもシリコンバレーなのに 宿泊場所がサンフランシスコというのは無駄ではないのだろうか。
Googleにつくとさっそくプレゼン。 X61がXを立ち上げ直さないとプロジェクターを認識しないという問題があるのだが、 それ以外は快調。内容は昨年末の神戸での講演をベースに若干アップデートした上、 英訳したもの。神戸ではより少ない枚数で1時間話したような気がするのだが、 英語ではそんなに話せない。あんまり緊張したので時間を覚えていないのだが、 質疑応答をたしても1時間くらいか。
1.9のM17Nの実装について突っ込んだ質問をしてくるどこかで見たような人がいたが、 Guido van Rossumその人であった。
その後、Google Lunchをいただいた。Guidoも一緒に。
まず、Googleの料理だが、大変おいしかった。 個人的には日本的な味つけの楽天ランチの方が好みだけど。 しかし、空間の余裕はGoogleカフェテリアの圧勝。
Guidoとの会話だが、Unicodeの実装など技術的な話題や、 互換性の維持の運営などの話が中心であった。 終始フレンドリーであったことを報告しておきたい。 並んで写真も撮ったしね。
「Python 3.0のリリースが完了したら、次はどうするの」と聞いたら、 「引退する」とのこと。すぐに「冗談だよ」と言ってたけど、 後継者については考えはじめているようだ。 「最近参加した人に若いけど見込みのある人が(複数?)いる」、 「昔からかかわっている人は優秀だけど、役割が決まりすぎている(スペシャリストすぎる)気がする」と のことであった。ふむ、興味深い。実装と言語デザインではまた違ったバランス感覚が要求されるしね。
最後に、「Haskellみたいなブレースの使い方を採用する気ない?」と尋ねたら、 「いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる」という ことであった。これが実現したら大喜びする人も多いように思うけど(lambdaで複文が使えるようになるし)、 それほど乗り気であるようにも見えなかったので過大な期待は禁物である。
その後、伊藤忠アメリカの事務所でシリコンバレーの現状を聞いて(昨年とあまり変わってないような)、
それから、スタンフォード大学によってから*1サンフランシスコ空港へ。
さらにポートランドへ。
それからバスでホテルへ。 Hilton Portrand。なんで今回のツアーはHilton好きなんだ? ネットアクセスはあいかわらず有料。次回はネット無料のところに泊まろうよ。 アメリカではそんなに多くないのは知ってるけど。
24時間$9.95とサンフランシスコよりは安い。けど良心的価格とはなかなか呼べないなあ。
*1 勘違い。実際にはスタンフォードに寄ったのは19日であった
ちょうど私たちがスタンフォードに寄った直前にそこでビル・ゲイツが講演していたらしい。 ニアミス。
追記
NaClさんに指摘されたように、スタンフォード大学訪問は19日。 ニアミスしたのは本当。
後で聞いた話なんだけど、今晩この地方では月蝕が観測されたらしい。 どうやら到着した時点ではちょうと全部隠れている時間だったらしく 全然気がつかなかった。惜しいことをした。
通常のCPythonでstackless threadを実現する拡張ライブラリ。
アセンブラを使ってるんで移植性は限定的だけど、 コンパクトだし、使いではありそう。 Rubyでも似たようなテクを使ってFiberとか実装するといいんだろうか。
後で本気でソースを読んでみよう。
メンロパークにあるSunの本社へ。
オープンソース担当VCやらいろんな人の話を聞く。
今日会った有名人。
Ianに「Debian使ってるよ」と声をかけると、 返事は「ありがとう。私はUbuntuっていうバージョンのDebianを使ってるよ」というものだった。 って、Ubuntuかよっ。
情報交換をしたり、いろいろ。
私からもRuby Associationについてプレゼンを行ったのだが、 なぜか私のプレゼンの直前に通訳の人が帰ってしまい、 予期せず英語でプレゼンすることに。
つらい。
まあ、がんばりました。
昨年は寿司であったが、今回はアメリカ的な食事をとのリクエストが (Charlesから?)あったらしいので、McAuther Parkというレストランで 肉食。BBQがおいしかった。手がべとべとになっちゃったけど。
おなか一杯。
動的型の言語では以下のようなプログラムの問題を検出できない、という指摘
def test(a, b)
  a + b
end
def main()
  if ARGV.length > 3
    test(1, test)
  else
    test(1, 2)
  end
end
Process.exit(main())
まあ、それについては否定しないけれども、 だからといってこんな不自然な型不整合を検出できないという理由で 動的型が危険というのはかなりアンフェアな印象がある。
ただ、将来的にはカバレージツールやソフトタイピングの応用で 動的型言語でもより多くの問題を検出できるようになればいいなと思う。
プログラム言語に詳しい人あたりに感想を聞いてみたいなぁ。
Matzさんとか、派手にDISってくれないだろうか。
えーと、「言語をDISる人」としての認知が広がってきたのでしょうか。 本人としては「あらゆる言語ラブ」な人だと自任しているので、 ただ単にけなすことをイメージさせる「DISる」というのはちょっと辛いのだけど。
で、Curlについてはこの日記でも過去にいろいろ語っているのだけど(左上のボックスでCurlで検索)、 言語についてはあまり語っていなかったような気がする。
まず、Curlが関数型かどうかだが、 一昔前だと「関数」呼び出しがベースになっている言語はすべて関数型と呼ばれていた(Lispとか) ので、そういう観点からは関数型と呼べないこともないと思う。
しかし、現代で関数型といえば、副作用がない(少ない)、とか高階関数を基本にするとか のようなHaskellやOCamlのような言語をさすと思うので、 そういう意味ではCurlはあんまり関数型ではないと思う。
どうにもTclに近いんだけど、リストベースという点ではLispに近い。
Ingresの設立者であるStonbraker教授によるコメント。
SQLデータベースというのは過去の前提に基づいており、 現代においては時代遅れ。現代では別のやり方を考えた方がよいというもの。
Data manipulation, they said, can be performed with other tasks using languages such as Ruby. They describe a prototype DBMS called H-Store that embodies these ideas.
SQLのような完全に別の言語を使うよりもRubyのような言語を使ってやったほうがよいという主張のようだ。こんな文脈でRubyを見るのはうれしいことだ。
Rubyによるコミュニティサイト構築ツールEl Dorado。
Railsで作るのがあまりにも簡単なので、 なんでも自作しちゃう傾向があるのか、 PHPのXoopsとかDrupalのような「定番」に欠ける印象があるRubyだが、 それでもこうやって新しいものが出てくるような動きはあるようだ。
6時前に起床。成田でネットアクセスするためにワイヤレスゲート ヨドバシカメラオリジナルプランを購入。
朝、7時すぎに出発。 途中でデジカメを忘れたことに気がついて引き返す。 わりとぎりぎりの時間に米子空港に到着。 米子空港出発組と合流。
米子から羽田へ。羽田からリムジンバスで成田へ。 成田ではワイヤレスゲートのおかげで快適にネット。 夕方からUAでサンフランシスコへ。
サンフランシスコについたらまだ午前中である。
バスで梅田望夫さんのところへ。 祝日(Presitent's Day)なのに親切に対応していただく。 ありがたい。
いろいろなことについてお話したが、 同調圧力や「空気を読む」それから「多様性」について が中心的な話題だったように思う。
kuromomoさんがミーティングの内容を録音していたので、 どこかで(ITPro?)で公開されるのではないかと思う。
以前にインタビューを受けたものが公開された。 なんとなくRubyの宣伝っぽく聞こえるような書き方がしてあるが、 例によって本人にはそんなつもりは毛頭ない。
生産性とスピードがより重視される、というのが基本的な内容なんだけど、 「Web系に限定されるんじゃないか」と読む人も多いんじゃないかと思う。 少なくとも、「今」に限定して考えるとその通りだろう。 基幹系はWebのようには行かない。 また、現時点でRubyを基幹系に適用すべきとは考えない。
「できない」とは思わないし、実際に適用している人もいるんだけど、 Web系よりはずっと難易度が高いので、できる/できないの判断が自ら責任を持って行うべきだろう。 人に聞かないとRubyが適用可能か判断できない人には、まだ早い。
とはいえ、「今後」までを視野に入れると、 分野に関らずソフトウェア開発について同じような圧力は高まるだろう*1。 そうすると、「Web系以外は関係ない」話としておいて良いかどうかはちょっと疑問だ。
今後の業界変化の一方向として頭の片隅にくらいに置いとくのが良いのではないだろうか。
*1 SOX法など別方向の圧力もあるのは認識している
Macbook Airと同じくらい薄いThinkpadについて。 かっこいい。魅力的。 タッチパッドは要らないけど。
この間X61を買ったばかりなので、出たらすぐに、というわけにはいかないとは思うけど。 弾さんみたいに年に1台とかいうペースでは買わないし。
朝から雪で、教会から帰ったら家の前の坂道が雪で滑って登れない。 先に帰った妻は子供たちと一緒に雪かきをしていた。 子供たちはどちらかというと雪遊びをしていたんだけど。
しかし、今年高校受験の長女は、勉強もせずに雪まみれになって 「滑ったり」、「転んだり」、「(溝に)落ちたり」していたのだが、 それはそれでいいんだろうか。
ところが、夕方になって妻が「寒気がする」とか言い出した。 どうやら先週の半ばに引いていた風邪が治りきっておらず 再発したらしい。
微熱と関節痛など典型的な風邪症状。 インフルエンザではなさそうだが。
あんまり具合が悪そうなので、 明日からのアメリカ行きは無理かもしれないと思った。 ただ、私が行かないとツアーの人に迷惑をかけちゃいそうなので 家族と仕事の都合の板挟みになって、精神的にかなりつらかった*1。
*1 結局、朝にはかなり回復していたけど
_ anonymous [[報告]2/25の新潟日報にMatzさんの記事が掲載されていました。]
_ まつもと [それはそれは。 なんとか読む方法はないですかねえ。> 新潟日報 ]