フレームワークの良さや特徴を知ることでミスマッチを防ぐ――「PyCon JP 2012」併設イベント「Django & Pyramid Con JP 2012」開催レポート

 2012年9月15日から17日にかけて、Pythonユーザーのためのカンファレンス「PyCon JP 2012」が開催された。PyCon JP 2012ではPython関連コミュニティによるイベントが併設されているのも特徴である。今回はその1つである「Django & Pyramid Con JP 2012」について、運営側担当者によるイベントレポートをお送りする。

pyramid

Django & Pyramid Con JP 2012とは

 Pythonにおける本格的なWebフレームワークとして大きな人気を誇るDjangoとPyramid。Django & Pyramid Con JP 2012は、両フレームワークの日本コミュニティが共同で開催したカンファレンスです。カンファレンスではDjangoやPyramidの概要だけでなく注目すべき最新機能なども紹介され、DjangoやPyramidにあまり触れたことがない方はもちろん、しばらく離れていた方も満足いただける内容であったと思います。それだけでなく、PylonsからPyramidへの移行ガイド、M2Mサーバーやリアルタイム処理の実例、業務で得られた経験談など、DjangoやPyramidに慣れ親しんだ方に向けた発表も用意されました

 このレポートでは運営の視点でDjango & Pyramid Con JP 2012の様子をお伝えします。各セッションの動画やスライドもまとめてありますので、あわせてご覧ください。

当日の様子

staff_s.jpg

 Django & Pyramid Con JP 2012ではDjangoやPyramidに興味を持っている多くの方々と知り合うことができ、私としても開催、参加できて良かったと思っています。初めてのDjango & Pyramid Conを開催するにあたっては「どれほど人が集まるのか」というのが未知数でした。「せいぜい30人くらいだろう」と思っていたのですが、多い時では50人ほどが来てくださいました。想定以上の参加者に、席が足りず立ち見がでることもありました。これに一番驚いていたのは、私を含めたスタッフ一同だと思います。

standees_s.jpg

 参加者の方々はDjangoやPyramidを使ったことがない方から業務や趣味で使っている方までさまざまでした。幅広いレベルに対応できるよう発表を用意して良かったと思っています。

(djangoproject.jp 清原弘貴)

Pyramidの概要から深い内容まで紹介されたPyramid関連セッション

 Pyramid関連では、以下の3つの発表が行われました。

  • What Makes Pyramid Unique
  • Pyramidセキュリティ
  • PylonsユーザーのためのPyramid移行ガイド

「What Makes Pyramid Unique」セッション

 まず「What Makes Pyramid Unique」セッションでは、Pyramidの特徴や実際の開発スタイルなどを発表しました。Pyramid自体がまだマイナーな存在であり、名前だけは聞いたことがあるという人が多い中で、より興味を持ってもらえる内容だったと思います。特にPyramidの拡張性の高さについてはTwitterでも言及されていました。

What makes pyramid unique from Atsushi Odagiri

「Pyramidセキュリティ」セッション

 また、村岡友介氏による「Pyramidセキュリティ」セッションは、タイトルのとおりPyramidのセキュリティに関する発表が行われました。Pyramidユーザーだけでなく、フレームワークがどのようにセキュリティを確保しているのかに興味を持っていた参加者の方も多かったのではないでしょうか。Pyramidは拡張性が高いことは先のセッションでも説明していましたが、本セッションでは認証、権限に関連する部分もすべて入れ替え可能であることが紹介され、またWSGIミドルウェアのrepoze.whoという認証フレームワークとの連携やPyramid内部での動作の説明など、かなり濃い内容を発表するセッションとなりました。参加していただいた方々にも満足していただけたのではないでしょうか。

Pyramid Security from Yusuke Muraoka

「PylonsユーザーのためのPyramid移行ガイド」セッション

 2日目唯一の発表だったNozomu Kaneko氏による「PylonsユーザーのためのPyramid移行ガイド」セッションでは、PylonsからPyramidへの移行について紹介しました。PyramidはPylonsプロジェクトで開発されているため、多くのPylonsフレームワークユーザーがPyramidへの移行を気にしていると思います。Pylonsプロジェクト内でのPyramidのポジションについての説明に始まり、PyramidとPylonsの似ている部分、異なる部分、Pylonsのアプリケーションを実際にPyramidにポーティングする例などが説明されました。

 国内ではPylonsユーザー自体が少ないことや時間帯が2日目朝だったということもあり来場者は少ない状況でしたが、おそらく日本で一番Pylonsを使っているであろう発表者による、非常に貴重な内容だったと思います。

Pylons ユーザのための Pyramid 移行ガイド from knzm

 Djangoとの共催イベントということで、現在メジャーなフレームワークの話も聞くことができ、非常に刺激になりました。Pyramidはまだまだ事例が少ないフレームワークであり、枯れていない部分も多くあります。今後pylonsproject.jpでも不定期に勉強会を開催していきますので、発表を聞いて興味を持った方も、発表を聞けなかった方も、ぜひPyramidという質実剛健なフレームワークに触れてみていただきたいと思います。また、今回の開催がそのきっかけになれば非常に幸いです。

(pylonsproject.jp 小田切篤

最新バージョンや紹介や活用事例の発表などが行われたDjango関連セッション

 Django関連セッションでは、Djangoの紹介から活用事例まで4つの発表を行いました。

  • 使える Django 1.4
  • Django を活用した M2M クラウドプラットフォーム
  • Django-Celery で非同期処理
  • Django Lessons Learned @BeProud

「使える Django 1.4」セッション

 「使える Django 1.4」セッションでは、djangoproject.jpの清原弘貴氏がDjangoの概要や最新リリース版であるバージョン1.4の機能などを、デモを交えながら紹介しました。特に1.4で導入された新機能「project template」については、Djangoのベストプラクティスが詰まった「django-skel」を例に解説しました。project templateを使ってノウハウを蓄積していけるということで、現在開発されている方だけでなく、これからDjangoを使い始める方にもぜひチェックしてほしいセッションとなっています。

使えるDjango1.4 from hirokiky

「Djangoを活用したM2Mクラウドプラットフォーム」セッション

 松村竜之介氏による「Djangoを活用したM2Mクラウドプラットフォーム」セッションでは、M2M(Machine-to-Machine、マシン間での相互通信)におけるDjangoの活用事例を紹介しました。M2M間でマッシュアップを可能とするプラットフォームを、Djangoとmongodb、そしてDjangoにNoSQLデータベースサポートを追加するdjango-nonrelの組み合わせで実現しています。Webサービス以外でのDjangoの利用ということで興味深い事例でした。

「Django-Celeryで非同期処理」セッション

 奈良英樹氏による「Django-Celeryで非同期処理」セッションでは、非同期処理の概要と、「Celery」および「Kombu」を用いたDjangoにおける非同期処理の実現例を紹介しました。インストールからDjango Adminによる非同期タスクの設定、テスト、運用管理、監視まで解説しています。とても丁寧な解説のため、これさえ読めばDjangoにおける非同期処理のすべてがわかります(発表スライド)。

「Django Lessons Learned @BeProud」セッション

 Ian Lewis氏による「Django Lessons Learned @BeProud」セッションでは、PyCon JP 2012の参加登録にも利用されていた「connpass」を含めとする、5年間のDjangoアプリ開発で得られた教訓が披露されました。Djangoアプリ開発においてつまずきやすい点や、開発を楽にするためのアドバイスが紹介されています。Djangoでの豊富な開発・運用のノウハウを共有して頂けるのは有りがたい限りです(発表スライド)。

(djangoproject.jp Kosei Kitahara

各フレームワークの開発者が登壇したパネルディスカッション「Webフレームワークパネル」

 PyCon JP 2012では、Django & Pyramid Con JP 2012のセッション以外にもDjangoやPyramidに関連するセッションが行われました。それが「Webフレームワークパネル」セッションです。 PythonのメジャーなWebフレームワークやアプリケーションプラットフォームがそろい踏みし、開発者やコントリビュータ諸氏が互いの長所と短所を熱く語り合いました。パネルにはFlaskの作者であるArmin Ronacher氏、Google App Engine開発者である松尾貴史氏、そしてDjangoのコントリビュータとして露木誠氏、Pyramidのコントリビュータとして小田切篤氏が登壇しました。

 セッションではまず各フレームワークの紹介があり、露木氏はDjangoがPythonのWeb開発事情を変えたと説明しました。Djangoには、たとえば世界各国の郵便番号に対応したバリデーションや71の国と地域に関するローカライズが含まれていて、かなりの細かさで面倒を見てくれること、実績多数でリーズナブルに安心して使えることを強調しました。

 小田切氏はPyramidには便利なライブラリこそ多く含まれていないものの、テストカバレッジは100%を維持し、ドキュメントのカバレッジも100%に近いくらいコア部分に集中して作り込まれたフレームワークである点を説明しました。また拡張性が高く、Python 3サポートも早々に終わっているというアドバンテージを紹介しました。

 この紹介の後にも多くの議論が交わされ、さまざまな角度で飛び交う技術的ツッコミの応酬に、会場からは何度も笑いや声援が起こっていました。

panel_s.jpg

 このセッションを終えて、露木・小田切両氏は次のようなコメントを残しています。

 露木氏:「Djangoに出会ってから7年、今回のパネルディスカッションを見に来てくださったエンジニアの大半がDjangoを知っているという事実にまず驚き、嬉しく思いました。パネルでは、どのフレームワークを使うかは状況次第という当然の流れの中、対応する状況が一番広いのはDjangoだろうということについての同意を勝ち取れたと思っています。」

 小田切氏:「Djangoはこれまでさまざまな問題を解決してきました。これからはPyramidが解決していきます。Pyramidは難しいという印象を持たれますが、その半分はSQLAlchemy の難しさ。Pyramidは依存ライブラリもイメージされるより少なく、安定したフレームワークです。」

 それぞれのフレームワークの強みや思想がよく分かるディスカッションだったのではないでしょうか。まとめとして、もう一度露木氏のコメントをご紹介しておきます。

 「各々メジャーなフレームワークであり、問題意識と解決方法に関して学んでおくと良いという発信もうまくできたとすれば、パネラーとして役に立てたのではないかと思います。今後、Djangoに限らず Python界が盛り上がって行く事を期待します。」

 「余談ですが、ゲストのRonacher氏を除くと皆付き合いが長く仲良しだからこそ、ほんの少し斧が飛びました。Ronacher氏もそんな雰囲気を察してくれたのではないでしょうか。Pythonコミュニティはコワくない事を付け加えておきたいと思います。」

 YouTubeでは 当日の様子も公開されていますので、この記事をお読みの皆さんも、ぜひ録画を観ながら自分や周囲に合ったフレームワークを考えてみてください。

(djangoproject.jp 道須利一)

Django & Pyramid Con JP 2012の運営について

 最後に、このイベントで何を伝えたかったのか、何を得たのかという話をします。DjangoとPyramidという対象的なフレームワークが合同でカンファレンスを開催した理由は、

  • 各フレームワークの良さ、特徴を知ってほしい
  • フレームワーク選定の参考にしてほしい

 という思いがあったからです。

pyramid_session_s.jpg

 よく見かける質問に、「Python でフレームワークを使うなら何が正解か」、「今、流行のフレームワークは何か」といったものがありますが、これで良いものができるのでしょうか。フレームワーク、ひいては言語を選定するうえで最も重要なのは「何を作りたいか」ということです。フレームワークを選定するの要因は「情報量」や「問題に対する適性」、「スキル」など様々ですが「作りたいもの」を第一に考えてフレームワークを選定すべきです。

 「流行のフレームワーク」を元に「何を作ろうか」と考えるようでは、フレームワークのミスマッチが起こってしまいます。そのためにも各フレームワークの特徴を知っておく必要があります。

 DjangoとPyramidが合同でカンファレンスを開催した理由は、お互いの良さ、特徴を知ってもらい、フレームワーク選定の参考にしてもらおう、というものです。djangoproject.jpの私としても、Pyramidについてよく知るきっかけになりました。きっと参加者の皆さまにもDjango、Pyramidそれぞれの良さが伝わったのではないかと思います。

併設イベントとして開催して得たもの

 Django & Pyramid Con JP 2012はPyCon JP 2012の「併設イベント」として開催されました。この併設イベントという試みは、各Pythonコミュニティの活性化とつながりの強化を目的として企画されました。この意義を最も体現できたのはDjango & Pyramid Con JPではないでしょうか。

 開催するにあたり、立ち見が出るほど人が集まるとは思っておりませんでした。どうやらDjangoやPyramidに興味のある方々は、私が思っていた以上にいらっしゃるようです。これはdjangoproject.jpやpylonsproject.jpとして非常に良い発見でした。

 いっぽう、Django & Pyramid Con JPを通して、djangoproject.jpは大きく変化しました。

tsuyukiandhiroki_s.jpg

 djangoproject.jpとしてDjangoに関するイベントは長らく開催しておらず、コミュニティの活動は停滞しておりました。しかしこのDjango & Pyramid Con JP 2012を機にコミュニティが活性化しつつあります。まず、今回のイベントを通してコミュニティの主要メンバーの交代と、djangoproject.jpのサイトリニューアルを行いました。

 さらに現在、道須を筆頭にDjango 1.4ドキュメントの翻訳が行われています。

 Django & Pyramid Con JP に参加してDjangoに興味を持った方、コミュニティに参加してみたいという方は、ぜひ翻訳などの活動を通してDjangoコミュニティを盛り上げていきましょう。Django & Pyramid Con JP 2012 を無事に開催できて嬉しく思っています。今後の活動にもご期待下さい。

(djangoproject.jp 清原弘貴)