6 月初旬、Python の父である Guido van Rossum は、今日の PyCon US カンファレンスで「Python Language」と呼ばれる講演を行いました。最近、ITメディアInfoworldのインタビューに応じ、Pythonの将来について語った。グイド神父が Python の将来についてどう考えているかを見てみましょう。
モバイルコンピューティング分野におけるPythonの応用
Guido: モバイルは依然としてPythonにとって難しいプラットフォームですが、Pythonは実際にすべてのブランドのスマートフォンで実行できるため、ブラウザプラットフォームほど難しくはありません。必要なのは、Python のモバイル バージョンの構築方法を知っている人を見つけることだけです。
標準の CPython ソース コードは、Android や Apple の携帯電話で実行できるバイナリにほぼコンパイルできます。この分野では多くの人々が熱心に取り組んでおり、常にパッチ パッケージを提供しています。しかし、進歩は私が望んでいたよりも遅かったです。しかし、繰り返しになりますが、私自身はモバイルアプリを開発しているわけではないので、自分から参加するモチベーションはあまりありません。しかし、私はこれに関する進歩を見てみたいと思っています。
Python が JavaScript を置き換えますか?
グイド: これは私たちの目標ではありません。ブラウザ プラットフォームの構造上の問題により、私たちができることは Python を JavaScript に変換することだけです。ただし、通常、翻訳されたプログラムは、ネイティブ Python プログラムよりも実行が遅く、JavaScript で作成された同様のプログラムよりも遅くなります。現在、Python を JavaScript に変換し、ブラウザで Python を実行しようとしている人もいます。
WebAssemblyに関する考察
これにより、ブラウザ上でPythonを実行できるようになるかもしれません。 asm.js を置き換える場合、基本的に、JavaScript が Web プラットフォームで使用される唯一の言語ではなくなり、アセンブリ言語に似たものになることを意味します。これは Python に似ています。作成する Python コードの基礎となる Python インタプリタは、実際には C 言語で記述されます。コンパイル中に、Python コードはマシン コードに変換され、ある種のアセンブリ言語も含まれます。
ブラウザで JavaScript を強制終了できない場合は、JavaScript をブラウザで実行したい言語の統一翻訳オブジェクトにすることができるかもしれません。この場合、Python や、Ruby や PHP などの他の言語を、基礎となる JavaScript に効率的に変換できる可能性があります。
WebAssembly は実際、Python 開発者にとってチャンスです。開発ツールを好む人には、WebAssembly 上で Python を実行する最適な方法を検討する機会が与えられる試用期間が設けられると思います。実験が成功し、それを宣伝し始めたら、Python 開発者に「Python でブラウザ クライアント アプリを作成できるようになりました」と言うことができます。しかし、今はその時ではありません。
Python のパフォーマンスの向上
Guido: Python 3 のパフォーマンスは追いつき、2012 年よりもはるかに高速になっています。あるいは、PyPy のような Python 実装もあります。 Python インタープリターの新しいバージョンもいくつかあり、速度の向上が図られています。
実際、Python のパフォーマンスは世間で言われているほど悪くはなく、Python は主に C 言語で実装されているため、多くのことが C 言語と同じくらい高速に実行できます。私は今でも、Python はほとんどのことに対して十分に高速であると考えています。
Python 3 には速度を向上させる新機能はありませんが、言語の多くの側面が高速化されています。たとえば、参照カウントが以前より高速になっています。主なことは既存のコードを最適化することですが、ユーザーとしては違いに気づきにくいです。
そして、Python プログラムを緊急に高速化する必要がある場合は、PyPy を使用してみてください。十分に成熟しているので試してみる価値はあります。
なぜPythonが人気があるのですか?
Guido: 主な理由は、学習と使用が簡単で、コミュニティがオープンで、開発者が積極的で親切だからです。
Python 開発は現在、そして将来どのようになりますか?どんな計画ですか?
Guido: 現在、そして過去 5 年ほどにわたって、Python の開発を推進しているのは主に他の人たちです。私は、新しい構文を追加する設計を行うときに、新しいアイデアを受け入れる価値があるかどうかについてのガイダンスを提供することがあります。標準ライブラリの開発に関しては、私はほとんど介入しません。時々、私はみんなに議論をやめて妥協するようお願いしなければなりません。
私のアイデアは、コミュニティを自立させて、最終的には退職するか、少なくとも長期休暇を取れるようにすることです。将来的には、この言語が他の言語や他の分野から新しいアイデアを吸収することを願っています。
最後に SciPy と NumPy について話したいと思います。これら 2 つのチームは、Matlab の代替として Python の使用を推進しています。私たちの代替手段はオープンソースであり、さらに優れたものであり、それが可能です。彼らは、私がこれまで想像もできなかった分野に Python を取り入れています。彼らは、ブラウザーでインタラクティブな Python を使用するための Jupyter Notebook などを開発しました。