プログラミング言語のPythonが大変な人気だ。Pythonでプログラミングを始めてみたいという初心者も多いだろう。

 そうした初心者が自分のパソコンにPythonをインストールしようとしたとき、最初に問題になるのが「Pythonのどのバージョンを選べばいいか」ということだ。Pythonには「Python 2」と「Python 3」の大きく2つのバージョンが存在する。初心者だと、どちらを選べばいいかが分からない。

 たいていの人は、最新バージョンであるPython 3を選択するだろう。しかし、中には「Python 2にはこれまでの実績があるから、そちらを選んだほうがいいのではないか」、あるいは「Python 2のほうが簡単で初心者向けなのではないか」と考える人がいるかもしれない。

 結論から言うと、今からPython 2を使い始めてはならない。Python 2はもう2019年内しかサポートされないことが決まっているからだ。

Python 2の廃止日が決定
 Pythonの開発や管理などを手がけている非営利団体のPythonソフトウエア財団が、「Sunsetting Python 2」というタイトルの記事を公開した。sunsetを動詞で使うときは「廃止する」との意味になるが、少し文学的に表現すると「Python 2のたそがれ」という感じだろうか。

 この記事では「We have decided that January 1, 2020, will be the day that we sunset Python 2.(私たちは2020年1月1日をPython 2の廃止日にすることを決定した)」と明言されている。2020年以降は、Python 2自体やPython 2で書かれたソフトウエアにたとえ致命的なセキュリティーの問題が見つかっても、基本的には修正されないという。

 Python 2とPython 3は、インデントでブロックを区別するというPythonの特徴や基本的な構文の書式は共通している。ただし、細かい部分がいろいろと変更されており、両者の間に互換性はない。ざっくりいえば、古い考え方が残っていたPython 2の仕様を、洗練された仕様に変更したものがPython 3だ。

 同財団は「Python 2を2015年に廃止する」と2008年にいったん発表していた。ところが、Python 3への移行が思うように進まなかったことから、2014年に廃止時期を2020年まで延期していた。

 Python 2の廃止が予定通り実行されることになったのは、Python 3への移行が十分に進んだと同財団が判断したからだと考えられる。

 以前はPython 2にしか対応していないライブラリーが多く、それがPython 3への移行の妨げになっていた。現在はほとんどのライブラリーがPython 3への対応を完了したということなのだろう。個人的にも、そのことを実感した出来事があった。

 最近、日経NETWORKでPythonを取り上げる記事を執筆し、その際に「Scapy(スケイピー)」というライブラリーを使った。ネットワークのパケットを簡単に組み立てたり送ったりできるライブラリーだ。

以下ソース
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00682/091100013/