PyCon US 2023 参加レポート

#01PyCon US 2023への道、カンファレンス前夜祭から1日目セッションへ

鈴木たかのり@takanoryです。2023年4月後半にアメリカのソルトレイクシティで開催された、プログラミング言語Pythonの国際カンファレンス「PyCon US 2023」に参加してきたので、その様子をレポートします。

PyCon US 2023とは

PyCon USはアメリカで開催されるPythonに関するカンファレンスです。毎年アメリカの各都市で開催され、今年は昨年(2022年)と同じユタ州のソルトレイクシティで開催されました。

PyCon US 2023のイベント概要は以下の通りです。

URL https://us.pycon.org/2023/
日程 チュートリアル: 2023年4月19日(水⁠⁠、20日(木)
カンファレンス: 2023年3月21日(金⁠⁠~23日(日)
スプリント: 2023年4月24日(月⁠⁠~27日(木)
場所 米国 ユタ州、ソルトレイクシティ
会場 Salt Palace Convention Center
参加費 個人: 400 USD、企業: 750 USD、学生: 100 USD
主催 Python Software Foundation(PSF)
PyCon US 2023 Webサイト
PyCon US 2023 Webサイト

なお、筆者はPyCon US 2019にも参加しています。そのときの様子は以下のレポートを参照してください。

レポートの1回目はカンファレンス前日から1日目のセッションの様子を中心にお伝えします。

カンファレンス前日まで

筆者は時差の影響も考えて、カンファレンスの2日前に現地入りしました。ソルトレイクシティへの直行便はないため、成田からサンフランシスコを経由してソルトレイクに到着です。

ソルトレイクシティの空港は「地方の国際空港だよなぁ」と思っていたんですが、とてもきれいで広々としていました。直前の乗り換えのサンフランシスコの空港の方がくたびれた感じでした。

広くてきれいなソルトレイクシティ空港
広くてきれいなソルトレイクシティ空港

ホテルは一緒にPyCon USに参加した吉田さん@koedoyoshidaと同室です。チェックインをしたら晩ご飯がてら、吉田さんと近所のPubSquatters Pub Breweryにビールを飲みに行きました。写真は明るいですが、これでも20時ちょっと前です。夏時間ということもありますが、感覚がバグります。

Squatters Pub Brewery
Squatters Pub Brewery

どういうビールがつながっているかを、そこにいた現地の人が教えてくれました。なんと、その方があとで「自分のおすすめビール4種」の試し飲みセットをおごってくれました。びっくりです!!こういう出会いも旅の醍醐味の1つだなと思います。

私も、日本に来ている外国の人に優しくして、隙あらば試し飲みセットをおごってみたいなと思いました。

おごっていただいた試し飲みセット
おごっていただいた試し飲みセット

受付からOpening Receptionへ

カンファレンス前日はまずは会場に行って受付を済ませます。ワクチンの接種証明を見せてから、受付で氏名を確認すると名札が印刷されます。

名札を受け取った
名札を受け取った

その後市内を散歩して買い物などしてから会場に戻り、Newcomer Orientationという初参加者向けのイベントに参加します。会場はこんな感じで、この部屋でキーノート、ライトニングトークなどが行われます。

メインとなる部屋
メインとなる部屋

Newcomer Orientationではスタッフからどのように振る舞うとよいかという話がされました。いろいろな人に話しかけようといった話がされていました。

Newcomer Orientation
Newcomer Orientation

オリエンテーションが終わるとそのままOpening Receptionです。Opening ReceptionではスポンサーブースがあるExpo Hallをビールなどを片手に見て回ります。筆者もいろいろなブースを回って話を聞いたりし、お土産になりそうなグッズを入手しました。

Opening Reception
Opening Reception

その後は日本から来たメンバーで昨日とは違うビールの店Red Rock Brewpub and Restaurantで夕食をとりました。予想通りですが、料理の量が多いです。一人一品頼んだら、もうお腹いっぱいです。

料理の量が多い
料理の量が多い

Day 1 スタート

さてカンファレンス1日目です。カンファレンス期間中は毎日朝食が出ます。助かりますね。また、食事は全てベジタリアン用のメニューも用意されています。

1日目の朝食はブリトー
1日目の朝食はブリトー

オープニング

カンファレンスのオープニングはConference ChairであるMariatta@mariatta氏からのあいさつです。冒頭にPyCon USの20年の歴史を振り返る動画が紹介されました。今年2023年はPyCon USが2003年に初開催されてから20回目となります(2020年は中止⁠⁠。

Mariatta氏によるオープニング
Mariatta氏によるオープニング

最初に参加者、スタッフ、ボランティア、スポンサーなどへの感謝が述べられました。参加者はこの時点で2,000名ほどだそうです。その後自らのストーリーが語られました。Mariattaさん自身は2015年にPSFによる参加費のサポートによってPyCon USに参加し、そこで自分の人生が変わったそうです。そこでは女性がたくさん発表しており、自分もそうなりたいと思い、その後自分も発表できるようになったり、Pythonのコアデベロッパーとなっていったそうです。

そしてPyCon US 2023のイベントの紹介が行われました。キーノートスピーカー、スペシャルゲスト、89のトークは全て生中継すること、PyLadies Auction、Open Spacesなどなど。またモバイルアプリの紹介もありました。このアプリはタイムテーブルの確認にとても便利でした。

なお、PyCon US 2023ではマスクの着用は必須です(アメリカの市内はマスクをしている人はあまりいません⁠⁠。注意を受けたら名札をスキャンして1ストライク、3回スキャンされたらアウトとなって退場になるそうです。

Keynote: Ned Batchelder

オープニングのあとは、Ned Batchelder@nedbat氏によるキーノートです。Ned氏が初めて参加したPyCon USは2007年で、そのときのPythonの作者であるGuido氏のトークはPython 3.0についてのものでした(Python 3.0は2008年12月にリリースされています⁠⁠。

Ned Batchelder氏
Ned Batchelder氏

このトークでは「人」についての話がされました。

人は不確かで複雑です。人には標準が存在しなく、みんな違います。また、ドキュメントもないし、予測不可能です。予測不可能なのは隠された状態を持っていることが原因でもあります。また、人が発するエラーメッセージは明確ではありません。

そんな人に対してのAPIユーザーガイドを紹介するということがこのトークの目的です。ただし、自身は心理学者ではなくエンジニアのため、自身の経験に基づいています。多くの人とのやりとりをリバースエンジニアリングし、うまくいかなった議論のトレースバックをもとにどうすればうまくいったかを考えたものに基づいています。

人とやりとりするメッセージには2つの部分「情報」「感情」から構成されています。感情を入れていないメッセージでも人は感情を見つけます。

よりよい対話をするために以下の5点が挙げられました。

  • 「イエス」と言う
  • より多くの言葉を使う
  • 言葉を慎重に選ぶ
  • 謙虚であること
  • 明示的であること

そして、それぞれについて実際にありそうな会話の例を元に、こう回答するとよいと思うという説明がされました。1つ例をあげると以下のようなやりとりです。これは「ノーと言わない」という例です。

  • Aさん「この配列の長さはどうやったら取得できますか? arr = [1, 2, 3]
  • Bさん「それは配列じゃないです」

こう言われるとAさんは「自分はバカだ!」と思ってしまい、よくない相互作用となります。この場合は以下のように回答することがおすすめされました。

  • Bさん「リストの長さは len(arr) で取得できます」
  • Aさん「なるほど、リストって言うんですね、ありがとう!」

このように、各注意点ごとにどのようなやりとりをすると、よりよい対話となるかという例があげられていきました。

筆者もこのトークを「わかるなー、確かにあるなー」と思って聞いていました。自分自身、他の人とやりとりするときに「よくない対話」をしないように気をつけようと思いました。

Making CPython 3.11 Fast - Inside Python's new specializing, adaptive interpreter.

キーノートのあとは5つのトラックに分かれてトークがあります(うち1つはスペイン語・ポルトガル語⁠⁠。ここではBrandt Bucher氏によるCPython 3.11の中身についてのトークを紹介します。写真を見てもらうとわかりますが、スライドの日付が2022年となっており「スライドが古いよ!」と会場から声がかかり、その場で日付を直していました。

Brandt Bucher氏
Brandt Bucher氏

Brandt氏は6年前からPythonを使い始め、現在はMicrosoftのFaster CPythonチームに所属しています。このトークではCPythonでバイトコードでどのように効率化されたかについて紹介していました。

最初に以下のクラスのサンプルコードを提示し、disモジュールのdis()関数でバイトコードを取得します。

class Point:
    def __init__(self, x: float, y: float) -> None:
         self.x = x
         self.y = y

    def shifted(self, dx: float, dy: float) -> typing.Self:
         x = dx + self.x
         y = dy + self.y
         cls = type(self)
         return cls(x, y)

dis()関数にPython 3.11から加わった引数adaptive=Trueを指定すると、特殊なバイトコードを出力します。するとsel.yで属性の値を取得するバイトコードがLOAD_ATTRからLOAD_ATTR_INSTANCE_VALUEに変わるなど、変化があります。LOAD_ATTR_INSTANCE_VALUEは、クラスが前にアクセスしたときから変わっていない場合に、値の返却が速くなります。

他にもdy + self.yの部分がBINARY_OPからBINARY_OP_ADD_FLOATに変わります。これは、左右がどちらもfloatの場合に使用されます。このように実行時に効率的なバイトコードが使用できるかを確認し、バイトコードを切り替えることで処理の高速化を図っているそうです。

また、specialistというライブラリが紹介されました。specialist hoge.pyと実行すると、Pythonコードのどの場所が上記の特殊なバイトコードを使用して最適化されるかを見た目で表現するそうです。

specialistの実行イメージ
specialistの実行イメージ

CPython 3.12でもさらにバイトコードは改善され、特殊なバイトコードがさらに増えるそうです。今後も継続的に高速化されていくCPythonに注目です。

オープンスペース

会期中は小さな会議室でオープンスペースというものが開催されています。オープンスペースというのは、場所と時間枠が用意してあるので、そこで議論したいことなどがある人が議論したい内容など枠を確保するものです。アンカンファレンスとも呼ばれます。

PyCon US 2023ではカンファレンスの3日間毎日、1時間ごとにオープンスペースの枠が用意されていました。ボードを見てみると技術系だけじゃなく、カンファレンス主催者のミートアップ、高校の先生、自転車・カヤック、広東語をしゃべる人などさまざまです。

オープンスペースのボード
オープンスペースのボード

筆者はそのうちの1つ、Python Bytesというポッドキャストの公開収録に参加してみました。このポッドキャストは過去にも聞いたことがありますが、Pythonに関するさまざまな話題を扱っています。

ホストのMichael氏とBrian氏
ホストのMichael氏とBrian氏

このときに収録されたポッドキャストはすでに公開されています。冒頭に参加者の拍手があるのが、公開収録っぽい感じで面白いです。

Eric Matthes氏との再会

この日は出版社No Starch Pressのブースで、書籍「Python Crash Course」のサイン会が行われていました。筆者は本書の日本語版必修編実践編の翻訳者であり、PyCon US 2019でEric氏にあいさつをしていました。

今回も書籍を購入し、著者のEric Matthes@ehmatthes氏にサインをしてもらいました。Eric氏も私のことを覚えていてくれており「日本語版無事出しましたよ」といった話をしました。

著者のEric Matthes氏と筆者
著者のEric Matthes氏と筆者

Eric氏からのサインには「書籍を広めるための、⁠翻訳の)ハードワークありがとう」というメッセージが書かれていました。翻訳は大変でしたが、著者に直接感謝されるとやった甲斐があったなと感じます。

Eric Matthes氏からのサイン
Eric Matthes氏からのサイン

ライトニングトーク

カンファレンス1日目の最後はライトニングトークです。出力がカラフルになったtox 4の紹介、ソースコードを読みやすくするサービスSourceryの紹介、Zen of Pythonについてのトークなどがありました。

スピーカーの一人に謎のマスクマンがいました。実は彼はフィリピンから参加していたSony Valdez@MrValdez氏で、自身の経験としてのゲーム開発について語り、最後にAPAC地域のPyConについて紹介していました。これより前にSony氏とはあいさつしてたんですが、マスクをかぶっていたので同じ人だと全然思っていませんでした。

謎のマスクマンによるライトニングトーク
謎のマスクマンによるライトニングトーク

APACメンバーでの夕食とPyParty

PyCon US 2023には日本だけで無く、多数のAPAC地域から参加しているメンバーがいました。そこで、この日はカンファレンス終了後にみんなで集まって食事をすることにしました。日本、韓国、台湾、香港、フィリピン、タイ、中国から合わせて20名ほどが参加し、交流を深めました。

APAC関連の面々
APAC関連の面々

ここでの食事はフードコートのためお酒がありません。そこで食事会のあとに企業(AWSとSuperblocks)が主催するパーティーに参加してきました。場所は初日にも訪れたSquatters Pub Breweryです。このパブは3階建てなんですが、全てを貸し切りでドリンクとフードも全部企業持ちです。太っ腹!! スポンサー企業に感謝しつつおいしいビールをいただいて、カンファレンス1日目は終わりました。

PyPartyの様子
PyPartyの様子

次回は、カンファレンスDay 2、Day 3、スプリントの模様をお伝えします。

おすすめ記事

記事・ニュース一覧