• 一般社団法人Pythonエンジニア育成推進協会 代表理事 吉政忠志氏

    著者:吉政忠志
    一般社団法人Pythonエンジニア育成推進協会 代表理事

Pythonエンジニア育成推進協会の吉政でございます。今回は当協会の野田貴子さんが、PyCon US 2022 オンライン参加し、レポートを書いてくれたので、ご紹介しますね。

PyCon US 2022が3年ぶりに対面で開催

  • イベント会場

Photo: @PyCon US

全世界のPythonコミュニティで最大のイベントであるPyCon US 2022が、アメリカのソルトレイクシティで4月27日から5月3日にかけて行われました。ソルトレイクシティについて詳しくは、visitsaltlake.comPyCon USのブログで紹介されています。

PyCon USは2003年から毎年開催されていますが、2020年と2021年はコロナ禍のためオンラインで行われました。今回は3年ぶりに対面での開催になりました。現地に集まる参加者はコロナワクチン接種証明書の提出が義務付けられるなど、厳しい感染対策が行われました。そのためか、今回の現地参加者は約1,760名と、最後に対面で開催された2019年の約3,000名よりも減少してしまいました。トークイベントはオンラインでも配信され、オンラインの参加者は約670名でした。

参加形態 参加人数
対面 約1,760名
オンライン 約670名

PyCon USはPythonの発展と普及を目的とする非営利団体のPython Software Foundation(通称PSF)によって運営され、イベントの売り上げはPythonコミュニティの発展のために利用されています。2022年のPyCon USの参加チケットには以下の選択がありました。

チケット 金額
企業 $700 USD
個人 $400 USD
学生 $100 USD
オンラインのみ $100 USD

2022年4月27日(水)

Language Summit(Python言語サミット)

このサミットは、毎年PyCon USの開始前に、CPython、PyPy、JythonなどのPython実装の開発者らやゲストが集まり、情報共有や、課題の議論や意思決定を行うためのイベントです。今年は以下の議論が行われました。

Tutorial(チュートリアル) 1日目

チュートリアルでは、事前に申し込むと様々なハンズオンに参加できます。この日は『Building your first Dashboard using Dash(意訳:dashを使って初めてのダッシュボードを作ってみよう)』などのチュートリアルが行われました。

2022年4月28日(木)

Tutorial(チュートリアル) 2日目

この日は『Learning from errors: understanding and debugging Python errors (意訳:Pythonのエラーに詳しくなってデバッグしてみよう)』などのチュートリアルが行われました。

Education Summit(教育サミット)

このサミットは教師や教育関係者のためのイベントで、2012年に始まりました。今回は午前中に長めの講演があり、昼食後にライトニングトーク、その後はグループごとの歓談となりました。Python書籍の著者、学校や大学の関係者、企業の講師など、Pythonの学習に関わる人が集まりました。

Newcomer Orientation(初心者向けオリエンテーション)

PyCon USに初めて参加する人のための簡単なワークショップが夕方に行われました。ここではカンファレンスの概要や、カンファレンス中に行われる様々な活動に参加するための方法、ほかの参加者との付き合い方などを教えてもらえます。

2022年4月29日(金)

Talks(トーク) 1日目

3日間にわたるPyCon USのメインディッシュの1日目です。今年は3年ぶりに対面で行われましたが、オンライン参加者に向けたリアルタイム配信もありました。執筆時点ではまだ公開されていませんが、近いうちにこちらのページでアーカイブ動画が公開される予定です。

今年のキーノートは5つありました。

  • Łukasz Langa氏による、型付けと複雑性について
  • Sara Issaoun氏による、ブラックホール撮影について
  • Peter Wang氏による、PyScriptの発表
  • Thomas Wouters氏とPablo Galindo Salgado氏による、Python 3.11と運営協議会の活動について
  • Naomi Ceder氏による、良いコミュニティの作り方について

このうち、Peter Wang氏によるPyScriptの発表についてを、後述の「Talks(トーク) 2日目」のレポートでお伝えします。

