Column 19年05月 「学ば『なくても』いい」プログラミング言語?

Z会プログラミング講座の担当者が「ちょっと気になった記事」を紹介・解説します。今回は「プログラミング言語」に関する記事です。

2019年にわざわざ学ばなくてもいいプログラミング言語–Codementorがランキング発表
https://japan.zdnet.com/article/35135732/

世の中には数多くのプログラミング言語があり、そして今でも新たなプログラミング言語が開発されています。そのため「学ぶべきプログラミング言語」のランキングはよく見かけますが、この記事はその逆、「学ばなくてもいいプログラミング言語」のランキングに関するものです。

このランキングは、開発者同士が質問し合うことができる「Codementor」というコミュニティが発表したもので、(その言語の)コミュニティの活発さ、今後見込まれる成長、雇用市場の規模などから作成しているものです。ただし、「名前があがった言語の有用性や価値を否定するものではない」ことに注意が必要です。2019年は特に「おそらく第一の言語として学ぶべきではない言語」にフォーカスして調べ、Elm、CoffeeScript、Erlang、Lua、Perlといった言語がランクインしています。

「第一の言語」  
このランキングを読み解くにあたり、まず「第一の言語」という言葉を気にかけるべきでしょう。アプリやシステムの開発を行う、いわゆる「プログラマ」がただ1つのプログラミング言語しか扱えない例は多くありません。得意・不得意や、使用する頻度に差はあれども、ほとんどのプログラマが複数の言語を扱うことができます。一番深く理解している、「母語」ともいえるプログラミング言語があり、新しく言語を学ぶ際には「母語」の知識と比較しながら理解していくというケースは少なくありません。この「母語」にあたるものが「第一の言語」です。
それでは、「母語」にすべきプログラミング言語は有名なものであるべきなのでしょうか。後述するように、必ずしもそうではないのかもしれません。少なくとも、このランキングの上位にある言語ではないのでしょう。

時代の変化  
今から30年ほど前であれば、プログラミング言語の「母語」として「まずはC言語を学ぶべきだ」と主張する方が多かったように思います。決して敷居は低くない言語でしたが、当時は「商用アプリの開発」でC言語が使われるケースが多く、「プロ」であればC言語が使えることは必須だったのです。しかし今、C言語が使われるケースは減っています。このランキングでも、C言語は16位にランクインしています。
このように、新しい言語の登場により、これまで当たり前のように使われていた言語が使われなくなってくることがあります。また、プログラミングに関する新たな技術や考え方が浸透してくると、そうした技術に対応していない言語は使われなくなっていきます。C言語もそうですし、一時期はiOSアプリ作成に欠かせなかったObjective-Cや、ウェブページ上で動作する「プログラム」の作成でよく使われていたPerlなどがランクインしているのを見ると、このランキングからは「時代の変化」も感じられます。

「わざわざ」学ば「なくてもいい」という表現  

このランキングに登場する言語の中には、「ある分野」では今でも当たり前のように使われているものもあります。例えば12位にランクインしている「R」は統計分野では必須とも言えるものですし、19位の「Swift」はiOSアプリの開発に欠かせません。最初にもある通り、ランキングは「これらの言語の有用性を否定したものではない」ことがここからもわかります。これらの言語がランクインしているのは、ひとつには「コミュニティの活発さ、今後見込まれる成長、雇用市場の規模」が他の言語と比べて限定的だという面もあるのでしょうし、わざわざ学ばずとも「母語」がきちんとしていれば仕様書や解説書を片手に必要なコードが書けるから(習得が容易だから)、という理由もあるのでしょう。「有名だから」「有用だから」学ぶべきとは必ずしも言えないのです。

学ぶべきプログラミング言語は?  
それでは、「学ぶべきプログラミング言語」とは一体何なのでしょうか。
この問は、答える人の経験や立場、学ぶ人が何を必要としているのかによって答えが変わってきます。そのため「わからない」が正解です。いますぐ即戦力のプログラマになりたいという人にはJavaScript、Python、Javaといった(いま流行りの)言語が「正解」でしょうし、「プログラミング」の入り口に立ったばかりの人にはScratchを勧めるかもしれません。
とはいうものの、ひとつだけ、確かに言えることがあります。「嫌いにならないものを選んでね」。嫌いになってしまったら、どんなにいいものであったとしても、十分に身につくことはないのですから。