Python2.x系とPython3.x系、学習するならどちらを選択するべきか
Pythonを学習しようとするとき、ちょっと悩むことがあるかもしれません。
それは、最新のPython3.x系とPython2.x系のどちらを学習するべきか?という問題です。
Python3.x系は最新版であるのは確実ですが、ライブラリなど問題で、まだまだPython2.x系も現役で使用されていると言っても良い言語です。
今からPythonを学ぶのであればPython2.x系と3.x系ではどちらから始めれば良いのでしょうか。
Python2.x系と3.x系の関係について
Python3.x系は最新のバージョンです。Pythonは基本的に後方互換のある言語ですが、2.x系と3.x系の間には互換がないのがこの問題の根源となっています。
また、新しいMacやLinuxに標準でインストールされているバージョンはPython2.x系となっていますので、知らないでいるとPython2.x系が最新と思ってしまうかもしれません。
いまだにPython2.x系が3.x系に完全に切り替わらずにいるのは、互換性の問題もありますが多くの場合2.x系で利用できたライブラリが、3.x系に存在しないという問題が多いのです。
Python2.xと3.xでは何が異なっているのか
Python2.x系と3.x系の違いを簡単に説明すると次のようになります。
たとえば、print関数について、Python3.x系ではprintは「()」で括らなければなくなりました。地味ですが、2.xのコードを修正するには時間がかかります。
また、文字列の扱いについて2.xではstr型とunicode型の2つ種類がありましたが、3.xでは、str型に統一されました。
そして、これが一番問題となりそうなのが、整数の割り算です。2.x系では答えに整数を返しますが、3.x系では浮動小数点数で返します。これは気をつけないければ致命的な問題ともなりかねません。
その他にも、Unicodeのサポートやライブラリの整理や非同期I/Oのサポートなど、3.x系は2.x系に比べて順調に進化していると言えます。
最終的にどちらを学ぶべきなのか
では、最終的に今から学習するのであれば、Python2.x系がいいのでしょうかそれともPython3.x系が良いのでしょうか。
この問題にはさまざまな意見がありますが、おおむね新しいPython3.x系を学ぶべきだという意見が多いのが現状ですし、その通りでしょう。
まず、ライブラリの問題についてPython3.x系は2008年に誕生しました。それから現在までの間にメジャーなライブラリは3.x系でも整備されてきているので、不便はないはずです。
あえて古いPython2.x系のシステムを触らなければならないという特別な理由がない限り、何か新しいことするのであれば、新しいPython3.x系を学習するべきです。
もう一つはサポートの問題です。Python2.x系は2020年にサポートが終了します。
今後サポートが終了する予定の言語をあえて学習する必要はますますありえないと言えます。
そして、なによりもPython3.x系の方が2.x系よりもコードをシンプルに短く書くことができるようにアップデートされているのです。
学習を始めるのに一手間かかるかも
これらのことを体系的に考えると、今からPython2.x系を学習するのは、そのあとに3.x系を学習することになるのでオススメできないということになります。
しかし、現状Macなどには2.x系がプレインストールされている状態となっていますので、Python3を学習し始めるのであれば、3.xをインストールして環境を整えることから始めないといけないのが少し手間かもしれません。
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介