筆者は、Python試験を運営しているPythonエンジニア育成推進協会の代表理事を務めています。現在、Pythonは右肩上がりで成長していますが、日本ではPythonができるエンジニアが少ないうえ、AI分野での活躍が見込まれることもあり、今後需要が高まることが予想されます。

そこで本稿では、Pythonに関する最新動向を整理しつつ、PythonをベースとしたAI分野で必要とされるエンジニアの教育について紹介します。

プログラミング言語ランキングで上位の常連

プログラミングに興味がある方であればご存じだと思いますが、現在、Pythonは破竹の勢いで成長しています。ビッグデータ、機械学習、ネットワークインフラ(OpenStackなど)で標準的に利用されており、エンジニアの求人数、人気言語ランキング、平均給与ランキングなど、ほぼすべての指標でPythonは上位に位置しています。

例えば、PYPLによる12月のプログラミング言語ランキングではシェア25%で第1位を確保しています。また、今年7月にIEEEが発表したランキングでも第1位を獲得しています。

  • The 2018 Top Programming Languages - IEEE Spectrum Ranking 資料:IEEE

さらに、Stack Overflowが1年おきに公開している開発者調査レポートの2018年版となる「Stack Overflow Developer Survey 2018」では、求められている言語ランキングでは第1位、愛されているプログラミング言語ランキングで第3位を獲得しています。

  • The 2018 Top Programming Languages - IEEE Spectrum Ranking 資料:IEEE

こうした調査の結果は変動しますので、1回の調査結果に一喜一憂する必要はないのですが、参考としていただければと思います。

米国に比べ、Pythonエンジニアの数が少ない日本

このように、Pythonはエンジニアとして求められ、エンジニアに愛され、言語の勢いとしてもトップクラスです。ちなみに、日本と米国ではPythonの普及度が違いますので、平均給与に関する海外のデータは当てになりません。

例えば、マイナビニュースの「2018年お金になるプログラミング言語トップ25」という記事において、Pythonは平均給与の上位に名前が出ていません。

実のところ、平均給与とエンジニアの数は関連性があります。エンジニアの数が増えると給与は下がってしまいます。米国において、Pythonは言語別の求人数でJavaに次ぐ2位で、市場規模として大きくなっています。このような状況では、米国におけるPythonエンジニアの平均給与はあまり高くないはずです。

一方、日本ではどうかというと、求人数でようやくトップ10に入ったばかりであり、エンジニアの人数が少ないので、まだまだ高い給与で推移していくことが予想されます。

押さえておきたいフィロソフィー「Pythonic(パイソニック)」

ここで重要なことを申し上げましょう。日本において、Pythonは初心者向けの言語として認識されていませんが、海外では入門用の言語としてポジションを確立しています。文法がしっかりしていて、保守性も高いため、読みやすく、プログラムのメンテナンスを引き継ぎやすいという特徴があるからです。

その根底にあるのが「Pythonic」(パイソニック)というフィロソフィーです。「Pythonic」はプログラミングフィロソフィーに関して幅広い意味を含む言葉です。作法という意味合いで理解されてもよいかもしれません。以下、Wikipediaから引用した「Pythonic」の英文説明をご紹介します。「Pythonic」を理解する上で参考にしてください。

A common neologism in the Python community is pythonic, which can have a wide range of meanings related to program style.
To say that code is pythonic is to say that it uses Python idioms well, that it is natural or shows fluency in the language, that it conforms with Python’s minimalist philosophy and emphasis on readability.
In contrast, code that is difficult to understand or reads like a rough transcription from another programming language is called unpythonic.

引用:http://en.wikipedia.org/wiki/Python_(programming_language)