PyCon JP 2012に参加して刺激を受けてきた #pyconjp

こんにちは、ころすけ(@wg_koro)です。

PyCon JP 2012

Pythonを使うユーザーが集まるカンファレンス、PyCon JP 2012に参加してきました!

PyCon JP 2012 について – PyCon JP 2012
PyCon は、Pythonユーザが集まり、PythonやPythonを使ったソフトウェアについて情報交換し、交流するためのカンファレンスです。 PyCon JP開催を通してPythonの使い手が一同に集まり、他の分野などの情報や知識や知人を増やす場所とすることが目標です。

場所は去年と同じく産業技術大学院大学
産業技術大学院大学

入り口。デカイ。
エントランス

朝早くから参加したりして疲れましたが、非常に充実したカンファレンスでした。

せっかくなので、自分が参加したセッションをちょっと振り返ってみます。量が多いので、16日の分だけ・・・。
※間違いなどがありましたらツッコミいれてくださいませ!

はじめてのWeb(Flask)アプリケーション(中級者)

参加者が手を動かすハンズオン。マイクロフレームワーク「Flask」を使って簡単なWebアプリケーションを作成しました。

Flaskは仕事でたまに使っていました。が、人からしっかり教わるのは初めてだったのでわくわくしながらの参加。

デバッガのpdbや実行速度計測できるcProfileを初めてまともに使いました・・・。便利ですねこれ。今まで使ってなかったんかい!というツッコミは無しで orz

ハンズオンで使用された資料(Github)

基調講演: Dan Kogai

@dankogaiさんによる基調講演。

Zen of Python(Pythonの思想)に対するdisり講演でした!会場の前方あたりから殺気が立ち上ってたのが非常に面白かったですw

しかしdisりと言っても、概ね同意できちゃったりするんですよね・・・。

気になったポイントだけ書きます。

配列join

javascriptやRubyは

配列.join(‘区切り文字’)

でOKなのに対し、Pythonは

‘区切り文字’.join(配列)

のようになります。これはPython慣れしてる自分も同僚も、よくdisっている部分。なんで 配列.join() じゃないねん。

日本語で表すと、「配列を『☆』という文字で連結する」という書き方(js, Ruby)か、「『☆』という文字で配列を結合する」という書き方(Python)の違いではあるんですが、混乱しますよねこれ。

ところで@dankogaiさんが書いてくれたPerlも、jsやRubyに比べると大分イレギュラーな感じがするw (↓)

join “☆” => qw/まどか マギカ/;

文字列の扱い

これは・・・うん、まぁそうだよね、としかいいようが無いデスね(=ω=)。Pythonを日本語環境で使う時の超、超、ちょうハマりポイント。

「文字列を操作する」という行為に対して「慣れが必要」ってどうなんだと正直思います。

文字のreplace

これはちょっとどうかな・・・という内容でした。

Rubyやjsで

universe.gsub(/魔女/, ”);
universe.replace(/魔女/g, ”);

と書いておいてPythonで

import re;
re.compile(‘魔女’).sub(”, universe);

と書くのはちょいとひどい気がw Pythonでも

universe.replace(u’魔女’, ”)

と書きますがな。そもそも re.compile() を使うなら、jsでも

re = new RegExp(“魔女”, “i”);

を使ったreplaceじゃないとフェアじゃないデス。

クロージャー

スコープどーなっとんねん、という内容。あらかた同意。ひっかかりますよね・・・。

リスト内包表記

Zen of Pythonの「ネストさせなくていいならしない方がいい」に対する反論だったんですが、ここは下記とバッティングすると思うんですよね。

  • ごちゃごちゃ難しいのより、白黒はっきりしてるのがいい
  • めんどうなのよりかんたんな方がいい

個人的には下記のように、ループが入れ子になっちゃうリスト内包表記はNGだと思っています。

[j for i in range(2, sn) for j in range(i*2, n, i)]

パッケージ管理ツール

easy_installとかpipとかなんやねん、という内容(だったと思う・・・)。

easy_installが色々アレなのは同意。

こんな感じかなぁ

なんか長くなっちゃいましたが、気になったのはこんな感じでしょうか。文字列周りの実装はどうにかしてほしい、というくだりは超同意でした。

@dankogaiさんの資料

Sphinx ではじめるドキュメント生活 2012

Sphinxをまともに触ったことがないので参加。

感想:うん、使ってみたい。というか使ってみようかな!

特徴:

  • 目次(toctree)ベースなので使いやすい
  • テキストベースで書けるので、自分のエディタ使えるよ!
  • バージョン管理も楽だよ!

デメリット:

  • 毎回makeしなきゃならない (外部ツールで自動化できるっちゃぁできるけど・・・ね。)
  • 文書レイアウトを表現できない(右寄せ、センタリング、二段組み…etc)
  • 画像や図形は別途対応が必要

