PyCon TW 2023 カンファレンスレポート

こんにちは。PyLadies Tokyoです。2023年9月に開催されたPyCon TW 2023というイベントに参加してきました。今回はこのイベントの模様をレポートします。

PyCon TW 2023とは

PyCon TW 2023とは、台湾で開催されるPythonのユーザが集まるカンファレンスです。今年は12年目となり、台北で開催されました。

イベント概要

PyCon TW 2023公式サイト https://tw.pycon.org/2023/en-us
開催日 2023年9月2日~9月3日
会場 台湾、台北、Academia Sinica Humanities and Social Science Building
参加費 Individual Regular Stage NT$ 3,790 ⁠そのほか購入期間・チケット種別により価格差あり)

各セッションは中国語か英語で行われます。どちらの言語で発表し、どちらの言語でプレゼンテーション資料が作成されているのかが事前にWebsite上に記載されており、海外からの参加者にもわかりやすかったです。

吹き出しアイコンが喋る言語、四角いアイコンが資料で使われている言語。喋る言語と資料で使われる言語が異なる場合もある
吹き出しアイコンが喋る言語、四角いアイコンが資料で使われている言語。喋る言語と資料で使われる言語が異なる場合もある

PyCon TW 2023が開催される日程にちょうど台風が台湾に近づいており、直前まで「政府からのアナウンスによってはキャンセルもあり得る」という通知が主催者側から発布されていました。しかしながら日頃のPythonユーザのみなさんの行いがよかったのか、我々海外勢の到着日からカンファレンス開催、そして帰宅まで大きな影響を受けることなくイベントが開催されました。

「毎日天気予報とにらめっこしていたよ」というスタッフのみなさまのお話。お疲れさまでした。
「毎日天気予報とにらめっこしていたよ」というスタッフのみなさまのお話。お疲れさまでした。

カンファレンス1日目

近年毎年同じ場所で開催されているというPyCon TW。Academia Sinicaという学術研究施設は最寄り駅から20分ほど歩いた場所にあります。今年は最寄駅(南港駅)から普通の路線バスを貸し切りにしたシャトルバスが運行していました。我々PyLadies Tokyo一行はこのバスを利用して会場まで向かいます。雨が降っていましたが、このバスは会場の目の前まで行ってくれるので、濡れることなく会場へ到着できました。

路線バスが貸し切り!
路線バス貸し切り!

受付を済ませて参加証をもらいます。参加証には自分で名前を記載します。イベント内で出会った人との自己紹介に便利ですね。

PyLdaies Tokyoチームのネームタグ
PyLdaies Tokyoチームのネームタグ

イベントのオープニングでは、今回のイベント参加者数と、どこから来た人たちなのかの情報が表示されました。約560人の参加で、台湾の方が多いことはもちろんですが、海外からの参加者も一定数いることがわかります。 日本からの参加はなんと19名。そのうち4名は登壇者です。多いですね~。

国別の参加者数発表
国別の参加者数発表

[keynote]The snake of Theseus by Pablo Galindo Salgado

カンファレンス1日目のkeynoteは、Pablo Galindo Salgado氏。Pablo氏はCPythonのコア開発者であり、Python 3.10および3.11のリリースマネージャーをしている方です。