Lightning Talks(ライトニングトーク) 1日目

ライトニングトークとは、自分が作ったもの、学んだこと、誰かの役に立ちそうなことを最大5分間で簡単に発表できる機会です。発表者も聴講者も気軽に楽しく過ごせる時間です。

Python言語に直接関係することでなくても構いません。この日は『Cultual Shock at my 1st PyCon US(意訳:PyCon USに初めて参加した私のカルチャーショック)』というLTもありました。海外から訪米してPyCon USに参加している人たちは、このトークで共有された「あるある」を楽しめたことでしょう。

個人的には、自動テストに関する2つのLTが面白かったです。

1つは『Getting to 100% Coverage (and Why It Matters)(意訳:テストカバレッジ100%達成への道のりとその重要さについて)』です。カバレッジ100%を達成することは難しいーー特に最後の2%が難しいーーが、一度達成してしまえば、100%をキープすることの方が容易だそうです。なぜなら、GitHubのプルリクエストでテストカバレッジのレポートを表示するようにしているため、プルリクエストでカバレッジが下がっている(100%ではない)ことが一目瞭然になるからです。他にもカバレッジに関する洞察が発表されました。

もう1つは『STOP RUNNING YOUR TESTS(テストを実行するべからず)』というLTです。前述したLTとは正反対の主張かと思いきや、最後のスライドでこうまとめられています。「How Pantsbuild can STOP RUNNING YOUR TESTS unnecessary(Pantsbuildツールはいかにして不要なテストの実行を防いでいるか)」と。もし前回テストを実行した時から実装が変わっていなければ、その部分のテストを再実行せずにキャッシュメモリからテスト結果を取得して、テストの時間を軽減させるというツールの発表でした。

Maintainers Summit(メンテナンス担当者向けサミット)

このサミットでは、持続可能なプロジェクトのあり方や、活発なコミュニティを維持し発展させる方法などについて議論し、ベストプラクティスを育みます。今回の発表には、全員が参加できるコミュニティの作り方、現代的なコミュニティの管理方法、GitHubのCopilotがどう役に立ったのか、リモートワークで非同期コミュニケーションを取る方法、などがありました。

アーカイブ動画はこちら

Packaging Summit(パッケージングサミット)

Pythonのパッケージングは急速に変化しており、昔も今も多くの問題に悩まされています。それらの問題を解決するために、パッケージングの関係者が集り議論や調整をしています。

Open Spaces(オープンスペース)

  • Open Spaces Board

Photo: https://pycon.us/os

オープンスペースでは、メインイベントであるトークが行われている間、1時間枠の自主企画イベントを行えます。即興で企画されるものもあるため、オンラインで最新の時間割の画像を見ることができるようになっていました。

2022年4月30日(土)

Talks(トーク) 2日目

Anaconda社のCEOであるPeter Wang氏による、PyScriptに関する発表がありました。これはイベント直後に日本でもニュース記事になっていましたので、すでにご存知の方も少なくないと思います。Anaconda社と同名のAnacondaという製品は、データサイエンス向けの様々なツールを提供しているPythonの有名なディストリビューションです。

Pythonはデータサイエンスだけでなく様々な分野で利用されていますが、実行環境の準備が大変だという課題があります。Windows、Mac、LinuxなどのOSによる差異がいつの時代も開発者を悩ませてきましたが、WebブラウザはこのOS戦争を克服しました。しかしWebブラウザがサポートしているプログラミング言語はJavaScriptのみです。WebブラウザにPythonを乗せることができればどんなに良いことでしょう。これがPyScriptのアイデアの発端でした。

この状況を変えたのがWebAssemblyの登場です。任意の言語で書いたプログラムをWebAssembly言語にコンパイルすると、Webブラウザで実行できるようになるのです。WebAssemblyはCPythonをサポートしているため、これを利用してWebブラウザでPythonを動かせる(HTMLファイルの中に記述できる)PyScriptというツールが開発されました。

このトークではPyScriptの実際のデモが披露されました。

