新卒プログラミング言語人気ランキングに見るトレンド傾向
先立ってサポーターズに登録のある学生402名に対するアンケート調査を実施しました。サポーターズに登録のある方々は新卒就活生の中でも上位10%と言われています。彼らの志向性を知ることで技術選定時の将来的な優位性を獲得できる可能性があります。今回はプログラミング言語の人気ランキングについて、その傾向や背景についてお話していきます。
普段使っている or 好きな言語
普段使っている or 好きな言語としては1位がPython、2位がJavaScriptという結果となりました。近年の情報系学校ではデータ分析をカリキュラムに組み込んでいるため、学習機会が大きい傾向にあります。データエンジニアリング、そしてそれにシームレスに繋がるAI、機械学習領域は研究費も獲得しやすい傾向にあることから、ゼミや研究室でも使われる傾向にあります。また、データエンジニアやデータサイエンティストを育成するための大手企業による寄附講座などもあり、講師、カリキュラム、データセットが同時に提供されています。
JavaScriptは10年以上に渡って大学のプログラミング基礎になっている傾向があります。かつてはC、C++、Javaといったコンパイル言語が中心でした。しかし多少エラーがあっても動き、視覚的に動きがあり、成功体験を積みやすいことからJavaScriptへと推移していきました。
これから挑戦してみたい言語
これから挑戦したい言語ランキングとしては上記のようになりました。
GoについてはWeb系自社サービス企業の導入が一般化しています。PHPやRubyなどで構成されたシステムから、マイクロサービス化を兼ねたサーバサイドのリプレイスが行われている傾向にあります。
JavaについてはSIerなどでの利用が多くあります。業務システムで用いられるため需要が手堅いです。特にコロナ禍の政情不安や、2022年後半から世界を見舞っている不景気に関連し、安定した職を求める傾向にあり、大手SIerを志望する学生が増加傾向にあります。
JavaScriptについては既に大学の基礎授業で学んでいる方が多いため、4位になっていると考えられます。
KotlinについてはAndroidアプリの開発だけでなく、Javaの代わりにサーバサイドの実装に使われている事例が増えています。
なぜRustは人気なのか?
ランキングにおいて第二位につけているRustの人気が目に留まります。人材紹介会社やフリーランスエージェントの言語別ランキングではあまりランキングしないものです。ただしStack Overflow Developer Survey 2022の好きな言語ランキングではRustは1位を獲得しています。
Rust人気の背景について、Rustを商用プロダクトに採用しているエンジニアにヒアリングをしてみました。
他の言語と比べた際、ソフトウェアエンジニアがRustを書くと下記のような文法上の利点に気づくとのことです。
値の有無を表すOption型、成功失敗を表すResult型が標準で用意されている
Enumの各バリアントが別の型をパラメータとして持つことができる
Traitを使って型のインターフェイスを統一することがやりやすい
また、下記のような特徴もあります。
環境構築が簡単
処理が高速
多くの言語がGCで解決している部分を所有権の概念で管理
様々な言語からいいところ取りをした文法
親切なコンパイラのエラーメッセージ
これから挑戦してみたい言語1位であるGoとの比較について、処理速度に注目して比較したサイトが下記となります。
また、この方によると「Goは並列処理が簡単に書ける良さがある一方で、Rustの方がプログラマがコントロールできる領域が広いということで価値を見出す人が多いのではないか」とのことです。「Cより書きやすく、C++より安全に書けつつ速度が同等でユーザーがある程度居る唯一の言語がRustなのではないか」とのことです。
加えてIoTでもRustが使われる傾向にあります。この点については「メモリを自身でコントロールしたいというニーズに答えやすい。コミュニティとしても2018年時点で組み込み領域に力を入れていくという意思決定をしていました」とのことでした。
日本語でのコミュニティも充実しているとのことで、こちらもRustが人気になっている背景としてあると考えられます。
エンジニア採用とプログラミング言語選定
将来を予測しながら人の集まりやすいプログラミング言語選定をしておくというのは重要な観点です。Javaについては業務システムを中心に殿堂入りした感がありますが、それ以外の領域については入れ替わりが発生しています。例えば定期的に話題になるプログラミング言語別年収ランキングですが、上位の言語の中には「扱える人材が採用市場に居ないため上昇している」ものが存在しています。企業体力がなければそういった言語の選択は避けるべきでしょう。
また、既に社内にいるエンジニアの学習コストも考慮しなければなりません。過去にPHPエンジニアが集まって居た組織で、使用言語をJavaにしたことがあります。コンパイルとは?というところから学習をしたり、ソケット通信についての理解をしてもらう必要があったことから、なかなか大変なプロジェクトとなりました。
新規事業について新しいプログラミング言語を選定するケースもよく耳にします。社内に当該プログラミング言語のノウハウを貯めることからしなければならない障壁に苦しむケースもよく見かけます。無事にローンチしたとしても既存事業と新規事業で差ができてしまい、基幹事業である既存事業の社内に対する訴求が弱まってしまうケースも見られます。
このような事象も踏まえながら、プログラミング言語選定をしていくことをお勧めします。