もともとは現地にて登壇予定だったのですが、事情により来れなくなったため、あらかじめ収録されたビデオによるトークとなりました。ビデオによるトークの後は、実際にPablo氏が中継で会場に参加し、質問に答えていました(あちらは朝の4時だったようです!⁠⁠。現地で直接お話しを聴けなかったのは残念でした。けれども事前収録であったゆえに、字幕が付いていました。Pablo氏も「早口でごめんね」と言ってましたが、英語が早すぎて筆者は全く聞き取れなかったため、字幕に大変助けられました。

本keynoteは「この船のすべての部品を交換しても、それは同じ船といえるのか?」というテセウスの船というパラドックスになぞり、Pythonコードが全て入れ替わってもそれはPythonと言えるのか、と問題を呈し、Pythonコードの中身の変化とこのあとリリース予定のPython 3.12、そしてその先に追加される予定の機能に関してのお話しでした。

最初追加されたPythonコードが年々減ってきている様子を表すグラフ
最初追加されたPythonコードが年々減ってきている様子を表すグラフ

直近でPythonに新しく取り入れた機能としては、主に以下の3つのトピックに関してPEP(Python Enhancement Proposal:Pythonは大きな変更を行う場合、PEPで提案します)とともに紹介していました。

LL(1)パーサーからPEGパーサーへ
PythonではもともとLL(1)パーサーが使用されていましたが、LL(1)パーサーだと見分けられないパターンがあるため、PEP 617 – New PEG parser for CPythonPEGの提案によりPython 3.9からPEGパーサーに変更されています。さらに、PEG パーサーに変更したことに合わせて、新しい文法としてソフトキーワードが使用できるようになりました。
PEGパーサーに関しては、Python 3.10から導入されたBetter error messagesの深掘り の記事でも紹介されています。興味がある方は参照してみてください。
型ヒントの導入
Pythonに型ヒントを導入したことと今後の展開の話題で、以下のPEPとともに紹介していました。
GIL(Global Interpreter Lock⁠グローバルインタプリタロック)からの脱却
Pythonではスレッドを利用して複数の処理を同時に実行することができますが、GILの制約のためにCPUバウンドな処理では実際にはその恩恵を受けることができません。このGILを今後5年くらいかけてなくしていく、という話題でしたPEP 703 – Making the Global Interpreter Lock Optional in CPython⁠。GILなしバージョンだと、フィボナッチ数列の計算が20倍高速になるそうです!

このように、Pythonは新しい機能を取り入れて進化し中身は変わってきているが、⁠それでもPythonはPythonである(Python is still Python⁠⁠」と最後に締めくくっていました。

(レポート:杉田)

Asyncio Evolved: Enhanced Exception Handling with Python 3.11 TaskGroups by Junya Fukuda

日本から参加された福田隼也さんの発表です。

2022年10月にリリースされたPython3.11に追加されているasyncio.TaskGroup()の紹介セッションで、特にasyncio.gather()で実装していたものをasyncio.TaskGroup()を利用することで、堅実で安全な非同期コードの書き方ができるというお話が印象的でした。

asyncio.gather()では、同時に発生した例外を補足するのが困難でしたが、asyncio.TaskGroup()を使うと同時に発生した例外を補足できます。また、asyncio.TaskGroup()はコンテキストマネージャーを抜けるタイミングで未完了のタスクをキャンセルするので、例外発生時にタスクがキャンセルされずに残るということもなくなるのを知ることができました。

詳しくは、Python 3.11の新機能:asyncio.TaskGroupを使った予測可能でより安全な非同期処理 の記事でも紹介されていますのでチェックしてみてくださいね。

福田さん。keynoteと同じ一番大きなお部屋での登壇です
keynoteと同じ一番大きなお部屋での登壇です

(レポート:大村)

SimpleArray between Python and C++ by Yung-Yu Chen

PyCon TW 2012(PyConTW初回)のFounderでありChairであるYung-Yu Chenさんの発表です。

C++で簡単な配列システムを実装し、それをPythonから使うことにより実装をより高速化するというお話でした。

筆者は「計算などの実行速度を速くしたいなら、NumPyを使えばいいんじゃない」と考えて思考停止していました。しかしながらYung-Yuさんは、Pythonの配列とNumPyの配列、C++で実装した配列を使った場合のそれぞれで測定した実行速度の比較を行っていました。Yung-Yuさんの実験では、C++の配列を使ったほうがNumPyの2倍ほど実行が速くなったそうです。普段、筆者自身はそこまでスピードが必要な実装はしていないので、C++の配列を使うことなど考えたこともなかったのですが、Yung-Yuさんの発表を聞いて、そんなに難しい実装じゃないならチャレンジしてみたいという気持ちになりました。

本セッションの最後には、⁠実装を高速化したいなら配列について考えよう」⁠スピードは王様」⁠C++を恐れないで」⁠UIとしてはいつもPythonを使おう」の4つのアドバイスをくださいました。

Speed is king!
Speed is king!

(レポート:大村)

セッション終了後のLightning TalkとPyNight

今回のイベントでは1日目・2日目ともにその日のセッション終了後、Lightning Talkの時間がありました。

フィリピンから参加したZorexさんは、音楽作成モジュールmusicpyの紹介を歌唱付きデモで行い、会場からは大きな歓声が上がっていました。musicpyはコード進行と楽器、BPMの指定をすることで曲を演奏することができるため、作曲等にも活用が可能だそうです。

このレポートの執筆者の一人でもあるKame-chanは、10月に東京で開催されるPyCon APAC 2023の紹介を行いました。その他、PyCon TWのスタッフからのPyCon TWグッズである帽子や靴下、ピンバッジのPRなどもありました。

今年のPyCon APACは日本でやります!みんな来てね! のLT
今年のPyCon APACは日本でやります!みんな来てね! のLT

1日目の最後はPyNightで締めくくりでした。PyNightは参加者同志で交流できるパーティで、ピザやソフトドリンクが提供されました。ピザは日本で食べたことのない、かつお節味でした!お好み焼きのような味でとてもおいしかったです。

ピザに群がる参加者
ピザに群がる参加者

(レポート:杉田・赤池)

カンファレンス2日目

2日目も雨と風にまみれながら会場へ。危ぶまれていた台風もだいぶ南にそれ、2日目も予定通りの日程で開催されました。

從啟程到回歸都是 Python 的冒險旅程 by Yen-lung Tsai

カンファレンス2日目のKeynoteは蔡炎龍さんによるもので、蔡炎龍さんのプログラミングとの出会いのストーリーと機械学習・AIの基本的な説明がありました。

こちらは中国語での発表でしたが、冒頭から「発表は中国語だが、常に英語でもわかるようにコードなど資料にしているので、中国語がわからない人でもわかるようになっていると思います」とコメントし、和やかな雰囲気で始まりました。

AI・機械学習についての説明では、画像認識の例をもとに、どのようにラベル付されたデータを分類していくかについての説明から始まり、Softmaxや層の作成方法、生成AIをどのように学習させるのかについて、デモを交えて行われました。

初心者にやさしいセッションでした
初心者にやさしいセッションでした

(レポート:赤池)

(PythonPH) One Does Not Simply Create a Lasting Tech Community by Matt Lebrun, Micaela Reyes

このセッションは、PythonPH(Python Philippines)コミュニティ会長のMatt LebrunさんとMicaela Reyesさんの共同講演でした。お二人がコミュニティを運営する中で直面した課題について、どう解決に向けて取り組んでいるかといったお話でした。

他の地域のコミュニティ運営方法、気になりますよね
他の地域のコミュニティ運営方法、気になりますよね

PythonPHでは主な取り組みとして、新しく加わったボランティアメンバーに対して、個人的な成長や目標達成に対するサポートを提供するために、コーチングやバティシステムを導入しているというお話が印象的でした。

コーチングやバディシステムとは具体的に何をするのか?という質問があがり、ビデオ通話もしくはコーヒーを一緒に飲みに行き、たくさんお話しするといったことを挙げられていました。

筆者たちはPyLadies Tokyoの運営に携わっていますが、特にコロナ禍になってから、スタッフやPyLadies Tokyoのメンバーと話す機会が減り、⁠実際に会ってお互いにいろいろと(コミュニティだけの話に限らず)お話しすることは大切だよなー」と感じていたので、より実感をもって聴くことができました。

また、スタッフのバーンアウトの対処法の話もありました。健康と仕事、生活、コミュニティのバランスを維持するためには、時には断る勇気を持つべきであること、必要に応じて管理業務などを外部にアウトソースすると話されていました。このような考え方も確かにあるな、と新たな視点を得ることができました。

このような他国のコミュニティが抱えている問題や、実際に取り組んでいることを知る機会がなかったので大変参考になりました。
⁠レポート:杉田)

當AI遇上財經-利用Graph Neural Network分析財經市場 When AI Meets Finance: Using Graph Neural Network to Analyze Financial Market by William Chang

こちらのセッションは、資料が英語、発表言語は中国語の発表で、床に座る参加者が出るほど多くの人が集まっていました。

本セッションでは3つのトピックが紹介されていました。

  • 株式などの市場経済の時系列データをGNNを利用して分析する方法
  • オープンデータとして公開されている株式市場や取引情報をPythonを利用して取得する際のTips
  • PyTorch Geometricを使用したGNNと他のニューラルネットワークを組み合わせたモデルとその他のモデルの比較
翻訳アプリを使えば中国語セッションも大丈夫!
翻訳アプリを使えば中国語セッションも大丈夫!

(レポート:赤池)

ブースの様子

会場の通路には、スポンサー企業によるブースや、PyCon TWが用意したゲームのブースがありました。このブースゾーンも多くの人が訪れて盛り上がっていました。また、全てのスポンサーブースとゲームブースを回ってミッションを行うと色々な賞品がもらえるイベントが開催されていました。

スポンサーブースでのミッション(これは神経衰弱のようなゲームでした)
スポンサーブースでのミッション(これは神経衰弱のようなゲームでした)

筆者は全てのブースを回れませんでしたが、PyCon TWのシールをいただきました。このシールは4つ以上の企業を回るというミッションをクリアすることでもらえるものです。

ブースめぐりスタンプカード
ブースめぐりスタンプカード

(レポート:大村)

オープンスペース

2日目の午後にオープンスペースという企画が用意されていました。オープンスペースとは、通路にテーブルと椅子だけ用意され、参加者が主体となってテーマを出し合い、自主的にハンズオンや議論などを行うものです。アンカンファレンスとも呼ばれます。

各テーブルで熱い議論が行われていました。台湾のエンジニアのみなさんが集まって議論していましたが、とても熱く、時には立ち上がるほどに白熱していました。エンジニアのエネルギーを感じました。

PyCon JP TVのスタッフもスペースを使って、PyCon TWに来ていた人のインタビューを取っていました。このインタビューは PyCon JP TV #32: PyCon Korea、PyCon Taiwan 2023振り返り - 2023-09-08 で使われていますので気になる方は見てみてくださいね。

オープンスペース大盛況
オープンスペース大盛況

(レポート:大村)

カンファレンス終了後

2日間のカンファレンス終了後、PyCon TW 2023の登壇者でもあるYung-Yu Chenさんを中心とした台湾のみなさまが、日本からの参加者との交流会としてunofficialなディナー会を企画してくれました。クラゲの前菜、鶏を丸々12時間以上煮込んで作った濃厚スープ、甘辛く味付けされたポークリブなど台湾料理をみんなで楽しく会話しながらいただきました。⁠10月27日から日本で開催される)PyCon APAC 2023に行くよ!」などの会話が飛びかい、またすぐ会えることを楽しみにしてお別れしました。また来月!

ディナー会参加メンバー集合写真
ディナー会参加メンバー集合写真

おわりに

PyCon TW 2023の雰囲気はお楽しみいただけたでしょうか。英語セッションの数も比較的多く設定されていますし、なにより日本から比較的近い場所にあることから、毎年日本からの参加者も多いイベントです。今回はPyLadies Tokyoとしても初めてツアーを企画し、5名の参加、うち2名は初めての海外カンファレンスとなりました。

「海外カンファレンスに興味あるけれど、一人だと不安……」と思い悩んでる方がいたら、ぜひ初めての海外カンファレンス参加をPyCon TWから始めてみませんか。日本のPythonコミュニティの多くはきっとみなさんの海外カンファレンス参加をサポートしてくれますよ!

Team Japan!
Team Japan!

(全体概要文・構成:石田)

おすすめ記事

記事・ニュース一覧