現在需要がある言語で将来も稼げるとは限らない
COBOLを使えば高収入を得られるが、おそらくキャリアを限定することになってしまう。言語がマニアックになればなるほど、企業はより多くの給与を支払う傾向にあるだろう。需要と供給のシンプルな問題だ。あるいは、MongoDBのケリー・スターマンはそのことを「得られる収入の額と採用の可能性は反比例する」と定義している。
Quartzの「履歴書で最もアピールできるプログラミングスキル」のランキングが間違いであり、人を惑わせる理由がまさにそれだ。どのプログラミング言語が「ベスト」なのかは多くの要因が絡んでおり、その言語で今どれくらい稼げるかということは、ひょっとして最も軽視されているかもしれないのだ。
人気争いではどうか
結局、ベストなプログラミング言語とは、必ずしも最も稼げる言語というわけではなく、仕事探しに困らない言語、ということになりそうだ。
その基準から言えば、Redmonkの四半期ごとの人気プログラミング言語リスト(GitHubとStack Overflowとの照合データから抜粋)は、次に習得する言語を探す優れた参考資料と言えそうだ。
このランキングで、JavaとJavaScriptはトップの座を巡って接戦を演じ、グーグルのGo言語はチャートを急上昇して21位にランクインしている。では、ある言語は他の言語よりも重要なのだろうか?
たぶんそうだ。
Pivotalのチーフ研究員のミリンド・バーンダールカルはこう強調している。
@mjasay c++11 is new assembly, Java is new C, go is new java, and python is new cobol. There were never “most” imp langs & never will be.
Milind Bhandarkar (@techmilind) Nov 27, 2014
Matt Asay (@mjasay):「どのプログラミング言語が最も重要だと思いますか?またその理由は?」
Milind Bhandarkar(@techmilind):「c++11は新しいアセンブリで、Javaは新しいC、Goは新しいJavaでpythonは新しいcobolですね。「最も」重要な言語というのは今までも、これからも、ありません」
バーンダールカルは正しい。業界全般にわたってプログラミング言語の重要度を客観的に評価する方法はないかもしれない。しかし開発者各自が自分にとってベストな言語を決める主観的な方法ならば確実に存在する。つまり、自分の将来設計に合った言語を選ぶということだ。
将来設計
例えば、クラウドの専門家サイモン・ワードリーは「インターネットがオペレーティングシステムならば、JavaScriptがその言語だ」と言っている。
クラウドを将来やりたいと考えるならば、Goが上位にランクインするはずだ。Red Hatのポール・ランディンによると、「Goは困難な問題も簡単に解決してしまう」ので、「クラウド時代で最も面白い(言語)」だという。
モバイルを選ぶ?それならば、Swift(アップル)やJava(Android)は必須だろう。
自身の選択に自信がなければ、Redmonkがまとめたようなプログラミング言語の人気ランキングを見てカンニングすればよい。Goがそうだったように、人気が急上昇する言語に注目していればいいのだ。
あるいは企業に人気の言語を、給与額ではなく求人数から探ってみよう。その基準でIndeed.comのデータを見ると、Ruby は衰えつつあり、Pythonは比較的コンスタントに人気で、Goは爆発的に伸びている。しかし、超右肩上がりの成長を求めるなら、Node.jsが最適だろう。