プログラミングを勉強する際に最初に考えるのは「どの言語を学ぼうか」ということです。これを外してしまうと、折角身に付けたのに活躍の場がないなんてことになります。
どの言語を学ぶべきかを判断する上では、以下のような基準で考えるべきでしょう。
- ニーズが高いプログラミング言語である。
- 自分が活躍したい分野でメジャーなプログラミング言語である。
- 体系的で他のプログラミング言語に手を広げた場合に、下地となる知識を得ることができる。
大きくはこの3つだと思います。
ニーズが高いプログラミング言語は?
プログラミング言語の人気度の尺度として有名なのは、TIOBEインデックスです。
TIOBEインデックスとは、プログラミング言語を使用する開発者数、教育講座数、サードパーティベンダー数、GoogleやWikipediaなどよく使われる検索エンジンなどの数値から人気度を多角的にレーティング付けをしたものです。TIOBEインデックスは、ランキング形式で毎月発表しています。
尚、TIOBEは、ソフトウェアのコードの品質を追跡するソフトウェア品質ベンダーです。
さて、本記事執筆時点、2023年5月のTIOBEインデックスですが、以下のようになりました。
順位 | 前年同月順位 | 順位変動 | 言語 | レーティング | 変化量 |
1 | 1 | – | Python | 13.45% | +0.71% |
2 | 2 | – | C | 13.35% | +1.76% |
3 | 3 | – | Java | 12.22% | +1.22% |
4 | 4 | – | C++ | 11.96% | +3.13% |
5 | 5 | – | C# | 7.43% | +1.04% |
6 | 6 | – | Visual Basic | 3.84% | -2.02% |
7 | 7 | – | JavaScript | 2.44% | +0.32% |
8 | 10 | ↑ | PHP | 1.59% | +0.07% |
9 | 9 | – | SQL | 1.48% | -0.39% |
10 | 8 | ↓ | Assembly language | 1.20% | -0.72% |
11 | 11 | – | Delphi / Object Pascal | 1.01% | -0.41% |
12 | 14 | ↑ | Go | 0.99% | -0.12% |
13 | 24 | ↑ | Scratch | 0.95% | +0.29% |
14 | 12 | ↓ | Swift | 0.91% | -0.31% |
15 | 20 | ↑ | MATLAB | 0.88% | +0.06% |
16 | 13 | ↓ | R | 0.82% | -0.39% |
17 | 28 | ↑ | Rust | 0.82% | +0.42% |
18 | 19 | ↑ | Ruby | 0.80% | -0.06% |
19 | 30 | ↑ | Fortran | 0.78% | +0.40% |
20 | 15 | ↓ | Classic Visual Basic | 0.75% | -0.28% |
(引用元:TIOBE Index for May 2023 https://www.tiobe.com/tiobe-index/)
TOP20をご紹介しましたが、12位以下はレーティング1%を切っており、また、前年同月を並記しているとおり、TOP10はかなり安定しています。
TOP10の内、最も新しい言語は「C#」ですが、それでもC#は2000年に登場したプログラミング言語です。C#よりも新しい、現在より10年以内に登場している言語となると、TOP20まで見ても、12位の「Swift」、17位の「Ruby」だけです。
尚、プログラミング言語は、毎日のように新しい物が登場していますが、TIOBEインデックスのTOP100に入る言語はほとんどないそうです。
こうしたことから、上位10位以内の言語が、安定して現在需要のあるプログラミング言語ということができるでしょう。
人気のプログラミング言語は、どういう分野で使う言語なの?
先端分野の主流「Python」
Pythonが主流として使われている分野は、データサイエンスやWeb領域をメインとした先端技術系が多く、「AI開発」「Webアプリケーション」「データ分析」の分野で活躍できる言語です。
皆さんもよく知っている、YoutubeやInstagramなどのアプリケーションは、Pythonによって開発されています。
シンプルで読みやすく、初学者でもとっつきやすい言語であり、選択肢として最適と言えるでしょう。
何でもできるプログラミングの王道、「C」、「Java」
組み込み・制御、工学、ロボット、通信、ゲーム、パッケージソフト、クラウドサービスなど、あらゆるな分野で主力となる言語が「C」や「Java」です。
もちろん、この二つの言語はそれぞれ出自や特性が異なりますので、厳密には一緒にすべきではありませんが、現代でプログラマーと名乗るのであれば、これらの言語には触れておけと言っても大げさではない、プログラミング言語の代表格です。
プログラム自体は非常に体系化されて整然とした構成を持つため、学習のハードルは高いですが、一方でこれら言語を操れれば、他の言語の学習ハードルは極端に低いと感じられるようになります。
C言語を参考に分野特化、「C++」、「C#」、それと「Visual Basic」
有能なC言語を参考に、特性をより先鋭化させた言語が「C++」や「C#」です。C言語とも名前が似ていますが、「C」「C++」「C#」は、実はそれほど関係性がありません。別物のプログラミング言語だとお考えください。
「C++」は、C言語の持つ優秀な実行速度を保ちながら、コード量とデータ量を抑えた言語で、大規模かつ速度が必要とされる、産業用機械や、ビックデータ解析などのデータサイエンス分野では主流となっている言語です。
「C#」は、「C++」と「Java」を参考に、マイクロソフト社が開発したプログラミング言語です。そのため、Windowsおよびその他のマイクロソフト社製品との相性が良く、業務システム、スマホアプリ、Webサービス、ゲームなどで活躍する言語です。
そして、マイクロソフト社といえば「Visual Basic」ですね。「C#」と同様、Windowsおよびその他のマイクロソフト社製品との相性が良く、活躍できる場が広い言語です。
ただし、これらの言語は、コード体系が結構複雑であり、初学者向けとは言いにくいと率直に申し上げられます。
Web開発ならば、「JavaScript」、「PHP」、「SQL」はセットで
Webサイト、Webアプリケーションを開発する場合に、「JavaScript」、「PHP」、「SQL」をマスターしていれば完璧と言えるでしょう。もちろん、アプリ開発にも手を広げられる言語です。
インターネットとの親和性が高いため、様々なサンプルスクリプトやドキュメントが手に入りやすく、独学でも動くプログラムを作れるまでが早い言語であり、学習ハードルは他の言語に比べて圧倒的に低いといえるでしょう。
ただし、Webブラウザベースのプログラミング言語として圧倒的な存在感で、機能性に優れる一方、他の人気プログラミング言語と比べてしまうと、体系化されてるとは言いにくいことから、他の言語へ学習を展開する際には、苦労する部分が多いと言えます。
原点こそ至高、「Assembly language」(アセンブラ)
プログラミングの原点は、0と1だけで構成されるマシン語であり、このマシン語を人が読みやすく(操りやすく)したものが、各種のプログラミング言語なのですが、その中で最もマシン語に近いプログラミング言語の一つが、アセンプラです。
アセンブラを学ぶことで、コンピュータの生の動作がどのような物なのかを知ることができます。ここまでに挙げた言語では、そこまでは理論的に知ることはできても、プログラム上でリアルに実践して体感することはまずできません。
そのため、アセンブラを知ることで、他のプログラミング言語を扱う際に、どう書けば効率的で安全かを考えることに役立ちます。
ただ、マシン語に近いだけ合って、やはり難解です。初学者向けではないでしょう。
TIOBEインデックスTOP10の言語については、ざっと以上のように説明されますが、他にも、Apple社のiOSで開発するがめの言語である「Swift」などは、iOSエンジニアを志すのであれば、人気度に関わらず一択です。
いかがでしょうか。プログラミング言語の学習を志す皆様の、参考になれましたら幸いです。