この記事は2023年5月31日で公開された中国語の記事「Python潮流周刊#4:Python 2023 语言峰会」の日本語訳です。主に LLM によって翻訳され、手修正で校正されていますが、もし不自然の点が気づいたら、「記事の改善」機能で、編集リクエストをいただけるとありがたいです。
こちらから最新号まで購読できます(英語のみですので、ご了承ください。)
毎年 PyCon US が開催される前に、Python のコアデベロッパー、メンテナ、そして招待されたゲストが集まり、Python 言語サミットに参加します。これは、Python の将来の方向性について議論する1日間のイベントです。
今年のイベントが終了してからちょうど1ヶ月、Pythonソフトウェア財団 (PSF)は今週月曜日に複数のブログ記事を公開し、サミットでの一部の講演内容を振り返りました。本週刊では、これらの記事を要約して皆さんにご紹介します。
🦄記事&チュートリアル
今回は、Python の C API に関する3つの講演についてご紹介します。まず、Mark Shannon 氏と Guido van Rossum 氏は、現在の C API がサードパーティ製の拡張機能へのサポートが不十分であり、バージョンアップの際にその機能がしばしば損なわれる点を指摘しました。この会議では、C API の問題点を洗い出し、その解決策を策定することが結論付けられました。
もう一つの講演は、CPython C API のいくつかの制限と問題を解決するために設計された、Python 拡張モジュールを記述するための新しい API である HPy に関するものでした。HPy の利点は、作成された拡張モジュールが CPython や PyPy などの異なる Python 実装で実行できる点にあります。しかし、講演者がこれを公式な推奨ソリューションとして採用したいという提案は支持されませんでした。その理由としては、まだ十分に成熟していない点に加え、Guido が指摘した「トップダウンのアプローチは機能しない」という点が挙げられます。HPy は C API の問題を解決するための有望なソリューションに見えますが、C API の地位を完全に置き換えるにはまだ時期尚早と言えるでしょう。
2、Making the Global Interpreter Lock Optional
これまでにも、週刊の第2号などで何度か nogil プロジェクトをご紹介してきました。今回のサミットでは、nogil の開発者である Sam Gross 氏が過去1年間の進捗を報告し、性能面での目覚ましい成果をデータで示しました。さらに、より明確なロードマップも提示されています。しかし、懸念点として、2つのディストリビューションへのコンパイルが提案されていることや、それに伴うデバッグの難しさなどが挙げられます。(これらの点については、2月に公開されたこの記事でも議論されています。)
3、Towards Native Profiling for Python
Joannah Nanjekye 氏の講演では、サンプリングベースの Python プロファイラである Scalene が紹介されました。Scalene は、生成されるレポートでマシンコードと Python コードを明確に区別して表示できます。C、C++、または Rust で記述された Python 拡張機能はマシンコードにコンパイルされるため、サンプリングベースでの分析は困難でしたが、Scalene はこうした技術的な課題のいくつかを解決し、最も広く利用されている Python 分析ツールの一つとなっています。講演者は、Scalene の成果を標準ライブラリの cProfile に統合することを提案しましたが、この提案に対する反応は得られませんでした。また、このライブラリは Python 3.12 で導入された perf プロファイラとも比較されました。
Brett Cannon 氏が提起した問題は、標準ライブラリがどのような役割を果たすべきか、という点にありました。Python は開発初期に「バッテリー同梱」と謳い、多くの標準ライブラリを内包していましたが、サードパーティライブラリが豊富になり、PyPI によってライブラリのインストールが非常に手軽になったことで、多くの標準ライブラリの価値が薄れていきました。参加者の間では、標準ライブラリはユーザーがより良い Python コードを書くのを支援することに注力すべき、という点で意見が一致しました。これは、現在進行中の標準ライブラリの「スリム化計画」が今後も継続されることを意味します。同時に、将来的に導入される新しい標準ライブラリは、より厳格な基準に基づいて追加されていくでしょう。
5、Pattern Matching, __match__, and View Patterns
パターンマッチング構文は Python 3.10 の主要な機能ですが、Sullivan 氏はこの機能がかなり限定的であると考えており、そのためパターンマッチングの今後の発展の方向性を提案しました。参加者たちはパターンマッチング構文の強化に概ね同意したものの、新しいマジックメソッド __match__ を導入すべきか、あるいは他の解決策を採用すべきかについては、まだ結論が出ていません。本稿には多くのコード例とパターンマッチングに関する参考文献が掲載されていますので、このトピックに興味のある方はぜひご参照ください。
6、Python on Mobile: State of the Union
Russell Keith-Magee 氏が、Android や iOS などのモバイルOSで Python を容易に動作させることを目指すプロジェクト「BeeWare」を紹介しました。このプロジェクトはすでに Anaconda からの投資を受けており、同氏は CPython の「Tier-3」レベルのサポートを求めています。今回のセッションでは、モバイルOSにおけるCIテストスイートのサポート、sys.platform がモバイルOSでどのような値を返すか、そしてモバイルOSでの CPython バイナリのリリース方法などについて議論されました。スマートフォンでの Python の活用は、まさに期待大です!
Guido はサミットで、オープンソースにおける燃え尽き症候群、その対処戦略、そして回避策などについて語りました。多くの場合、オープンソースの貢献者は、無償の貢献や純粋な情熱のみで活動しています。しかし、大規模なオープンソースプロジェクトでは、複雑な状況、些細な議論、多様な人々との協調作業、そしてしばしば意見の衝突などが生じやすく、これらはすべて人々を疲弊させ、その情熱を削いでしまう可能性があります。(PS. 技術ニュースを追っている方なら、最近 Rust コミュニティで報じられているコアチームメンバー間の内紛事件を目にしたことでしょう。オープンソースコミュニティの発展は大きな課題ですが、今回のサミットで Python コミュニティが健全に発展していることが示されたのは喜ばしいことですよね)
3つの短いライトニングトークを紹介します。それぞれのテーマは以下の通りです。LLVM-BOLT を公式機能としてサポートするための提案、Python での遅延インポートを実装するメカニズム、そしてモジュールを呼び出し可能にする提案 (PEP-713 として既に提出済み) です。
これらが今年のカンファレンスで議論された主要な議題であり、どれも非常に意義深いテーマだったと言えるでしょう。
すでにイベント終了から1ヶ月が経過しており、多くの内容については最新の進展が見られます。一方で、nogil やモバイル環境での Python のように、決着がつくまでにまだ時間がかかるものもあります。
補足として、Fast CPython プロジェクトの進捗に関する2つの記事をご紹介します。『Faster CPython at PyCon, part one』、『Faster CPython at PyCon, part two』。Python 3.11 ですでに多くのパフォーマンス向上を目の当たりにしており、今後のバージョンにもさらなる期待が寄せられています。
スポンサー&サポート
コンテンツの作成には多くの時間と労力がかかっています。もしこの記事が少しでも参考になったと感じたら、気軽にサポート や コーヒーをごちそう などをいただけると嬉しいです!この週刊が気に入った方は、ぜひ必要としている仲間にもシェアして、より多くの方に役立ててもらえたら嬉しいです〜
また、スポンサーも募集中です。興味のある方はぜひ DM にてご連絡ください。
本週刊について
Python トレンド週刊では、国内外200以上の情報源から注目すべき記事、チュートリアル、オープンソースプロジェクト、ソフトウェアツール、ポッドキャスト、動画、話題のトピックなどを厳選してお届けします。本週刊のビジョンは、すべての読者が Python 技術を高めるとともに、本業や副業の収入アップにつなげられるようサポートすることです。
購読方法:Python猫 (Wechatのグループ参加可)| RSS | メールマガジン | Github | Telegram | Twitter