日本語PDF生成について:

  • 現在はパッチあてが必要 (パッチあてれば問題無し!)
  • 本家Sphinxにパッチ導入お願いしているけどまだ取り込まれてない

拡張・テーマ充実してるしどんどん増えてるよ!

ミニ四駆で Python on Windows Azure

最後のあたりだけちょっと聞いたんですが、AzureでもPythonが使えるようになったんですね。Djangoも使えるとか。

  • Paasとして使うのであれば、SDKの関係でWindows必須
  • Iaasとして使うのであれば、Windowsは特に必要無し
  • Python2.7使えるよ
  • Django1.4使えるよ
  • PaasはGAEみたいにちょっとルール縛りがあるよ

Webフレームワークパネル

各フレームワーク(Django, Flask, Pyramid, あと何故かGoogle App Engine)の第一人者がトークするイベント。これが一番面白かったですw

ちなみに、マイクロフレームワークFlaskのパネラーは、作者であるArmin Ronacher(@mitsuhiko)さんでした。来日。わお。

なんというか、Django VS Pyramidな議論が多かったw

では覚えている部分をちまちま覚え書き。ここでは各フレームワーク毎にまとめて書いてますが、実際はあちこちで乱闘(?)になってましたww

Flask

  • Arminさん超イケメン!
  • Flaskはフレキシブルな設計を目指して作った
  • DBとか必須じゃないよ
  • 大規模にはどうだろ、ちょっと向いてないんじゃないかなぁ
  • Djangoって1.4はマシだけど、なんか遅くない? → Django
  • Python3は要望が多ければ対応するけど、手がまわらない・・・

Django

  • フルスタック
  • 便利なライブラリ大量にあるよ!(71カ国分の郵便番号とか!) ※この部分、パネリストの露木さんから捕捉を頂きました。コメント欄を参照下さい
  • MLとか、コミュニティ活発だしメンバー1000人弱いるよ!Java-jaより多いんです!
  • Pyramid難しくね? → Pyramid
  • Pythonとしての実装方法はPyramidが正統かもしれないけど、使いやすいのはDjangoじゃね? → Pyramid
  • OSSだから、Django悪いところあったら皆直してちょうだい!
  • Python3対応は一応Experimental的な位置づけで進めてたりするよ

Pyramid

  • Djangoのようにあれこれ持ってないよ
  • コア部分だけあるよ
  • テストカバレッジ100%だよ!
  • 難しくないよ!

このあたりで司会(だったかな?)が
「Flask使ったことあるひとー?」→(大勢手を上げる)
「Pyramid使ったことある人ー?」→(しーん)・・・orz
となっていたのがツボでしたw 実際むずかしーよ!

  • DjangoってPythonとしておかしくね? → Django
  • 難しいのは認める。ハイ(´・ω・`)
  • Python3対応してマス・・・

Google App Enginne

  • インフラに手をかけずに済むよ!
  • でも速いものが欲しかったりすると不向きかも!
  • Flask, Pyramid, Django全部動くよ!
  • Python2.7も動くようになったから、色々使いやすくなったよ!

こんな感じで

色々と乱闘が発生してましたw もっと聞いていたかったなーw

来年のPyConJPは

なんと来年は、東京でPyCon Asia Pacificとして開催されるようです!なんか年々規模が壮大になってきているw

今から楽しみだ・・・!

スタッフの方々

スタッフの方々、お疲れ様でした!充実したカンファレンスをありがとうござました!!

おまけ:PyConだけでメモ帳20ページくらい消費してしまいましたw
メモ帳

2件のコメント

  1. PyCon JP 2012参加&レポート、おつかれさま&ありがとうございました 🙂
    パネルでDjangoを担当しました露木です。
    実はわたしがポジショントークを盛りすぎて表現の仕方を失敗した部分が有りまして、補足させてください(郵便番号のくだり)。
    「71の地域や国のメッセージ翻訳と、ある程度の地域の郵便番号にあたるもののフォーマットに関するバリデーションが有ります。現実としての郵便番号は変更頻度とかサイズとかアレなので本当に有るかどうかの確認はDjangoではできません。」

    今回のスピーカーたちは来年のPyCon APACでもスピーカーをできるようにとかなりやる気でいるようです。
    ころすけさんが登壇してしまっているところを楽しみにしています!

  2. コメントありがとうございます!
    そしてパネルディスカッションお疲れ様でした!聞いていて非常に楽しいディスカッションでしたw

    捕捉もありがとうございます!
    なるほど、そういうことだったのですね。本文にも注記をいれておきます。

    来年のPyConではLTに出てみたいなぁとか考えてますw
    45分枠は・・・ムズカシー orz

    本当にお疲れ様でした!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください