「PyCon APAC 2016 in Korea」参加レポート

第2回 カンファレンス2日目 ~Flask開発者・PyPy開発者によるKeynote~

この記事を読むのに必要な時間:およそ 3 分

読者の皆さんこんにちは,末田 卓巳です。第2回となる今回は,韓国で開催されたPyCon APAC 2016 in KoreaのConference Day 2日目の様子をお届けします。

Armin Ronacher氏(Flask開発者)による基調講演

Openingの後,まずはじめにArmin Ronacher氏のKeynoteがありました。 Armin Ronacher氏はmitsuhikoというハンドルネームでも知られ,Flaskと呼ばれる簡素なWebフレームワークの開発で有名な人物です。

Keynoteを務めるArmin Ronacher氏

Keynoteを務めるArmin Ronacher氏

Keynoteは題して「Letters from the Battlefield」⁠戦場からの手紙)⁠開発の現場において,Pythonの言語仕様を念頭に置きつつどのようにコードを書くと良いかが主に語られました。

Ronacher氏ははじめに「デベロッパはコードの変更を怖がってはいけない。それはつまり,将来の大きな変更が快適に行えるようなコードを書かなければいけないということだ。」と切り出し,プログラムが内部に持つ状態(state)を適切に扱うことで変更に強いコードが書けることを説明しました。

Pythonにおいてimport文は外部のモジュールを現在のコードに取り入れる操作です。モジュールは内部に状態を持ち,常に一定とは限りません。そのうえ状態をモジュールの外から隠すこともできます。つまり,モジュール内のオブジェクトに操作が加わり状態が変わると,後で意図しない動作をきたすことがあります。Ronacher氏はこのように前置きした上で,あるモジュールがimportされる際は自分自身を含むパッケージ全体を一気にimportし,状態から起こるバグを防ぐテクニックを紹介しました。

モジュールがimportされる際,自分を含むパッケージ全体をimportする(スライドより)

モジュールがimportされる際,自分を含むパッケージ全体をimportする(スライドより)

また,モジュールのAPIを使う際にwith構文でスコープを分離しコードを実行,その後に状態をクリーンアップした上でスコープを抜けるという流れを理想的な状態管理の例として紹介しました。with構文のスコープより外でモジュールの状態が変更されるのを防ぐことで,状態が影響する範囲を限定でき,結果的に見通しの良いコードになるということですね。

with構文内で表示言語を指定する(スライドより)

with構文内で表示言語を指定する(スライドより)

状態について語った後はコードの持つコンテキスト(文脈)をわかりやすくするためのアドバイスに移りました。プログラマは,コードを初めて見る際にそのコードのコンテキストを理解する必要があります。氏曰く,理解しやすいコードは “grep-able” な(検索しやすい)コードであり,デコレータや明示的かつ明確な名前付けがこれを助けると語りました。同時に,クラスによる独自の演算子オーバーロードはデバッグが難しくなるため避けるべきとの注意もなされました。

最後はWebフレームワークであるDjangoを使って,今まで紹介されたテクニックを実践する例が紹介され,Keynoteは終了しました。

Maciej Fijałkowski氏(PyPy開発者)による基調講演

本カンファレンス最後のKeynoteは,Pythonで書かれたPythonインタプリタであるPyPyを開発しているMaciej Fijałkowski氏によるものでした。ここでは多くのOSSがはらむ資金問題とその調達方法についての詳細な解説がなされました。

Keynoteを務めるMaciej Fijałkowski氏

Keynoteを務めるMaciej Fijałkowski氏

Fijałkowski氏はGoogleのトップページを取得するサンプルコードを映し,これを構成するパッケージや技術を挙げていきました。たったこれだけの処理を行うにも,Pythonそれ自体,Requests(Pythonライブラリ)⁠PIP,OpenSSL,GCCといったOSSが使われていて,Webサイトの取得に限らずこのような例は多くあります。つまり私たちはOSSに依存していることがわかります。

私たちの暮らしでは道路や電車といったインフラが使われますが,インフラもまたOSSの力を借りていることからOSSはまさに世の中全体を支える存在となっています。一方でインフラの保全や拡張のために徴収されている料金はOSSにもたらされることはありません。このような背景から,Fijałkowski氏はOSSが資金を調達することの正当性を訴えました。

ではどのように資金を調達するのか,その代表的な手法について続けて解説がなされました。パトロンになる余裕のある大企業に就職,EUなどから調達,SaaS,クラウドファンディングなどさまざまな手法がありますが,クラウドファンディングを試すも資金が集まらなかったりと一筋縄ではいかなかったそうです。最終的にうまくいったのはPyPyの商業的なサポートであり,Fijałkowski氏はBaroque Softwareという小さな企業を立ち上げ,これを行っているそうです。

OSSというインフラを収益化するために積極的に働きかけようというメッセージを最後に発信し,Keynoteは終わりました。

著者プロフィール

芝田将(しばたまさし)

関西在住の学生プログラマ。Pythonが好きで,研究やWeb開発のアルバイトに使用。また趣味としてKobinFeedyなどのPythonのライブラリ・フレームワークを開発・公開している。 これまで日本・台湾・韓国のPyConに参加し,いずれもLightning Talkを行ってきた。

Twitter:@c_bata_
Github:@c-bata


末田卓巳(すえだたくみ)

千葉県在住,FULLER株式会社へ勤務。プロダクト実装・社内ツール開発・研究・趣味と幅広くPythonを利用している。 最近はネットワークルータなど組み込み環境におけるPythonの可能性を模索している。 PyConへの参加は2015年のPyCon JP以降2回目。

Twitter:@puhitaku
Github:@puhitaku


塚本英成(つかもとひでなり)

千葉県在住,FULLER株式会社のデザイナー。前職がエンジニアであったバックグラウンドもあり,現在も趣味でPythonを利用している。 PyCon JP 2016のデザイナースタッフでもあり,PyCon JP 2016のデザイン・制作にも携わった。

Twitter:@denari01
Github:@denari

バックナンバー

「PyCon APAC 2016 in Korea」参加レポート

コメント

コメントの記入