まずは、今は亡きHTMLタグであるblinkタグ(テキストを点滅させるタグ)を模倣したPyScript。Webブラウザ上で「Hello PyCon 2022!」が点滅しています。py-scriptタグの中にPythonを記述することでPythonを実行しています。

  • PyScriptデモ: blink

次はToDoリスト。PyScriptはDOM(HTML要素)を操作できるため、HTMLタグの中に一覧データを書き出したり、HTMLボタンにクリックイベントをつけたりすることができます。

  • PyScriptデモ: ToDoアプリ

REPL(対話型)の機能もあります。ユーザーがWebブラウザからパラメーターを操作すると、画面に表示されるデータが変化します。

  • PyScriptデモ: REPL

JavaScriptとPythonをお互いに呼び合うこともできます。こちらのデモでは、THREE.js(3Dコンテンツを表示するJavaScriptライブラリ)を読み込んで、WebGLで3Dの描画をしています。

  • PyScriptデモ: WebGL

こちらはJavaScriptで作られたスーパーマリオのゲームです。カメラで撮影した動画をPythonで画像解析し、手を広げるとマリオがジャンプします。PythonからJavaScriptを操作しています。

  • PyScriptデモ: マリオゲーム

以上のデモのように、Pythonさえ書ければWebアプリが作れるようになるのがPyScriptです。実装上の課題や、今後の計画の方向性など、まだ検討事項は多いようですが、Pythonプログラマーにとってはとても夢が広がる発明です。

余談ですが、PyScriptの技術を可能にしているPyodideについて、同日に『Pyodide: A Python distribution for the browser』という別のトークがありました。2日目も盛りだくさんの1日でした。

Lightning Talks(ライトニングトーク) 2日目

午前中と夜遅くに、2回のライトニングトークがありました。

PyLadies Auction

恒例の、PyLadiesによる10回目のチャリティーオークションです。スポンサーなどから提供されたグッズがオークションにかけられます。昨年もオンラインでオークションが行われましたが、今回は軽食を楽しみながら、対面式で行われました。

日本でPython試験・資格、データ分析試験・資格を運営する一般社団法人Pythonエンジニア育成推進協会からこちらの公式マスコットが提供され、落札されていました。

一般社団法人Pythonエンジニア育成推進協会 公式マスコット

Photo: https://www.pythonic-exam.com/official-dolls

2022年5月1日(日)

3日目のトークとライトニングトークがありました。その他にも、次のようなイベントがありました。

Poster(ポスターセッション)

ポスターセッションでは、それぞれの講演者にポスターを展示するスペースが用意されます。講演者は自分のポスターの前に立って参加者を待ち、参加者は会場を自由に歩いて講演者と話をすることができます。今年は『Integrating React in the Django way!(意訳:DjangoにReactを入れて使おう!)』や『Development of a Novel Computer-Aided COVID-19 Diagnosis System Using Python(意訳:Pythonによる新しいコンピュータ支援COVID-19診断システムの開発)』などのセッションが10以上ありました。

Job Fair

Microsoft、Anaconda、AWSなどを初めとする企業のジョブフェアが開催されました。ジョブフェアでは参加者にランチが提供され、参加者は興味のある企業のテーブルにつくことができました。

2022年5月2日(月)~2022年5月3日(火)

Development Spring(開発スプリント)

各自が選択したオープンソースプロジェクトに対して、メンバーと一緒に2日間集中的に開発しながら学習できる機会です。PyCon USにはトーク以外にもこのようなイベントがたくさんあるのです。

来年のPyCon US 2023もソルトレイクシティで開催予定

新型コロナウィルスの状況次第ではありますが、来年のPyCon US 2023も対面で開催される予定になっています。詳しい日程は以下の通りです。次回も楽しみですね。

  • チュートリアル: 2023年4月19日~20日
  • メインカンファレンス: 2023年4月21日~23日
  • 開発スプリント: 2023年4月24日~28日

【Pythonエンジニア育成推進協会】
公式サイト
お問い合わせ窓口

[PR]提供:Pythonエンジニア育成推進協会