人工知能チャットボット「Chat GPT」などの高性能な機能が話題を呼び、さらなる技術革新が予想されるIT業界。アプリやウェブサービス、システム開発の基盤となるのがプログラミング言語であるが、今、その人気に変化が起きているという。ソフトウェアの品質管理の評価を発表しているオランダの「TIOBE Software」によれば、2022年に最も人気が上昇したプログラミング言語第1位は「C++」。人工知能(AI)開発、ロボット制御技術によく使用される言語であり、有名どころでいえば「Google Chrome」の主言語でもある。
同ランキングは第2位「C」、第3位「Python」と続き、第4位にランクインしたのが「Java」で、Javaは21年の第3位から転落してしまっているのだ。なぜプログラミング言語の代表格ともいえるJavaに代わり、C++の人気が伸びているのか。ITジャーナリストの神崎洋治氏に聞いた。
C++人気はじわじわ上昇、Javaはライセンス料開始が仇か
「人気のある言語は時代とともに常に移り変わっていくものであるということを前提としてお話しすると、C++は常に人気が高い言語だといえるでしょう。C++の強みは、応用できる分野が幅広い点にあります。C++は、C言語から派生して生まれたオブジェクト指向の言語であり、1985年にBjarne Stroustrup氏によって開発されました。OSではLinuxやWindows環境での開発にも使用されており、かねてからウェブやアプリケーション開発のジャンルにおいて人気のある言語です。
加えて、近年ではロボット工学やゲーム業界でも注目度が上がっています。実際、ロボットを動かすためのOS、ROSは、C++で書くプログラマーが多くなっており、またレンダリング(データの処理、演算によって画像や映像を表示させる作業)にも優れています。おまけにC++は、国際標準化機構(ISO)により規格化されたバージョンにも対応しているので、企業やプログラマーが安心して利用できることも、徐々に利用率が高くなった要因と考えることができます」(神崎氏)
TIOBEのCEOであるPaul Jansen氏は、11年にリリースし、従来の規格から大幅に変更が施された「C++11」によりC++の人気が高まったと指摘。そして、20年の最新版である「C++20」のリリースが、C++の人気を高める二度目の大きな出来事となったと解説している。一方、Javaは順位を落としてしまった。
「もともとJavaは人気の高い言語のひとつです。1995年に米Sun Microsystems(当時)からリリースされたJavaは、大規模システム構築がしやすい汎用度の高いオブジェクト指向の言語です。従来の市場調査を見ても、C++よりはJavaのほうがニーズは高く、プログラミング言語の王様のような存在でした」(同)
ところが、Java人気が陰りを見せる出来事があったという。
「現在、Javaのプラットフォームを提供するOracleは、18年9月よりJavaのJDK(Java Development Kitの略。Javaでプログラミングを行う際に必要とするものを一式にしたパッケージ)の一部を商用ライセンス(有償化)にすると発表したんです。つまり『Javaを使うんだったらお金を出せ』ということですね。
JavaはAndroidやウェブ開発などさまざまなシステムで人気のある言語なので、ライセンス料がかかるとなるとその打撃は計り知れません。ですから、近年のIT市場では別の言語に代替したり、独自言語を開発したりして、Javaから脱却する流れが見られます。たとえば、Android開発では、『Kotlin』やGoogleが独自開発した言語『Go』の導入が進められています。このようにビジネス上の政治的要因でJava離れが進んでいるのではないでしょうか。そのためJavaが相対的に順位を落としている可能性があると考えています」(同)
プログラミング初学者におすすめなPython、その理由は?
C++とJavaのニーズの割合が多少変動しているようだが、大局的に見れば、各分野によって求められる言語は異なってくるのだという。
「たとえば、MacやiOSのようなApple系のアプリ開発をする人は、Appleが独自に開発した『Swift』をマスターしておくと便利。またゲーム分野で活動する人は『C♯』、ハードウェア関係のアクセス、メモリーの管理まで自分で賄いたい人は『C』といった具合に自分が活動したい分野、作業したい環境によって勉強すべき言語は変化します。
IT業界全般を見ても、どの言語のニーズが高まっているかは、分野ごとに事情が異なっています。また所属する企業や受注する案件によっては、自分の学びたい言語を選べない環境にあることも考えられるので、プログラマーによって言語の習得にばらつきがあることはご理解ください。したがって、ランキングの結果から何の言語を学ぶべきか考察するのは少々難しいんです」(同)
だが、あえてプログラミング初学者におすすめするならば、Pythonは学んでおいても損はない言語だという。
「汎用性の高さ、効率的に学習できるという点でPythonは優秀です。現在ホットなAIやIoT(モノとインターネットを接続して操作できるようにするテクノロジー)といった分野では、Pythonプログラマーの募集が多く、ニーズも大きい。そして何より、Pythonはライブラリ(汎用的なソースコードを保存する場所)が充実しており、勉強するときに参考にしやすいのが最大のメリットです。
ライブラリを参考にしながら学習すれば、プログラムを断然組みやすくなるので、初学者からすると心強いでしょう。しかもPythonは、ソフトウェア開発のプラットフォームである『GitHub』にもライブラリが大量に保管されており、またユーザー数も多いことからすぐに情報を取得しやすいのでおすすめです。
また日本発のプログラミング言語にこだわるなら、日本人のまつもとゆきひろ氏によって開発されたRubyを勉強するのもいいかもしれません。プログラミング言語は、そのほとんどが海外産なので、サポートやマニュアルが日本語対応していないケースがほとんど。その点、Rubyは純日本製の言語ですので、英語が苦手な人には安心感が強いかもしれません。」(同)
初学者はPythonを学んでおけばハズレはなさそうだが、それでも1つか2つの言語に固執することなく、業界の言語ニーズ動向は常にウォッチしておく必要がありそうだ。
「時代によって求められる言語が変わるのは、先ほど申し上げたとおりです。歴史的に見ても、インターネットが発達してからはプログラミングの主戦場はウェブへと変わり、その後スマホアプリの開発ニーズが高まりました。そして、AIやロボットなど、その都度重宝されるプログラミング言語も変わってきているので、今回のJavaとC++のように業界全体のニーズが変化する可能性は当然あります。ですから『どの言語を学んでおけば大丈夫か』という考え方ではなく、『自分がどの業界で活躍したいか』を考えることで、学ぶべき言語が見えてきます。また、ビジネスで考えた場合は、業界全体に対する感度を高くし、将来的にどの言語にニーズが集まるのか情報収集して推測することが大事です。それでも心配な人は、とりあえず初学者のうちにPythonを学んでみて、徐々に今現在ニーズが高いC++やJavaの使い方を学んでいく流れがスムーズかもしれませんね」(同)
(取材・文=文月/A4studio、協力=神崎洋治/ITライター)