プログラミング言語は、なぜこれほど色々な種類があるのでしょうか。
もっと少なくても良いのではないでしょうか?
実際のところ、機械語とC言語だけあれば、たいていのことは実現できます。
しかし、プログラマというのは「コンピュータに仕事をさせて、人間を単調な作業から解放する」職業なので、自分たち自身(プログラマ)の仕事(プログラミング)についても、少しでも楽になるようなプログラミング言語を作り出してきました。
その結果、さまざまな特色をもったプログラミング言語が存在します。
- 実行するときの効率性
実行速度の速さや、必要なメモリ量が少なさ- 効率性が良い言語の例 … C, C++
- 効率性が悪い言語の例 … Ruby, PHP
- 記述するときの簡潔性
どれくらい短い文で、プログラムを書けるか- 簡潔性が良い言語の例 … Ruby
- 簡潔性が悪い言語の例 … Java
- 再利用性
同じプログラムを他のプログラムから流用するときの、やりやすさ- 再利用性が良い言語の例 … C++, Java, Ruby, …
- 再利用性が悪い言語の例 … C, Perl, PHP, …
- 読みやすさ
人間にとって不自然な記号が少ないなどの読みやすさ- 可読性が悪い言語の例 … LISP
こういった性質が、プログラミング言語によって異なっており、用途にあわせて最適な(プログラマーが色々な意味で楽をできる)プログラミング言語を選べるようになっているのです。
とはいえ、理屈では無く好き嫌いも大きく影響します。
上に書いたようなプログラミング言語の比較などは、プログラマー同士で盛り上がる話題の1つです。
インターネットの掲示板などでは、盛り上がりすぎて口論に発展してしまうこともよくあって、プログラミング言語の比較は「宗教論争」と言われたりもします。
また、こういった言語そのものの特性以外にも、その言語の学習を手助けしてくれるコミュニティの有無や、利用できるプログラムの部品(ライブラリといいます)がどの程度充実しているか、などの事柄も、プログラミング言語の特徴になっています。
まさに言語、宗教、文化です。
様々なプログラミング言語を、冷静に、自由自在に使い分けられるようになることが、プログラミングを極めると言うことなのです。