Python、お誕生日おめでとう!今週30周年!簡単に学べて、適切な時に適切なツール

Table of Contents

Python、お誕生日おめでとう!今週30周年!簡単に学べて、適切な時に適切なツール

特集今週、Python は誕生 30 周年を迎え、このプログラミング言語は最高の地位を占めていますが、課題がないわけではありません。

「最近の Python は優先順位が適切ではないと私は考えています」と、ソフトウェア監視ビジネス Sentry のエンジニアリング ディレクターで、人気の Python ウェブ アプリ フレームワーク Flask の開発者でもある Armin Ronacher 氏はThe Registerとの電子メール インタビューで語った。

Pythonの多作な貢献者であるロナチャー氏は、今もなおこの言語のファンです。彼はPythonの成功の要因として、学習の容易さとハッキングしやすい実装を挙げています。そして、初期のPythonには、同じような特徴を持つ競合がほとんどなかったとロナチャー氏は言います。

この言語のハッキング可能性により、多くのプロジェクトが成功しました。

「この言語のハッキング可能性は、NumPyをはじめとする多くのプロジェクトを成功に導きました。これらのプロジェクトは、当時Pythonだけでは実現が困難だったC言語で書かれた拡張モジュールを通して言語を拡張しました」と彼は述べた。「NumPyのようなライブラリを有効にする機能の一部は、より高度なユースケースを実現するために、言語自体に追加されました。」

Ronacher 氏は、少なくとも当初は Python の読みやすさに感謝の意を表しました。

「読みやすく、長い間過度に複雑な言語ではありませんでした。そして、内部構造へのアクセスも豊富です」と彼は述べた。「後者のおかげで、大きなペナルティなしにランタイムをイントロスペクトできます。つまり、Webサービスを構築するのに興味深い言語なのです。本番環境で何か問題が発生した場合、何が起こっているのかを簡単に把握できます。」

彼はまた、比較的シンプルなランタイムがランタイムパフォーマンスの予測可能性を高めていることにも言及した。「この言語はそれほど高速ではありませんが、参照カウントのセマンティクスのおかげで実稼働環境でのメモリ使用量がある程度予測可能であるため、ある程度はそれを補っています」と彼は述べた。

同時に、ロナチャー氏は Python が最近たどってきた道に問題があると指摘しています。

「ここ数年、Pythonはそれほど素晴らしい決断を下していません」と彼は言った。「例えば、Unicodeへのアプローチは好きではありません。Python 3では、文字列をメモリ上でUTF-8として宣言する、RustのようなUnicodeモデルを採用してほしかったです。Python 3は、Unicodeにおいて文字への直接インデックスを可能にするため、メモリを非常に無駄に消費します。そもそも、これは現代のUnicodeではそれほど役に立ちません。」

彼はまた、Python のコア開発者の焦点についても問題を指摘した。

「非同期IOシステム、型付けサポートの仕組み、新しいmatch文など、言語の学習をはるかに複雑にする多くの機能が実装されています」と彼は述べた。「一方で、パッケージングの改善といった重要な機能はまだ欠けています。」

より良いパッケージストーリーなどの重要な特徴がまだ欠けている

Pythonのソフトウェアパッケージングツール(Python環境の構築、ライブラリのダウンロード、インストール、管理に使用されるソフトウェア)の欠陥は長年問題となってきました。その深刻さゆえに、漫画家のランドール・マンロー氏は2018年4月30日にこの問題を扱ったxkcdコミックを執筆しました。

それ以来、状況はいくらか改善されました。2019年、Python Software Foundationは、MozillaとChan Zuckerberg Initiativeの支援を受けて、パッケージングワーキンググループに40万7000ドルを授与し、2020年にpipパッケージ管理ツールを改修することになりました。

それでもロナチャー氏は、Python のコア開発者がパッケージングの改善と、同じライブラリの異なるバージョンを並べてロードする機能の追加に注力することを期待していると述べた。

「Python エコシステムでは、パッケージのインストールが他のエコシステムよりもはるかに複雑であり、パッケージング インフラストラクチャはコア言語開発から切り離されすぎています」と彼は述べています。

Node.jsには現在npmが標準で付属しており、Rustでは言語と並行してcargoパッケージマネージャーを開発していますが、Pythonでは依然としてパッケージングを言語開発の一部とは考えていません。その結果、無数の競合する取り組みが、互いに寄せ集められている状態になっています。

「Rustプログラマーは言語をダウンロードするだけで、統合されたrustup+cargoツールを何でも使えますが、Pythonプログラマーは同じようなことを実現するために多くの異なるツールを使い分ける必要があり、しかもそれらのツールは一体となって開発されているわけではありません」とロナチャー氏は説明する。「他のすべての現代言語とは異なり、Pythonは依存関係を1つのバージョンしかロードできません。つまり、ソフトウェアプロジェクト全体で互換性のあるバージョンに合意する必要があるということです。エコシステムが拡大し、変化が速くなるほど、これはより困難になります。」

Pythonのパッケージングは​​、Rustの定評あるCargoシステムと比べるとまだ劣っているものの、この言語はかつてないほど人気が​​高まっています。メンテナーはきっと何か正しいことをしているのでしょう。

誰がコントロールしてるの?

英国のコメディーグループ、モンティ・パイソンにちなんで名付けられたこの言語は、コンピューターコードを書く人にとって、誰に聞くかにもよりますが、2番目か3番目に人気のある選択肢となっています。

