今、IT業界で最も注目を集めているプログラミング言語、それが「Python(パイソン)」です。人工知能(AI)ブームを追い風に、パイソンを使ったソフトウェア開発に挑戦したり、学習を始める技術者や学生が急増しています。プログラミング言語の世界にあまり詳しくない初心者の方に向けて、この言語がなぜこれほどまでに人気なのか、その特徴と魅力について分かりやすくお伝えしましょう。
その人気の高さを裏付けるように、独立行政法人情報処理推進機構(IPA)は、2020年春からITに関する国家試験「基本情報技術者試験」において、選択可能なプログラミング言語として新たにパイソンを追加する予定です。これは、今後のIT人材育成におけるパイソンの重要性を示す動きといえるでしょう。また、日経 xTECHが2018年10月に実施した「プログラミング言語実態調査」でも、パイソンの人気は圧倒的でした。「今後スキルを磨きたいプログラミング言語」を尋ねたところ、回答者1000人のうち670人もの人がパイソンを選択し、堂々の第1位に輝いています。
パイソンの技術者コミュニティに長年携わるビープラウドの清原弘貴PyQファウンダーは、この人気沸騰の最大の要因を「AIブームによって牽引されている」と分析しています。特に、近年注目度が高まっているAIの一分野である「深層学習(ディープラーニング)」で、パイソンの存在感は非常に大きなものとなっているからです。深層学習とは、人間の脳神経回路を模した「ニューラルネットワーク」を多層にしてデータから特徴を自動で学習させる技術であり、AI分野のブレイクスルーのきっかけとなりました。
デンソーグループでAI研究を担うデンソーアイティーラボラトリの吉田悠一研究開発グループシニアリサーチャは、「深層学習を用いたソフトウェア開発を行う場合、プログラミング言語の選択肢は事実上パイソン一択という状況だ」と指摘しています。ソフトウェア開発を効率的に進めるためには、既に作られた機能や部品をまとめた「ライブラリ」の利用が不可欠です。吉田シニアリサーチャは、「ゼロから全てを開発すれば1カ月を要するところを、ライブラリを活用すれば数行のコードを記述するだけで実装が可能になる」と、その利便性の高さを強調します。試行錯誤を繰り返すAI関連のソフトウェア開発においては、手軽に試行錯誤できるかどうかが大きな差を生むのですね。
AI・機械学習開発を支える豊富なライブラリ群
具体的に、AI開発の現場で頻繁に使われる主要なライブラリには、米グーグルが開発・公開している深層学習ライブラリ「TensorFlow(テンソルフロー)」、米フェイスブックが開発・公開している深層学習ライブラリ「PyTorch(パイトーチ)」、そして幅広い機械学習アルゴリズムをカバーする「scikit-learn(サイキットラーン)」などがあります。これらは全て無料で利用できるオープンソースとして公開されており、誰でも自由に使うことができる点が大きな魅力です。
これらのライブラリに処理の指示を出すプログラムを記述する際、対応するプログラミング言語はライブラリによって異なりますが、ほぼ全ての主要なライブラリで共通して使用できるのがパイソンなのです。目的に合わせて異なるライブラリを使い分けたり、あるいはライブラリ同士を比較検討したりする場面でも、パイソンが標準的な言語として活用されています。AI分野におけるエンジニアや研究者の間でパイソン利用が主流となっているため、インターネット上の技術情報もパイソンに関するものが圧倒的に多く蓄積されている状態です。システム開発大手TISの美澄暢彦サービス事業統括本部主任も、「インターネットでAIについて検索すると、プログラム例として出てくるのはほとんどがパイソンだ。参考となる情報が豊富にあり、AIを扱うのであればパイソンを利用することが近道となるでしょう」と述べています。
データ分析やWebアプリ開発など汎用性の高さも魅力
パイソン人気が沸騰したきっかけはAIでしたが、パイソン自体はAI専用言語ではなく、汎用的なプログラミング言語です。現在では、データ分析の分野で主要な言語の一つとして活用されているほか、ウェブアプリケーションの開発にも広く使われています。特にデータ分析は、AIと並んで現在のパイソン人気を支える重要な要因となっています。
データ分析の分野でも、オープンソースのライブラリの豊富さが強みを発揮しています。具体的には、高性能な数値計算を可能にする「NumPy(ナムパイ)」や「SciPy(サイパイ)」、表形式データの分析と処理をサポートする「Pandas(パンダス)」、そしてデータをグラフ化する「matplotlib(マットプロットリブ)」などが代表的です。また、ウェブブラウザ上で対話的にパイソンのコードを実行できるツール「Jupyter Notebook(ジュパイター・ノートブック)」も頻繁に利用されています。ビープラウドの斎藤努ITコンサルタントによると、データ分析用途でパイソンが注目され始めたのは、1995年に前身の初版が開発されたナムパイがきっかけだったとのことです。有償の数値計算ツール「MATLAB(マトラボ)」に相当する計算を高速かつ無料で実現できるメリットが、海外の大学の教員や学生を中心に評価され、利用が拡大していった経緯があります。
データ分析用途におけるパイソンの優位性は、大きく二点挙げられます。一つ目は、プログラミング言語本体もライブラリもオープンソースである点です。ブリヂストンの三枝幸夫Nest Lab.フェローは、「興味深いデータ分析の結果が得られた際に、チーム内の他のメンバーと容易に共有できる点が大きな利点です」と語っています。二つ目は、汎用的な言語であるため、カバーできる範囲が広いことです。データ分析でパイソンと人気を二分するオープンソース言語「R」と比較すると、この特徴が際立ちます。Rがデータ分析に特化しているのに対し、パイソンは数理最適化や機械学習のライブラリも充実しており、データ分析だけでなく、その後のデータの活用までを一つの言語でシームレスにカバーできるのが強みです。
また、ウェブアプリケーション開発では、オープンソースのウェブアプリケーションフレームワークである「Django(ジャンゴ)」や「Flask(フラスク)」が有名です。一般的にジャンゴは中~大規模開発向け、フラスクは小規模開発向けとして使い分けられています。フェイスブックが運営する世界的な写真投稿サイト「Instagram(インスタグラム)」は、ジャンゴとパイソンで構築されたウェブサービスの代表例として知られています。フェイスブックからのコメントによれば、「インスタグラムは基本的に全てがパイソンで実装されており、核となっているのは常にジャンゴを使用し続けている」とのことです。
多くのエンジニアから熱烈な支持を受けるパイソンですが、もちろん万能というわけではありません。例えば、ライブラリ自体は高速に動作するものの、パイソンで書かれたプログラム本体は一般的に実行速度が遅いという側面があります。また、パイソンを使った開発実務の経験者がまだ少ない点も、今後の普及に向けた課題といえるでしょう。しかし、現在の圧倒的な人気ぶりと、AI・データ分析分野での代替が効かない優位性を考慮すると、現時点ではデメリットをメリットが大きく凌駕していると判断できます。
私自身の見解としても、AIの爆発的な発展と、それに伴うデータ活用のニーズの高まりを考えると、パイソンの未来は極めて明るいといえます。シンプルで書きやすいコード、そして何よりも巨大で質の高いオープンソースコミュニティに支えられた豊富なライブラリ群は、新しい技術を素早く取り込みたい開発者にとって最高の環境を提供しているのではないでしょうか。特に、これからプログラミングを学ぶ方や、新しいスキルを身につけたいと考えている方にとって、パイソンは間違いなく最優先で学ぶべき言語の一つでしょう。SNS上でも「パイソンは習得しやすく実用性が高い」「AIやるならとりあえずパイソンから」といったポジティブな反響が多数寄せられており、この波は今後さらに大きくなることが予想されます。
コメント