このサイトについて

Python Conference 2008 - Day1

Python Conference 2008 - Day1

day1_1.jpg Python ConferenceのセッションDay初日。朝の7時30分からレジストが始まり,軽めの朝食を食べて会場に向かいます。

今年は1000人を超える参加者だそうです。去年の倍。会場もむちゃくちゃ広い。キーノードなど全員参加のセッションでは,1000人の参加者が一度に集まれるように,3つの会場をぶち抜きで開催されます。端っこに座っているひとはトーカーが見えないので,プロジェクタのトーカーの姿を写していました。著名アーチストのコンサートみたいですね:-)。

Chair's opening Remarks

去年まで2年,PyConのチェアマンを担当していたStephan Deibelに変わり,ことしからは同じくPSFのDavid Goodgerがチェアマンを担当します。Davidさんはdocutilsやテキストプロセッシングに造形の深い方のようです。Steveさんはまじめな印象の方でしたが,DavidさんはFunnyな方。1000人の参加者を「1 Kiro Pythonista」と言っていたり,Guidoを「この人のことは紹介する必要はないね」などとからかったりしていました。

day1_2.jpg

Diamind keynote : Why Python Sucks(But works good for us)

Googleと同じくPyConのGold SponserであるWhiteOak TechnologyのCHris Hongnerさんのトーク。「Pythonは遅いし開発者は集めにくいし」とひとしきりPythonの「Suck」なところをリストアップしたあと,「でもPythonは便利だしすばらしいよ」とまとめるようなシニカルなトークでした。WhiteOakというのは,バイオや政府系のミッションクリティカル/ハイエンドな案件を専門にとりあつかう会社のようです。Googleと同じくC++やJavaなどのGlueとして,またプロトタイピングなどにPythonを積極的に活用しているようです。

day1_3.jpgday1_4.jpg

Keynote : Python 3000 and You

言わずとしれたPythonの創始者Guido van Rossumの50分のキーノートスピーチ。Python 3000の意義や利点,なぜ後方互換性が破られるような仕様変更が行われるのかなどについて,簡潔にまとめていました。日本語で,Python 3.0について詳しく知りたいひとはgihyo.jpの記事をどうぞ。
"Open source needs to move or die"という,RubyのまつもとさんがGoogleで行ったトークの一説を引用して変化の必要性を強調していたのが印象的でした。
Pythonはすでに生まれてから18年たっています。18年の間にはとても多くのことが変わりました。18年前はlongintはありませんでした。ネットワークから流れてくるストリームデータは,バイナリーデータも含めてテキストとして扱える程度のサイズでしたし,当時はunicodeもありませんでした。現在のPythonには設計上の誤りがあることはGuido自信も認めているところですが,そのような誤りの多くは状況の変化がもたらしているようです。
状況の変化に対応するために,またより新しいパラダイムを取り込むためには変化が必要です。Guidoは再びまつもとさんの言葉を引用して「走り続けるためには餌としてのにんじん」が必要である」と言っていました。Pyton 3.0の仕様変更は,まさに進化を続けるための原動力となるはずです。
Pythonが目指す変化の方向性は,「よりコンパクトなコア」。誰が使っても「たった一つのすばらしい方法」にたどり着けるように,曖昧さを排除し,例外を少なくしてハマりどころを取り除くことによって,よりながく,正しい方向に進化しつづけられるはずです。

Python 3.0の主な変更点としては

  • printが関数に - そもそも文であるのがおかしいし,関数にした方が機能追加がしやすい(引数を追加すればいいので)
  • テキストとデータの境界をより明確に - テキストはユニコードベースに,バイナリデータはbytes型に
  • 辞書のキーがviewを返す - すべてのキーを含むリストではなく,イテレート可能でより軽量なオブジェクトに変更
  • 型の異なるオブジェクトを比較できなくなる - リストにある要素を何でもソートできなくなります。今の仕様だと,比較できないオブジェクト同士はIDを使って比較しますので,リストに何が入っていても ソートできるのですが,こうなっているのはGuidoがPythonを作った当初は動的言語を作ることを想定していなかったからだそうです
  • 割り算が浮動小数点を返す
  • ライブラリのクリーンアップ

昔から変更したかった点,やっと変更できるようになった点としては

  • クラシッククラスをサポートしなくなる
  • intとlongの統合
  • 例外部分の変更 - 一部の機能は2.6から使えるようになります

その他,目新しい機能追加としては

  • Argument/Function annotation(引数/関数への注記)
  • 抽象ベースクラス
  • str.format()メソッド - 旧来の文字列フォーマットより協力なフォーマッティング

Python 3.0はすばらしいものだけど,移行の時期はしばらく先になりそうです。Python 3.0を使いたくても,開発に利用しているフレームワークなどが3.0に対応するのは先になることが予想されるからです。一般ユーザは,Python 3.0とほぼ同時にリリースされる予定のPython 2.6を使えばよいとのこと。また,変更点はある程度分かっているわけなので,クラスはobject型から継承するとか,dict.iterkeys()やxrange()を使うなど,将来的に3.0に移行するための備えは可能ですね。どうしても3.0版と2.6版を同時にメンテしたいなら,まず3.0版を開発して,そこから2.6版を作るようにするといい,と言っていました。
最初のPython 3.0は2.x系よりも遅くなるだろう,とも言っていました。アルファ2の時点で,3.0は2.5と比べて25%遅い,と言われています。文字列型の変更が影響しているようです。処理速度にかんしては,徐々に改善してゆくとのこと。Cで書かれた拡張モジュールを3.0に移行するのはけっこう大変そうです。開発に使うフレームワーク,モジュールがすべて3.xに対応しして,本格的に3.x系に移行できるようになるまで,まだしばらくかかるかもしれませんね。