この言語の作者であるグイド・ヴァン・ロッサム氏は、2018年7月に言語の監督役と名誉称号「終身慈悲深い独裁者」を辞任した。これは、新しい言語機能である「Walrus演算子」(PEP 572)の追加をめぐる激しい議論の後であり、ヴァン・ロッサム氏はオンラインでの敵意に苛立ちを覚えた。

レジスター紙はこの件についてヴァン・ロッサム氏にコメントを求めたが、同氏は自分を宣伝することにそれほど興味がないとして断った。

Pythonは現在、Python Steering Councilによって管理されています。この委員会は5名で構成され、機能リリース期間中はメンバーとして活動します。直近のリリースは昨年10月のPython 3.9.0です。現在、委員会のメンバーはBarry Warsaw、Brett Cannon、Carol Willing、Pablo Galindo Salgado、Thomas Woutersです。

この5人は、Pythonの技術的変更を監督し、Python Enhancement Proposals(PEP)に基づくコミュニティガバナンスプロセスを管理しています。彼らは、90人を超えるアクティブなコア開発者とPythonコミュニティの他のメンバーによる貢献を調整しています。

Pythonコード

この指標によると、PythonはJavaを抜いて2番目に人気のプログラミング言語になった。

続きを読む

2021年3月6日現在、過去20年間にわたり、Pythonソフトウェア財団(PSF)はPython言語の開発を支援してきました。その目的は、「Pythonプログラミング言語の普及、保護、発展、そして多様で国際的なPythonプログラマーコミュニティの成長を支援し促進すること」です。

「PSFは言語そのものの保守作業からやや距離を置いてきました」と、PSF事務局長のエヴァ・ヨドロフスカ氏はThe Register紙のインタビューで述べた。「しかし、運営委員会の設立によって、PSFとコミュニケーションを取り、今後の資金要請に取り組むための基盤が整い、PSFが不足している部分を支援できる可能性があります。」

Python Foundationは、COVID-19パンデミックの期間中、資金調達目標の達成が困難になっています。Jodlowska氏によると、財団の収入の多くは伝統的にPyCon USから得られてきました。このイベントは昨年はバーチャル開催となり、今年も開催される予定であるため、潜在的な収入は限られています。

ジョドロフスカ氏は、PSFの今年の目標の1つはフルタイムのコア開発者を雇用することであり、この野望は2月11日に達成されたと述べた。この日、Googleは35万ドル以上をPSFに寄付し、Python Package Index (PyPI)のマルウェア検出システム、Pythonツールとサービスの改善、そして言語メンテナンスに取り組む2021年のCPython常駐開発者への支払いという3つのプロジェクトをサポートする計画を発表した。

CPythonはC言語で書かれた言語のリファレンス実装で、Python.orgからダウンロードできます。他にもIronPython(C#)、Jython(Java)、PyPy(RPython、Pythonのサブセット)などがあります。

Python がこれほど成功した理由を問われると、Jodlowska 氏は Python コミュニティの重要性と、サポート体制としての行動規範の役割を挙げた。

「Python のメンテナーとコア開発者の多様性は、いくつかの方法で対処されています」と Jodlowska 氏は説明した。

彼女によると、行動規範は現在、運営協議会によって施行されているという。これは大きな意味を持つと彼女は述べた。「運営協議会が存在する以前は、コミュニティの議論を礼儀正しく、歓迎されるものに保つための強制力は全くなかったからです。」

理論上は、運営協議会による行動規範の施行によって、ヴァン・ロッサム氏がガバナンスの役割を辞任せざるを得なくなったWalrusオペレータ論争のような事態は防げるはずです。しかし、Python運営協議会メンバーのブレット・キャノン氏の発言から判断すると、コミュニティの議論をモデレートすることは、単に摩擦の焦点をコミュニティからリーダーシップへと移すだけなのです。

私たちはまだボランティアによって運営されているプロジェクトですが、規模が大きいため、運営を続けるには多くの時間が必要です。

Python コミュニティが直面している最大の課題について電子メールで尋ねられた Cannon 氏は、プロジェクトの規模と量に対応することだけだと答えた。

「私たちは依然としてボランティアで運営されているプロジェクトですが、規模が大きいため、運営には多くの時間が必要です」と彼は語った。「どんな決定を下しても、いつものように反対意見が出るので、時間的にも感情的にも、管理するのは大変なことです。」

FacebookやMicrosoftのような、最悪のコンテンツをモデレーションする企業では、有害な投稿や暴力的な動画を審査する職員は精神的なサポートを必要としています。Pythonコミュニティの頑固な開発者を管理することは、それほどストレスにはならないかもしれませんが、特にボランティアの間では、秩序を保つことは精神的な負担となるようです。

Pythonコミュニティにとって、新しい人材を招き入れることで、他のメンバーが一歩引いたり、権限委譲したりできるようになることは、こうした閉塞感を和らげるのに役立つかもしれません。Jodlowska氏は、Pythonのコア開発者によるコミュニティの活性化の努力を高く評価しています。「例えば、現在のコア開発者の多くは、自分の時間を使って、コア開発者を目指す他の開発者を指導しています」と彼女は言います。「そして、そのようにして、新しい人材が着実に加わっているのです。」

Discover More