世の中にはどれほどのプログラミング言語があるのでしょうか?一説には200とも300とも言われていますが、一般に知られていない言語を加えれば300どころではないかもしれません。ただ、実際に現役で使われている言語は50未満でしょう。
仮に50に絞り込めたとしても沢山のプログラミング言語があるとどれを選択したらいいか分からなくなりますので主要なプログラミング言語について様々な角度で調べてみましょう。
- プログラミング言語の数が多い理由は、課題をうまく解決するために最適なプログラミングを開発してきたから。
- プログラミング言語の違いとして、コードの書き方、変数の型、コンパイルの有無など挙げられる。
- 数多いプログラミング言語から1つを選ぶとしたら、ニーズが高い言語がおすすめ。
最新人気プログラミング言語ランキング
IEEE Spectrumが発表した2021年の人気プログラミング言語ランキングには全部で55個のプログラミング言語がランキングされています。
このランキングはGitHubから抽出した全言語をGoogle検索などでふるいにかけ選ばれたプログラミング言語に対して12の評価項目からランキングを算出したものです。
ベテランエンジニアであっても聞いた事がないというようなプログラミング言語も含まれていますが、現在赤丸急上昇のPythonが2021年度の第1位というのは時代を反映しているのではないでしょうか。
順位 | プログラミング言語 | スコア | 一言コメント |
1 | Python | 100.0 | 近年人気急上昇のPythonです。今、Pythonが出来ると引っ張りだこです |
2 | Java | 95.4 | 業務システムではスタンダードです。 |
3 | C | 94.7 | 古いプログラミング言語ですが組み込み用途では現役です。 |
4 | C++ | 97.2 | C言語にオブジェクト指向要素を盛り込んだ言語です。 | 5 | JavaScript | 88.1 | Webブラウザ向けのプログラム言語でしたが、Webサーバー側で使われる例も増えています。 |
6 | C# | 82.4 | マイクロソフトのプログラミング言語です。C/C++とは縁もゆかりもありません |
7 | R | 81.7 | 統計解析のための専門言語で、機械学習などで使われます。 |
8 | Go | 77.7 | Googleが作成したスクリプト言語です。 |
9 | HTML | 75.4 | マークアップ言語ですがランクインしています。 |
10 | Swift | 70.4 | Appleが作成したiOSアプリを作成する言語。 |
11 | Arduino | 68.4 | マイコン向けのC++みたいな言語。 |
12 | Matlab | 68.3 | 統計処理などで使われる数値演算処理専用アプリ向けのプログラミング言語です。 |
13 | PHP | 67.7 | Webアプリを開発するときによく使われるスクリプト言語です。 |
14 | Dart | 68.1 | Googleが開発したJavaScriptの代替を目指して作られたプログラミング言語です。 |
15 | SQL | 65.0 | データベースを操作するためのプログラミング言語です。 |
16 | Ruby | 63.6 | 開発したのは日本人のまつもとゆきひろ氏、Ruby on Railsで使われます。 |
17 | Rust | 63.1 | Mozillaが作成した並列処理が得意な言語。 | 18 | Assembly | 62.8 | CPUの命令と1対1に対応する低水準言語。組み込み系でまだ残っているようです。 |
19 | Kotlin | 58.5 | Javaの進化版です。 | 20 | Julia | 58.3 | 機械学習や数値計算処理などで注目されているプログラミング言語。 |
21 | Scala | 55.4 | Javaと同じ環境で動作する新しい世代のプログラミング言語です。 |
22 | Visual Basic | 55.1 | マイクロソフトが作った言語。.netを混ぜてもこんなものなんですね。 |
23 | Shell | 54.5 | Linuxのコマンドラインで使うシェルで動作するスクリプト言語です。 |
24 | Processing | 50.6 | お絵かきが得意 |
25 | FORTRAN | 45.2 | 昔の科学計算用プログラミング言語。今でも一定の需要があるようです。 |
26 | Objective-C | 44.4 | Swift登場以前にApple製品向けだったプログラミング言語。 |
27 | Lua | 43.3 | ゲーム開発で使われることの多いスクリプト言語。 |
28 | Cuda | 41.3 | NVIDIA/GPUで使えますが使っている人を見たことはありません |
29 | Verilog | 40.3 | プログラムではなく半導体などの論理回路設計用の言語。 |
30 | SAS | 39.4 | SAS Institute社製品で動作するプログラミング言語。 |
31 | Ada | 38.8 | 1983年から使われている古いオブジェクト指向な汎用プログラミング言語。 |
32 | VHDL | 38.5 | プログラムではなく半導体などの論理回路設計用の言語。 |
33 | Delphi | 37.8 | ObjectPascal。昔はもっと人気があったんですけどね。 |
34 | Scheme | 37.4 | かつて人工知能の研究に使われたLISPの親戚で、今も人工知能の分野で利用されている。 |
35 | Perl | 37.2 | かつては広く使われていた文字列処理に強いスクリプト言語。 |
36 | D | 36.6 | C言語ベースのプログラミング言語。 |
37 | LabView | 35.8 | LabViewは測定自動化のためのシステムで、その設定に使われる言語。 |
38 | Haskell | 35.4 | 関数型の代表選手。もっと人気があるものと・・・ |
39 | Clojure | 32.6 | マルチスレッドが簡単になるそうですよ |
40 | Lisp | 30.4 | かつて人工知能の研究に使われたプログラミング言語。今でも需要はあるようです。 |
41 | Elixir | 29.2 | 並行処理の機能や関数型といった特徴を持つ比較的新しいプログラミング言語。 |
42 | TCL | 27.6 | シンプルな文法のスクリプト言語。かつてTcl/Tkとして使われていた。 |
43 | Apache Groovy | 27.0 | Javaから派生したプログラミング言語。 |
44 | F# | 22.2 | マイクロソフトが開発した.NET向けのプログラミング言語。 | 45 | COBOL | 21.2 | かつて標準だった事務処理用プログラミング言語。まだまだ現役です |
46 | ABAP | 20.0 | 企業の情報システムを統合する用途などで使われるSAP用の専用言語 |
47 | Erlang | 18.3 | 並行処理が得意です |
48 | Forth | 18.2 | 昔の言語によくある環境一体型 |
49 | Prolog | 16.3 | かつて教育分野で使われていたプログラミング言語。 |
50 | LadderLogic | 14.3 | プログラミングではなく特殊な半導体の設定用に使われる言語。 |
51 | J | 12.8 | 普及しなかったのにね |
52 | Ocaml | 12.5 | オブジェクト指向らくだ | 53 | CoffeeScript | 8.6 | JavaScriptベースのプログラミング言語。 |
54 | Eiffel | 8.5 | オブジェクト指向プログラミング言語。 |
55 | Racket | 0.0 | Schemeから派生したプログラミング言語。 |
未経験からWebエンジニアになりたい方におすすめ
のスクールはこちら
なぜプログラミング言語はたくさんあるのか
先ほど紹介したランキング対象となったプログラミング言語だけでも55種類ありますが、なぜ、こんなに数が多いのでしょうか?
プログラミング言語は言ってみれば「問題を解決する道具」ですが、ある領域ではうまく問題を解決できても(=その業務領域をうまくシステム化出来た)別の領域ではそれほどうまく問題を解決できない。という事があります。「帯に短しタスキに長し」というやつです。
昔からあるFORTRAN(25位)とCOBOL(45位)の例が分かりやすいでしょう。FORTRANは科学技術計算をうまくプログラミングできるように産み出されました。ですから、科学者が計算式を簡潔に記述できるように設計されています。
一方COBOLはプログラミングになじみの薄いエンジニアでもプログラミングが出来るようにと産み出された事務処理用のプログラミング言語です。そのため、英語に近い文法が採用されており、多くのエンジニアが扱えるようになりました。
それぞれの問題をうまく解決するために最適な道具を開発していたらこれだけのプログラミング言語が出来上がったという訳です。
未経験からWebエンジニアになりたい方におすすめ
のスクールはこちら
プログラミング言語の違い
プログラミング言語は沢山ありますがそれぞれどんなところが違うのでしょうか。
書き方
プログラミング言語毎に文法が異なりますが、いくつかのパターンに分類する事ができます。
一番多いパターンとしてはC言語やJavaのパターンでしょうか。
if(i < 10){ i = i + 1; }
処理の固まりを{}で囲むパターンです。上記のコードはC言語かJavaなのか区別が付きませんね。
次のパターンとしては、RubyやBasicなどに見られるパターンでしょうか。
if i < 10 i = i + 1; end
処理の終わりを「end」で示すパターンです。必ずしもendというキーワードという訳ではありません。
LISPのようにC言語やJavaになじみが深いエンジニアにとっては何を書いているのかチンプンカンプンの言語もありますが、このどちらかのパターンに当てはまることが多いでしょう。
型
プログラミング言語には一時的にデータを格納する変数がありますが、この変数には予めデータ型を指定する「静的型付け」と実行時にデータ型が決まる「動的型付け」の2種類があります。
「静的型付け」の方が代入時の型誤りをコンパライがチェックしてくれるためバグをうみにくいと言われていますが、この件については様々な言い分があり統一した答えはありません。
コンパイル
プログラミング言語にはコンパイルが必要な言語と必要がない言語との2種類あります。コンパイルとは人が理解しやすいプログラミング言語をコンピューターが理解できる機械語に予め変換する事ですが、そうする事で実行処理が早くなります。Javaのようにコンパイルは行うが機械語に変換せず中間言語に変換し、仮想マシンが中間言語を解釈して実行するというパターンもあります。
環境構築
プログラムを作成するのに必要な環境はプログラミング言語毎に異なります。コンパイルが必要のないプログラミング言語であればテキストエディタがあればプログラムの作成は可能です。効率よくプログラムを作成するためにIDE(統合開発環境)を活用する場合もあるでしょう。
また、古いプログラミング言語には開発環境や実行環境も含んだ環境を持っているケースもあります。
未経験からWebエンジニアになりたい方におすすめ
のスクールはこちら
プログラミング言語ができること
当たり前の話ですがプログラミング言語はプログラムを作るための言語です。何を目的にしてプログラムを作成するかによってどのような事ができるかは全く異なりますが、選択するプログラミング言語により得意な分野が異なるので、作成したいプログラムにマッチしたプログラミング言語を選択すると効率よくプログラムを作成できます。
Windowsで開発する場合、言語の処理系をWebページなどからインストールプログラムをダウンロードしてセットアップしましょう
未経験からWebエンジニアになりたい方におすすめ
のスクールはこちら
プログラミング言語の選び方
新しく学習するプログラミング言語を選択する場合、どのような点に気を付ければいいでしょうか。プログラミング言語を覚えるのが好きな人は単なる興味でいいでしょう。ただ、将来のスキルアップを目指しているのであれば、ニーズのあるプログラミング言語を選択したいですね。
その場合、IEEE Spectrumのラインキングは1つの基準になるでしょうし、雑誌やネット記事などで見られる話題から選択するのもいいでしょう。
また、2番目、3番目のプログラミング言語を選択するのであれば、今、習得しているプログラミング言語と同系でなく傾向が異なるプログラミング言語を選択すれば幅が広がります。
未経験からWebエンジニアになりたい方におすすめ
のスクールはこちら
まとめ
今回はプログラミング言語の違いをテーマに人気ランキングからそれぞれの違いなどをまとめてみました。本当に沢山のプログラミング言語がありますね。言語にはそれぞれ思想、概念があり、それらを学ぶだけでもスキルアップにつながるため今回出てきたプログラミング言語の中から気になるものがあればチャレンジしてみてください。
なおこのサイトを運営しているポテパンでは、未経験からWebエンジニアを目指す方に業務で使えるスキルを教えるプログラミングスクール、ポテパンキャンプを運営しています。Webシステム構築に使われるプログラミング言語はいろいろありますが、Ruby on Railsに興味のある方はこちらもチェックしてください。