カンファレンスやPythonの発表リスト、さらには数え切れないほどのブログ記事や書籍で繰り広げられたニュース拡散の後、Python Software Foundationはついに、Python 2が2019年1月1日にサポート終了(EOL)に達することを正式発表する措置を講じた。
Python Foundationが声高に告げようとしているメッセージは、開発者はもはや待つことなく、可能な限り速やかにPython 3に移行すべきだ、というものである。
私たちは2020年1月1日を、Python 2の日没とすることに決定しました。従って、何らかのセキュリティ上の問題が発見された場合も、その日以降は修正を行いません。できる限り早く、Python 3にアップグレードする必要があります。
Python 3は、製作者であるGuido Van Rossum氏が言語を立ち上げてから9年後の2008年末にリリースされた。
発表当初からPython 3は、過去からの脱却を目的としていた。Python 2に影響した多くの欠陥を修正して前進するには、それが唯一の方法だったのだ。Python 2では、同じタスクを実現するための方法がいくつも蓄積されていたため、言語を再設計する上での指針のひとつは、ひとつのタスクを実行するための方法を明確にひとつだけにする、ということだった。
旧来の制約から開放されることで、将来的な言語の進化への道を開く一方で、後方互換性を失ったことは、Python 3の採用を著しく遅らせることになった。開発者がPython 3への移行を望まなかった理由としては、1) 少なくとも最初のリリースからバージョン3.3までの数年間は、Python 2よりパフォーマンスが劣っていた、2) サードパーティ製のツールやPythonライブラリが当初、Python 3をサポートしていなかった(ある種のジレンマ状態)、3) 重点を置いた機能に対して、当初は開発者が関心を持っていなかった、などがあった。そのような状況にも関わらず、この言語は長年にわたって大きく成長し、ジェネレータやコルーチン、async/await、concurrent futures、itertoolsなどの高度な構造が含まれるようになった。しばらくの間、ソース互換性のない2つのバージョンの言語を同時に処理する方法に関して、ある程度の混乱があったことは事実である。しかしながら、Python 2コードのPython 3への移植作業に関する理解が進んだことにより、caniusepython3やFuturize、Modernize、pylintといった優れたツールが登場した。
これらがすべて、多くの組織において、より現代的で表現力豊かな言語への移行が無期限に延期される事態に一役買うことになったのだ。これまではそうだったが、今回、Python Foundationが警告を発したことにより、彼らは自力で問題を解決することになり、サポートを受ける唯一の手段は有償の延長サポートのみになる。
ニュースに対する反応は複雑だった。その一方で、多くの開発者たちが、Python 3へのコードの移植が簡単であることを強調している。
https://www.infoq.com/jp/news/2019/11/python-2-end-of-life-approaching/
引用元: http://egg.5ch.net/test/read.cgi/bizplus/1573122481/