皆さんの得意なプログラミング言語はなんでしょうか? 「弘法筆を選ばず」というように、優秀なエンジニアになればなるほど特定言語に対するこだわりはなくなるように思いますが、やはり一番書きやすい言語や自分に合う言語というのもはあるものだと思います。
今回はそんなプログラミング言語の人気ランキングを、サーバサイド中心に希望者数、経験者数、求人票登場数、利用者数、優秀者数、世界的な人気などの、6つ角度で調べてみました。
※paizaのデータについては今回サーバサイドを中心としているのでJavaScriptは省いています。また選択肢として最近paizaで追加した言語も省いています。
■転職時に希望する言語ランキング
paiza登録エンジニアが「どのような開発言語の求人を希望するか」のランキングです。今後経験を深めたい言語ランキングとも言えるので、今後のシェアに近いかもしれません。
※paizaのプロフィール設定で「希望する条件」で選択された言語を集計しているので、一人で複数言語が選択可能。母数は「希望する条件」の登録者数。未登録者は省いています。
- Java 49.0%
- PHP 35.2%
- Ruby 34.5%
- C# 29.3%
- C++ 27.7%
- C 27.4%
- Python 23.6%
- Objective-C 20.9%
- Scala 11.8%
- Perl 11.2%
- R言語 5.0%
- Go言語 4.7%
- Erlang 2.9%
この記事のタイトルでも書きましたが、Javaは恐ろしく強く、49%の人が選んでおり圧倒的な人気っぷりです。Javaは人口が多いという事も有りますが、Androidアプリ開発をやりたい人が希望する事も有り、今迄以上に人気になっているようです。
■経験言語ランキング(3年以上の経験)
paiza登録エンジニアで実務経験が3年以上ある人に絞って、3年以上の経験がある言語のランキングを出してみました。上記の希望言語ランキングとは異なり、これまで経験してきた言語になります。
※Go言語は歴史が浅いので1年以上の実務経験がある人としています。
- Java 35.8%
- PHP 28.1%
- C 28.0%
- C++ 19.7%
- C# 17.2%
- Perl 10.0%
- Ruby 6.8%
- Python 4.6%
- Objective-C 3.2%
- Scala 0.3%
- R言語 0.2%
- Go言語 0.2%
- Erlang 0.1%
◆希望と経験のギャップ
下記のグラフでは希望言語と経験言語でどのぐらいギャップがあるのか見える様に、希望言語と経験言語を同じグラフにプロットしてみてみました。経験言語は実務経験3年以上の言語と、縛りがきつめなので、希望言語に比べると割合が若干低めになっています。希望割合が多く、経験言語とのギャップが特に大きかったのはRuby、Python、Objective-Cになります。少し前まで、LL系言語はPHPが中心でしたが、それがRuby、Pythonに取って代わられ始めているというのと、スマホアプリ開発の盛り上がりとともにObjective-C、Javaの人気が出てきている、という事なのではないかと思います。
■求人人気言語ランキング
paizaの求人票に載っている開発言語のランキングです。paiza求人票は、応募必須要件のプログラミング言語とは別に、その企業・プロジェクトで実際に使われているプログラミング言語を下記の画像のように掲載しています。
その中でも一番メインに使うメイン言語と部分的に使っているサブ言語に分けて掲載しています。メイン言語は上記の画像の様に、大きく表示される様になっています。そのメイン言語に絞ったランキングがこちらです。
- PHP 32.8%
- Java 23.4%
- Ruby 16.4%
- Objective-C 11.7%
- Python 6.3%
- C++ 3.9%
- C# 3.9%
- C 0.8%
- Perl 0.8%
paizaはWeb系求人が多いため、PHPが一位となり、Java、Rubyと続きます。こちらでもPerlが風前の灯状態なのが少し寂しいですね。。
■paiza受験数ランキング
次にpaizaプログラミングスキルチェックの受験言語の割合ランキングです。paizaの受験者に限られるため、少し偏っている可能性がありますが、受験言語なので、受験者が一番得意としているメイン言語ランキングと言えるでしょう。
- Java: 22.60 %
- Ruby: 15.96 %
- PHP: 13.69 %
- Python: 11.94 %
- C++: 10.78 %
- C#: 9.10 %
- C: 8.57 %
- Perl: 4.88 %
Javaが多いのは鉄板ですが、2位にRubyというは少し意外かもしれません。Perlは最下位で、現在ではメイン言語として使われる事は少ないようです。
※JavaScriptは途中から受験言語に追加されたのでここでは除外しています。
■優秀な人が使っている言語ランキング
paizaプログラミングスキルチェックの最難関問題で平均点の高いプログラミング言語が、もっとも優秀なプログラマが使うプログラミング言語と言えるのではないかと思い、「S003:嘘つき探し」の各言語毎の平均点を調べてみました。
paizaプログラミングスキルチェックは、もっとも簡単なランクD問題から最難関のランクS問題と5段階に問題ランクが分かれて出題されています(近々にランクE問題も追加予定です)。その最高峰ランクS問題の中でも一番平均点の低い「S003:嘘つき探し」はpaiza最難関問題と言えます。
他の問題の平均点は大体50点~90点程度ですが(ログインしなくても問題一覧で参照可能です)、「S003:嘘つき探し」の平均点は25.44点(2014/10/5現在)とダントツで低い点数となっています。
◆S003:嘘つき探し 平均スコア25.44 点
- C++: 48.49点
- C: 28.18点
- Java: 25.37点
- Python: 24.80点
- Perl: 22.05点
- C#: 21.55点
- PHP: 16.43点
- Ruby: 16.02点
Sランク問題はアルゴリズム力が問われる問題でもあるので、競技プログラミング系の人が強くなる傾向にあります。LL系言語の方は苦戦しているようです。
(paizaのプログラミングスキルチェックの問題は言語の実行速度の差は基本的に問われません。高ランク問題はアルゴリズムを理解して使う事が出来ればどの言語でもクリアする事が可能です。)
■TIOBEプログラミング言語ランキング
最後はITエンジニアだったら皆さんおなじみの、オランダのTIOBE Softwareが発表しているTIOBE Indexの2014/10のランキングから。
TIOBE Indexはグーグル、ビング、ヤフー、ウィキペディア、アマゾン、YouTube等の検索クエリ数をベースとして独自のアルゴリズムで指標化しています。厳密な利用率ではありませんが、ワールドワイドでホットなプログラミング言語を知るには有効なランキングです。
2014/10/1 | 2013/10/1 | プログラミング言語 | 割合 | 変動 |
---|---|---|---|---|
1 | 1 | C | 17.66% | 0.41% |
2 | 2 | Java | 13.51% | -2.60% |
3 | 3 | Objective-C | 10.10% | 1.10% |
4 | 4 | C++ | 4.87% | -3.80% |
5 | 6 | C# | 4.75% | -0.97% |
6 | 7 | Basic | 3.51% | -1.31% |
7 | 5 | PHP | 2.94% | -3.15% |
8 | 8 | Python | 2.33% | -0.77% |
9 | 12 | Perl | 2.12% | 0.51% |
10 | 9 | Transact-SQL | 2.10% | -0.52% |
11 | 17 | Delphi/Object Pascal | 1.81% | 1.11% |
12 | 10 | JavaScript | 1.77% | -0.27% |
13 | 11 | Visual Basic .NET | 1.75% | -0.18% |
14 | - | Visual Basic | 1.56% | 1.56% |
15 | 21 | R | 1.52% | 0.97% |
16 | 13 | Ruby | 1.13% | -0.12% |
17 | 81 | Dart | 1.12% | 1.03% |
18 | 24 | F# | 0.87% | 0.37% |
19 | - | Swift | 0.76% | 0.76% |
20 | 14 | Pascal | 0.73% | -0.03% |
ここ数年のトレンドとしては、Java1位から2位に転落、Objective-Cが3位に急浮上、C++が半減、と言った感じでしょうか。ワールドワイドのトレンドなので、Cが1位だったり、Basic、Dartがランクインしていたり、RubyよりもPythonが上位にいたりする辺りで違いを感じます。
■まとめ
いくつかの軸で、人気のプログラミング言語ランキングを見てきましたがいかがだったでしょうか。
国内ではコンパイラ系だとAndroidの影響も有りJavaがより強くなり、LL系だとRubyがPHPに迫ってきている状況です。またiPhoneアプリ開発の盛り上がりも有りObjective-Cもそれらに続くような状況になっています。Swiftがどこ迄盛り上がるのかは今後要注目です。逆にここに来て急速に失速しているのがPerlです。
今後学んでみるプログラミング言語の参考などにしていただければ幸いです。
■paizaについて
paizaでは、プログラミングスキルチェック問題(9言語に対応)を多数ご用意いたしております。Javaはもちろん多数の言語に対応しておりますので、「プログラミング問題を解いてみたい」「自分のスキルを試してみたい」という方にもピッタリです!
paizaでプログラミング問題を解くと、結果によりS・A・B・C・D・Eの6段階で自分のスキルのランクが分かります。問題はレベルごとに分かれており、初心者から上級者の方まで挑戦していただけますので、自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください!!
プログラミング問題による学習コンテンツ(paiza Learning)もございますので、「まったくのプログラミング未経験者なのでプログラミング学習から始めたいな」という方もぜひご利用ください。
さらに、paizaが運営する無料オンラインプログラミング実行環境サービス「paiza.IO (パイザ・アイオー)」では、JavaScriptはもちろん、多数プログラミング言語のプログラミングが面倒な環境構築なしに無料でできますのでぜひご利用ください!
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。