ポリグロットプログラミングの時代

人気プログラミング言語ランキングとして有名なTIOBE Indexでは相変わらずJavaは1位であるが、そのシェアは少しずつ下がりつつあり、大手企業でもJava以外の案件が増えるなど、長期目線が好きな筆者としてはCOBOLが辿った道を歩みつつあるように見える。

JavaのTIOBE Indexの推移
出典:TIOBE

とは言え、ウェブアプリ界隈ではC#やVB.NETなどが流行りつつもJavaを抜くに至っておらず、次に何がくるかとなると非常に難しい。

そんな中、ソフトウェア会社でありIT動向の予測なども行っているThoughtWorksのテクノロジー・レーダーにおいて”Polyglot programming”(ポリグロットプログラミング)がTRIALからADOPTに格上げされた。

テクノロジー・レーダーでは、新技術やフレームワークなどの動向に応じてHOLD→ASSESS→TRIAL→ADOPTと指定している。ポリグロットプログラミングは2010年以来長らくTRIALのままだった。ADOPTに引き上げられたということは、同社にとっては今後の飛躍を強く信じているということになる。

同社は2010年にOracleがSun(Javaの開発企業)を買収したことで「Javaの終焉」をASSESSに入れるなど大外しをしている一方で、2010年の時に「JavaScriptが一級言語として利用される」をADOPTとするなどの彗眼も見られた。

ここでのポリグロットプログラミングは「様々なエコシステムや言語機能をサポートする複数の言語を採用すること」を指している。最近は「一つのコードで複数のプログラミング言語で実行できること」を言う場合も多いが、その意味ではない。

古くからのウォーターフォール型の開発工程においては、一つの安定した言語を扱い、せいぜいはデータベースにおいてSQLを使うといったくらいがポリグロットプログラミングの範疇であった。

しかし、テクノロジー・レーダーでいうポリグロットプログラミングは、もっと動的に柔軟に複数の言語を採用することで、プロセスを加速し、システムの稼働を早めることを言っている。

これは別にアジャイル型開発だけを指しているわけではなく、組織において適した言語の数はいくつかというのを考えよというのが主題である。つまり、決してJava + SQLが最適解ではないだろうというのが暗に込められたメッセージである。

そういう意味では、この考え方に近いのはポストJavaとして注目されているScalaやClojureであろう。開発速度が遅く、最近のプログラミング言語の進化についていけないJavaに対し、JVM(Java Virtual Machine)上で動くようにコンパイルできれば、どのような言語でも良いというのはポリグロットプログラミングの考え方に近い。

ScalaやClojureはクロスランゲージという表現が用いられ、厳密にポリグロットプログラミングと言えないかもしれないが、状況に応じてJava資産を使うことも多いので、非常に多言語的な発想である。

企業がどの言語に投資すべきか、投資家がどの言語を推進する企業に投資すべきか、或いは個人がどの言語を習得すべきかなど、プログラミング言語の行末は今後ますます予測が難しくなってくるが、少なくとも一つの言語に固執し過ぎて時代に取り残されないようにリスクヘッジすることは必要になってくると思われる。

参考文献

ThoughtWorks, “Technology Rader Vol. 20”

Venture Beat, “How programming languages have evolved: a 2019 primer”, Apr 24, 2019

About HAL

金融・マーケティング分野の機械学習システム開発や導入支援が専門。SlofiAでは主に海外情勢に関する記事、金融工学や機械学習に関する記事を担当。

View all posts by HAL →