日本と台湾のPythonコミュニティの架け橋に ―「PyCon Taiwan 2019」レポート

第1回 1日目:“Do you know PyCon JP?"がキーワード?! オープニング~LTまで

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

ランチ

PyCon TaiwanのランチはPyCon JPと同様のお弁当スタイルです。複数種類のお弁当が用意されており,好きなお弁当を取っていくスタイルです(結構余っていたようです⁠⁠。

お弁当

お弁当

簡単にどんな種類の弁当かの漢字の説明で,なんとなく牛か豚か鶏かくらいはわかるのですが,細かい情報がわからずなかなか選びにくかったです。おそらく3日間とも同じメニュー構成だったと思われますが,2,3日目に食べた韓国系の焼き肉弁当がおいしかったです。

「PEP 572: The Walrus Operator」―Dustin Ingram

Dustin氏はGoogleのDeveloper Advocateであり,Python Package Authority(PyPA)のメンバーでもあります。氏はPyCon JP 2019でも「Modern Development Environments for Pythonistas」というタイトルで発表をしていましたが,台湾では異なるタイトルでの発表でした。こちらの内容はUS PyCon 2019でも発表していたようです。

今回は期間が近いということもあり,このようにPyCon JPとPyCon Taiwanの両方で発表している人が結構います。

Dustin Ingram氏

Dustin Ingram氏

発表はPEP572の話に入る前に,PythonのGovernance(運営)についての話から始まりました。言語の最終決定者としてBDFLのGuido van Rossum氏がおり,PEPで言語仕様の提案が行われていることの説明がありました。自分の一番好きなPEPはPEP 566 Metadata for Python Sofotware Packages 2.1と言ってましたが,自身が作成者のPEPだからだそうです(笑⁠⁠。PEPはDraft(草稿)が議論を得てAccept(採択)されるとImplementation(実装)が行われます。また,すべてのPEPの判断をGuido氏が行うことは大変なため,BDFL Delegatesという仕組みで判断をGuido氏が他の人に委任することができます。

次にPEP 572のセイウチ演算子:=をいくつかの例を交えて紹介していました。以下はその一例で,上が既存の書き方で下がセイウチ演算子を使った場合です。

関数の呼び出し回数を減らす

foo = [f(x), f(x)**2, f(x)**3]

foo = [y:= f(x), y**2, y**3]

ストリームの処理

chunk = file.reads(8192)
while chunk:
    process(chunk)
    chunk = file.reads(8192)

while chunk := file.reads(8192):
    process(chunk)

しかし,この演算子は=とは同じように使えない場合がいくつかあり,それらも実例を交えて紹介していました。この部分は個人的にとても勉強になりました。

セイウチ演算子を使用できないパターン

(z := (y := (x := 0)))
a[i] := x
self.rest := []
(x := 1, 2)  # xには1がセットされる
total +:= tax

このセイウチ演算子の元となったPEP 572ですが,メーリングリスト上で非常に長い議論となりました。またさまざまなコアの開発者が意見を述べました。

そして2018年7月12日に,Guido氏がPEP 572をAcceptし,そのあとにGuido氏がBDFLをやめるというメールを出しました。当然ですがこれはPython界隈に衝撃的なニュースとして伝わり,さまざまな人がツイートしたそうです。

その後Python言語の仕様策定をどのように運用していくかの議論がはじまり,PEP 8000 Python Language Governance Proposal Overviewをベースにいくつかの運営方法が提案され,投票でPEP 8016 The Steering Council Modelが採用されました。2019年1月から2月にかけてSteering Councilメンバーの投票が行われ,5名のCouncilメンバーが決定しました。

この5名のメンバーによるキーノートがUS PyConで行われ,その模様は以下の記事でレポートしてあります。

PEP 572の技術的な話だけでなく,その周辺で起こったPythonの運営体制などについても触れた,興味深いトークでした。

(US PyConでのスライドですが,内容はほぼ同じです)

おやつタイム

おやつタイムは午前と午後に毎日提供されていました。甘い物もしょっぱいものもあり,また飲み物は基本的に砂糖入りとデブ活がはかどります……。

大量のおやつ

大量のおやつ

この時間に書籍の販売コーナーに寄ってみたところ,私の書いた『Pythonによるあたらしいデータ分析の教科書』の中国語版が置いてありました!! 誰かが購入してくれたらうれしいのですが……。書籍は全体的にディープラーニング系が多いかなという印象でした。

私の本が置いてあった!!

私の本が置いてあった!!

また企業ブースもまわってみましたが,京都に本社があるハカルスさんがブースを出していました。メンバーのニノさんとはPyCon APACのときに挨拶しており,ここで再会できました。CTOの染田さんは2日目に発表予定です。

HACARUSブース

HACARUSブース

著者プロフィール

鈴木たかのり(すずきたかのり)

一般社団法人PyCon JP,副代表理事,株式会社ビープラウド所属。

部内のサイトを作るためにZope/Ploneと出会い,その後必要にかられてPythonを使い始める。PyCon JPでは2011年1月のPyCon mini JPからスタッフとして活動し,2014年-2016年のPyCon JP座長。他の主な活動は,Pythonボルダリング部(#kabepy)部長,Python mini Hack-a-thon(#pyhack)主催など。

共著書に『Pythonによるあたらしいデータ分析の教科書(2018 翔泳社刊)』『Pythonプロフェッショナルプログラミング 第3版(2018 秀和システム刊)』『Pythonエンジニア ファーストブック(2017 技術評論社刊)』『いちばんやさしいPythonの教本(2017 インプレス刊)』などがある。

最近の楽しみはPython Boot Campの講師で訪れた土地で,現地のクラフトビールを飲むこと。2019年は世界各国のPyConでの発表に挑戦している。趣味は吹奏楽とボルダリングとレゴとペンシルパズル。

Facebook:takanory.net

Twitter:@takanory

Github:takanory