一般社団法人Pythonエンジニア育成推進協会(以下、当協会)の顧問理事の寺田学です。私は試験の問題策定とコミュニティ連携を行う立場です。
先に報告が上がっている通り、2022年4月27日から5月3日にかけて、アメリカのソルトレイクシティでPyCon US 2022が開催されました。2020年、2021年は新型コロナウイルス感染症の影響で残念ながらオンライン開催となってしまったため、現地開催は実に3年ぶりとなります。
私自身は2019年に現地参加し、2020年、2021年はオンラインで閲覧しましたが、今回は久しぶりの現地開催ということで、日程を調整して参加してきました。イベントレポートは別途当協会から出していますが、本稿では実際に現地入りして私が感じたことについてお話ししてみたいと思います。
3年ぶりの現地開催、PyCon US 2022の実体
オンラインでの参加は、それはそれで楽しいものではありますが、何が流行しているのか、ほかのエンジニアの反応はどうかといったことを肌で感じられる現地での参加に、高い期待感をもって参加しました。今回のイベントでは約1,760名が現地に集まり、オンラインからの参加は約670名、全体で約2,430名が参加したそうです。 この中でカンファレンスは3日間にわたって行われ、数回のキーノートスピートと5トラックに分かれた一般トーク、さらには5分間の短いトークを行うライトニングトークが行われました。
キーノートスピーチでは主に、比較的大きな話題や参加者の多くに通ずる話題、たとえばコミュニティの役割というような大きなテーマから、話題性の高いプロジェクトというようなものが取り上げられます。今回はNASAのブラックホールの可視化でPythonはどこでどのように使われたかという話がされていました。
また、一般トークではさまざまな分野のさまざまなトークがあり、どれを見るか悩んでしまうほど興味をそそるものばかりでしたし、ライトニングトークでは海外のエンジニアが日頃どういう活動をしているのかといった、誰かの役に立ちそうなことが話され、それに対するほかの参加者の反応を直接うかがい知ることができるので、非常に有益な情報にあふれたカンファレンスだったと感じています。
PyCon US 2022でのカンファレンスを通して感じたこと
カンファレンス全体のレベル感、内容、方向性としては、私が個人的に考えていたことや、日本で開催されているPyCon JPや小さめのコミュニティで話されていることと大きな乖離はないという印象を受けました。
もちろん細かな部分での違いはありますが、日本国内のプログラミング業界やPython業界が違う方向性に向かっているということはなく、データサイエンスの分野に限定しても大きな乖離は感じられませんでした。また、昨今はデータ分析や機械学習、シミュレーションの分野でPythonを使う人がとくに増えていますが、その認識も同じで、実際にそういった発言もありました。
ただ、その中で感じたのは新しいツールなどの発見はとくになかったなという印象です。 たとえば、数年ほど前であればツールの使い方やディープラーニングの方法などの話題が比較的多かったのですが、いまとなっては多くの人が当然の認識になっており、ライトニングトークにしても、工夫している点やより効率的に開発する方法、精度の高いプログラムをどう作るかといったような、一歩踏み込んだ話題が中心でした。
具体的には、データ系で言えばデータサイエンティストや研究者が、自身が作ったアルゴリズムとどのような結果が生まれたかという研究発表レベルのコードや、自身が作った理論的な確認をするためのコードを、実際の製品に使えるようにするためにAPI化する、Web化する、共同作業するために、どう次の段階に進めていくかという考え方や、ツールを提案するというような内容です。 こういった話題は海外からの参加者だけでなく、日本の参加者からも提供されており、3年前にはなかった変化を感じる瞬間でもありました。
いまやPythonは、研究者をはじめとした多くの人によって、製品の中で使われることが増えました。 昔に比べ、クラウドサービスやオープンソースソフトウェアなどの使えるものの選択肢が増え、様々なアプローチがある状況の中で、それぞれが苦労して、一歩先に足を進めようとしています。 Pythonを基礎にいろいろな扱い方をし、使いこなしていくことで、より良いものを、よりスピードアップして作り上げていくという状況は海外でも日本でも同じだと感じました。
バグの少ないアプリケーションづくり…意外にも型ヒントが初日朝イチの話題に
カンファレンス初日の朝一番にくるトークは、きっと「今後、Pythonはどうなるのか」という話になるのだろうと思いながら聞いていました。 ところが、実際は以前取り上げた型ヒントに関するもので、スピーカーはVer3.9のリリースマネージャー。内容もプログラムコードがたくさん出てくるような非常に細かい話がなされたので衝撃的でした。
確かに、今は型ヒントをつけた方が良いという認識は私の周辺では当たり前にされていますし、私自身そういったお話をしてきましたが、キーノートでその大切さを語り、具体的な方法を実際のコードを交えて紹介されたのにはとても驚きました。 思い返せば、私や周囲にとっては当たり前になっていますが、Pythonを使うにあたって型ヒントをつけずにいる人は今でもたくさんいると思いますし、要らないと考えている人も多いかもしれません。
型ヒントを使う事によるメリットは、安全にメンテナンスができること、そして、バグを生みにくいコーディングができるため、よりよいアプリケーションを作れるということにあります。 やっている人にとっては自明のことですが、これを業界全体に浸透させるのにかかる労力は相当なものです。そんな中でPythonのコア開発者の一人が、この場で型ヒントを強調したことには驚きを隠せませんでした。
今はデータ系問わず、Pythonを使って製品化されたものが増え、大規模開発でも使われるシーンが増えています。 そうなると今後はメンテナンスや改良を目的としたプロジェクトが増えることは容易に想像できることであり、であれば安全性を保ちやすい形で開発されていた方がメンテナンスコストをより下げることができ、結果、より良いものを生み出すことができることを改めて認識しました。
深読みしすぎかもしれませんが、朝のオープニングトークにこの話題を持ってきた意図は、そういう方向性にみんなで向かっていこう、そして、Pythonで作られたものを、より高度に、より使いやすくしていこうというメッセージなのではないかと考えています。
Pythonはあくまで動的型付け言語ですし、静的型付けしない楽さがいいというものがたくさんあります。 意識して書かないといけない部分はありますが、より安全に、より大規模なものを作るときに型ヒントをうまく使うことが業界全体に馴染んでいけば、より良いものができるのではないかと思う次第です。
Pythonの将来
Pythonは年一回リリースされおり、次のバージョンである3.11は10月の予定です。3.11の準備は進んでおり、一番の目玉はパフォーマンス向上と言われています。 これについては何度か公式からの発表がされていますし、ライトニングトークでも言及がありましたので、処理速度が速くなることには間違いありませんが、何がどう速くなるのかというシチュエーションはまだはっきり言えない状態のようです。 というのも、自分たちにとって都合のいい測定をすれば2倍速くなったという計測結果を出すこともできれば、測定方法によっては反対に数%しか速くなっていないという結果を出すこともあるからです。
最終的にどのベンチマークテストを重視していくかがポイントになりますが、Steering Councilという実装を決めるメンバーの1人によれば、どれだけとは明確に言えないものの、速くなることは間違いなく、ベンチマークテストの種類を増やして、いろんなパターンの見直しをしていくことになるだろうということでした。
そしてパフォーマンス向上については3.11で完了させるプロジェクトではなく、継続されていくものという位置づけということなので、バージョンを重ねるごとにより改善されていくだろうと思います。 実際、パフォーマンスが向上することはうれしいことですし、下位互換性を失うという話はありませんでしたので、ユーザーからすればとくに心配するようなことは今のところなさそうなので、安心して待ってみたいと思います。
また、Ver3.10以降から改善されつつあるエラーメッセージですが、これもまた、より分かりやすくしようという動きは継続されるようで、初心者に優しい方向に進んでいきそうです。 どういったメッセージがわかりやすいかは個人差がある部分ではありますので難しいところではありますが、ひとつずつ探さなくても、どこでエラーが出たかを適切にマークし、どのキーやインデックスがダメだというのを表すようにしようとしているようです。 エラーメッセージの改善により初心者に優しい方向へ進むこと、そして処理速度が上がるというのはとてもありがたい話で、なかなかいい進化を迎えられそうだなという印象でした。
まとめ
Pythonは開発や意思決定にしても、コミュニティを大事に動いています。 この2年間、現地でのイベントはアメリカでも行われませんでしたし、私たちが国内でやっているような勉強会や小さなミートアップ、ハッカソン、モクモク会なども、どこもオンラインで行われていました。
これによって失われたものはあっただろうと思いますが、その一方でコミュニティが小さくなったり、開発が停滞したりといったことはなく、むしろオンラインミートアップになったことで、自分でやれる時間を見つけやすくなり、開発が進んだ人が多いのではないかと思うことがあります。 とはいえ、現地で会うイベントは大切ですし、会えたことでコミュニケーションが円滑になり、実際の思いを共有することでいい方向に向かうような施策もできたのではと感じています。
PyCon US 2022の全体レポートは別途、当協会から公開されていますので、ぜひそちらもご一読ください。
[PR]提供:Pythonエンジニア育成推進協会