GuidoのキーノートをXactiで録画して,blip.tvというサービスにアップしてみました。三脚をおけるテーブルが会場後部にしかなく,スライドが見にくいけど,あまりたいしたことかいてないです。

day1_5.jpg

Developing with repoze.zope2

Zope,PloneやDjango,そしてTracをWSGI Savvyに変換するというrepozeというプロジェクトについてのトーク。Zopeの場合は,単純にZServerにリクエストをパイプするような構成になっているわけではなく,ZServerをバイパスして,paste -> ZPublisherという仕組みで動く本格的なものらしい。TracをPlone風に見せるデモをやっていました。
会場からの「Ploneは早くなるの?」との質問には「Ploneは重いよね」と答えていました。Zopeの重さはZServerにあるのではなくZODBにあるので,その部分が同じ以上劇的な速度向上は望めないと思います。
Python界では猫もしゃくしもWSGIという風になっている現状を考えると,最近どうも盛り上がりに欠けるZope 2の世界に光りを当てる面白い試みだと思いました。

day1_6.jpg

A New Compiler for Jython

Jythonの新しいコンパイラの計画についてのトーク。Google Summer Codesでの開発結果をもとにしたプレゼンテーション。Python 2.5の_astモジュールを使って,PythonコードのAST木を作り,それからJavaのネイティブコードに落とし込む,という仕組みで動くもののようです。現状のJYthonの仕組みより,Pure Javaな中間コードを生成する,というねらいがあるとのことでした。Experimentalな実装である,という前置きはあったものの,なかなか筋がよいプロジェクトだと思いました。コアの部分はほぼ問題なく動いているようです。

day1_7.jpg

Stackless Python 101

高負荷なサービスをPythonで記述する場合などに利用されるStackless Pythonについてのお話。Stacklessでは,CPythonのスタック実装を(Cスタックでなく独自スタックを使うように)入れ替えているだけでなく,tasklets,channelsなどいくつかのモジュールを提供しています。そのモジュールの使い方,動作原理や利点などについてのトーク。
本来予定されていたトーカーが来れなくなって,別の人が突然しゃべることになったみたい。

day1_8.jpg

ランチタイム

日本から来ているa2cさん,増田さん,シアトルのBrianさんとPyPyのMaciej Fijalkowskiなどを交えてランチ。先週松本で開催したDevCampの画像や動画などを見ながら,いつのまにか技術と教育みたいな雑談をしていました。
なお,PyCon参加者には無料のランチが振る舞われます。

day1_10.jpg

Rich UI Webapps with TurboGears 2 and Dojo

TurboGearsの開発者Kevinさんのお話。PylonsベースになるTurboGears 2とDojoを使って,リッチUIなWebアプリケーションを作るための手法について解説していました。TurboGears 2が搭載予定の先進的な機能を使えば,リッチなWebアプリケーションを手早く作れる,ということがよく分かるトークでした。ちょっと早口だったけど,短い時間で,盛りだくさんの内容をよくまとめてありました。
Pythonの話は2割くらいで,あとはJavaScriptとかテンプレートのお話だったように思います。今時のWebプログラマはスクリプト言語だけでなく,SQLとかテンプレート言語とかJavaScriptとか,いろいろやらないとならない,ということなんでしょうねえ。

day1_11.jpg

The State of Django

Django ProjectのAdrianさんのトーク。Djangoの現状を総括するトーク。Djangoって,本体の他にいろいろとブランチがあるんですね。ちょっと使ってみたいと思いました。Adminの設定とモデルの設定と分けるとか,newformsの話とか,1.0に向けて搭載予定の機能について紹介していました。
トークの最後で,もう一人のDjango開発者Jacobさんが出てきて,2つのお知らせをしていました。一つはDjango Foundationを設立する,という話題。もう一つは,Jacobさんが現在の会社を辞めて,フルタイムでDjangoを開発するようになるそうです。会場からは惜しみない拍手が送られていました。

day1_9.jpg

企業ブース

今回のPyConでは,一部屋を使ってスポンサー企業がブースを並べていました。Googleをはじめとして,Pythonを活用していて,Python使いを雇いたい企業が10社ほどブースを出していました。なかにはノベルティを配っている企業もあり,私はGoogleの赤いノートをGetしました。そうそう,ILMがブースを出していてちょっとびっくりした。

かいもの,夕食

セッションの後は,増田さんと中村さんと私で,買い物 + 夕食を食べに外出。レンタカーを使って,シカゴ郊外にあるショッピングモールWoodfieldに行ってみました。なんでもアメリカで2番目にでかいショッピングモールだそうで,とにかく巨大さに圧倒されてきました。
その後は,ホテル近くまで戻ってシカゴピザで夕食。3人でも食べきれなくて半分残してしまいました。
day1_12.jpg day1_13.jpg day1_14.jpg
2010-08-27 04:47