EuroPython3日目の様子をお伝えします。
この日のキーノートであったPythonの高速化についての深い話や、
キーノート:Python Performance: Past, Present and Future ―Victor Stinner
Victor Stinner氏はRed Hatで働いており、
過去
CPython
- 1997:Jython
- 1998:Stackless Python
- 2006:IronPython
- 2014:MicroPython
そしてPythonを高速化するプロジェクトとして、
- 2002-2012:psyco
(Armin Rigo) - 2007:PyPy
- 2009-2010:Unladen Swallow
(Google) - 2014-2017:Pyston
(Dropbox) - 2016-2017:Pyjion
(Microsoft)
Pythonを高速化するには、
ここからは、
- Unladen Swallow
(2011) - Googleのプロジェクト。多くのGoogleのPythonコードではパフォーマンスは重要な問題ではないため終了。
- Pyston
(2017) - Dropboxのプロジェクト。パフォーマンスに関するコードはGoのような他の言語に切り替えた。互換性の維持に多くの時間を割いた。
現在
PyPyはCPythonと置き換え可能で、
次に、
別の解決策としてCythonも紹介されていました。CythonはC拡張をPythonと似た言語で簡単に記述する方法です。複数のPythonバージョンで動作します。
NumbaはPythonとNumPyの一部処理をJITで高速化するツールです。GPUなどを使用して高速化が可能です。
また、
未来
今後のPythonのパフォーマンス向上についていくつか紹介されていました。
現在のC APIにはいくつか課題があるため、
CPythonのGCをTracing GCに変更するそうです。Tracing GCは多くのモダンなプログラミング言語やPyPyで採用されています。ただし、
サブインタープリタはPEP 554 -- Multiple Interpreters in the Stdlibで提案されたものです。1つのCPythonプロセスの中で複数のインタープリターを動作させることにより、
Pythonは遅いとよく言われますが、
The Story of Features Coming in Python 3.8 and Beyond ―Andrey Vlasovskikh
Andrey Vlasovskikh氏
話のメインとなるPytnon 3.
まずはPEP 572 -- Assignment Expressionsです。PEP 572は以下のように:=
という演算子で代入式を実現します。
このPEP、x := expr
ではなく(expr as x)
という書き方で提案されていたそうです。全体を()
で囲んで変数がサブローカルスコープになるという複雑なものだったが、
また、
次に紹介したのはPEP 570 -- Python Positional-Only Parametersです。これは関数をdef pow(x, y, z=None, /):
のように定義すると/
の前の引数は位置指定しかできなくなります(``pow(x=10, y=20)と呼ぶとエラーになります)。なぜ区切り記号が/
なのかというと、
また、Protocol
、Literal
、Final
、TypedDict
が紹介されました。新しいTypeはGitHubの/python/
Python 3.
Python 3.
- 発表スライド:The Story of Features Coming in Python 3.
8 and Beyond この日の帰りにAndreyに声をかけたことろ、
私のことを覚えてくれていました。PyCon JP 2016のトートバッグがノートPC入れにちょうどいいらしく、 愛用しているそうです (この日も肩から下げていました)。 「またどこかのPyConで会いましょう」 と話して別れました。 Enhancing Angklung Music Rehearsals with Python ―Trapsilo Bumi
Trapsilo Bumi氏はインドネシア出身で日本のHENNGEで働いている開発者です。私はTrapsilo氏と面識はないのですが、
日本からのスピーカーと楽器関連ということで発表を聞きに行きました。 アンクルンというインドネシアの民族楽器を演奏するときの、
楽譜を生成するツールを作成したという話です。アンクルンは1つの楽器で1つの音しかだせません。そのため一曲を演奏するためには1人が何個も持ち替えたりして演奏する必要があります。ときには1人で複数個を持って演奏することもあるそうです。 で、
楽譜からどのように演奏者にどの音を割り振るかということをPythonで計算して出力しているようです。openpyxlで最終的なスプレッドシートを作成したり、 Collision Tableを作成して同時に演奏する音の数を考えたりとかするそうです。なかなか計算は大変そうだなと思いました。 トークの終了後は当然音楽に興味のある参加者が多く、
アンクルンを演奏させてもらったりしていました。 Sprint Orientation
最後のライトニングトークの前に、
明日以降のSprintの説明がありました。Sprintは短期の開発イベントです。以下のようなテーマでSprintが開催されるよということが、 各Sprintオーナーから説明されていました。 - CPython、
pewpew、 PyPy、 Best Python LTs, EuroPython Webサイト、 PyGame、 Bokeh、 pytest、 MoinMoin Wiki、 pandas、 scikit-learn
Day 3 ライトニングトーク
3日目のライトニングトークで面白かった物をいくつかピックアップして紹介します。
20時からライン川で泳ぐよというお知らせ
バーゼルではRhine swimming in BaselというWebサイトも用意しており、
ライン川を泳いで下るというアクティビティがあるそうです。荷物を入れる専用のフロートも売っているそうです。 Tour de Snake: over the mountains edition
Day 1のライトニングトークと同じ人かと思っていたら別の人でした。ミラノからバーゼルまで自転車で3人で来たそうです。
Why I/
You need to go to EuroPython! 世界中のPyConでスタッフをしているNoah氏による、
アジアを中心としたPyConの紹介です。Noah氏安定のタイムオーバーで 「あと10秒」 と司会に言われ、 そこから超早口で話し始めると場内は大ウケでした。 flynt
.format()
や%
で書かれている文字列をf-stringsに書き換えるツールです。PyPIで公開されています。普通に便利そうだなと思いました。Closing
最後はクロージングです。明日からSprintがあるという説明がありました。EuroPythonは1,100~1,200名ほどの参加に対して16名で運営をしていたそうです。次に、
EuroPython 2020のアクティブなメンバーを募集しているという話がありました。12ヵ月で100時間くらいの作業が必要だそうです。そして最後に新しいboardメンバーを紹介してイベントが終了しました。 アフターパーティー
このあとパーティーがないかなと情報を探していると、
kiwi. comが主催するパーティーに参加できました。彼らが宿泊しているアパートの屋上にプールがあり、 そこでBBQパーティーが行われていました。素晴らしいロケーションです。 ここでもいろいろな参加者と話をしました。
「今度彼女と日本に行くんだ」 という人にはおすすめのラーメン屋を聞かれました。最近ラーメンを食べてないので答えられませんでしたが…。 後半になるとテンションの上がった参加者がプールで泳ぎ始めたのですが、
「ウェーイ」 「ヒャッハー」 と騒いでいたらオーナーらしき人がきてガッツリ怒られていました。すぐ隣に住宅があるので、 確かに怒られるなと...そのあとは多少静かに騒いでいました。 ロケーションは最高なのですが用意されているビールは普通の缶ビールしかなかった
(贅沢) ので、 クラフトビールを扱っているBierrevierに向かいました。ただ、 やはりスイスではあまりクラフトビールは作られていないようで、 クラフトビール的にはクリーブランドが圧勝だなと思いました。 次の日はスプリントには行かず買い物やパレードを見たり、
Basel Tattooというコンサートを見て過ごしていました。夕方に 「スプリントを終えた人たちでKlaraというフードコートで飲んでいる」 とNoah氏に連絡をもらったので、 Volta Bräuというブルーパブでビールを飲んでから移動して合流しました。 そこにはさまざまなメンバーがいました。最後の方は何を話したかあんまり覚えていませんがw、
EuroPython Societyの新Boardメンバーが集まっているテーブルでイベント運営とかの話をしていたような気がします。一度だけの出会いだとお互い忘れてしまうので、 またどこかで彼ら彼女らと再会できるといいなと思いました。 まとめ
はじめて参加したEuroPythonのレポートは以上で終了です。ポスターを一人でやりきったり、
スイスに引っ越した知り合いに久しぶりに会って元気な顔を見たりと、 楽しく刺激的に過ごすことができました。 来年のEuroPythonの開催地は未定ですが、
また参加していろいろな人と再会したいなと思うイベントでした。次回開催地はビールが盛んな地域がいいなー。 - CPython、