メジャーなプログラミング言語15種類の違い(難易度・将来性)を、乗り物に例えると?
メジャーなプログラミング言語15種類の違い(難易度・将来性)を、初心者にも分かりやすく "乗り物" に例えて解説します。
人間の数万倍〜数億倍の処理速度を持つコンピュータ。元々コンピュータとは、暗号解読やミサイルの弾道計算といった「軍事利用」を主な目的として開発された装置。その大きさは工場をまるまる占有してしまうぐらいの巨大な物でした。
しかし、現代のコンピュータは大きさ・形態・使用用途が多岐に渡り、小型のコンピュータはTV・スマートフォンやパソコンに組み込まれるなど、人々の生活に無くてはならない物へと進化を遂げています。
そして、人がコンピュータに命令を下すためには、「プログラミング言語」という特殊な命令語を用いる必要があります。
現代のコンピュータが用途や形態が多種多様であるように、このプログラミング言語は250種類以上も存在するんです!
・・・前置きが長くなりましたが、ここでは、数多くあるプログラミング言語の中でも「特にメジャーなプログラミング言語15種類」を選び、それらの習得難易度・将来性・用途の違いを学んでみましょう。元ネタ:crashworks.org
C言語
C言語を乗り物に例えると、アメリカ軍が採用している「M38ジープ」。
コンパクトながらも強力な走行性能により、何処ででも乗り回せる(パッケージソフト開発、ハードウェア・メモリ制御、OS開発に至るまで何でも開発可能)なのが特長です。
多くの乗り物(プログラミング言語)の中でも、スピード(実行速度)が群を抜いています。
また、多数の実績があり信頼性が高く、操作マニュアル(プログラミング文献)が充実しています。
C++
C++を乗り物に例えると、アメリカ軍が採用している高機動多用途装輪車両である「ハンヴィー(HMMWV)」。
先代のM38ジープ(C言語)の良い点を引き継ぎつつ、更なる機能が搭載されており、軍事行動(システム開発)において多大なる貢献をしてきました。
M38ジープ(C言語)に比べ多くの機能が追加されたことにより、便利になった反面、車輌の操作(プログラミング言語を使いこなすこと)がとても困難に。
特殊な訓練を受けていない者が安易に操作しようとすると、クラッシュします!
C#
C#を乗り物に例えると「ハマーH1」。
乗りこなすのに特殊訓練が必要なハンヴィー(C++)を、一般の民間人でも動かせる安全仕様にマイクロソフト社が作り直した乗り物です。
※ 一説には「マイクロソフト社が、Javaの人気に嫉妬して創りあげた」という噂もあったり^^
ハンヴィー(C++)に比べ、乗り回せる場所(開発環境)が限定され、さらにスピード(プログラムの実行速度)が大幅ダウン。そして、精密作業をするための多くの機能が失われました。
しかし操作が格段に楽になったため、ハンヴィー(C++)に比べるとハマー(C#)の方が、多くの道路(マシン)で動いているのを見かけます。
Java
Javaを乗り物に例えると、農作業用の小型トラックである「ピックアップトラック」。
M38ジープ(C言語)の乗り心地を改善するための別の試みであり、M38ジープ(C言語)ほどではないにせよ、多くの環境で安定した走りを見せています。
安全で便利ではありますが、「かさばる」「重たい(実行速度が遅く、メモリの消費量が多い)」「汚染物をまき散らす」のピックアップトラック(Java)は、一部の新しいもの好きなドライバー(プログラマー)達からは、田舎者だと嘲笑されることでしょう。
Python
Pythonを乗り物に例えると、一般的な乗用車である「ミニバン」。
運転しやすく汎用性が高いミニバン(Python)は、速さ(実行速度)もセクシーさ(プログラミングの芸術性)もありませんが、通常の業務において最も最適な乗り物の一つだと言えます。
Perl
Perlを乗り物に例えると「VW マイクロバス」。
以前はミニバン(Python)と同じような目的で使われていましたが、今となってはアゴ髭を生やしたヒッピー(年配のプログラマー)が乗り回すだけとなりました。
LISP
LISPを乗り物に例えると「自転車」。
自転車(LISP)は、まさに「乗り物の本質」を具現化しています!
今後、乗り物がいかに発達しようとも、自転車(LISP)が滅びることは決してないでしょう。
そして、自転車に乗る(LISPでプログラミングを行う)ことは、足腰を丈夫にする(プログラマーとしての実力を底上げする)ことに繋がります。
・・・しかし、通常業務で自転車(LISP)を用いて生計を立てることは、よほどのアスリート(天才プログラマー)でないと困難でしょう。
Haskell
Haskellを乗り物に例えると「一輪車」。
自転車(LISP)を、ちょっぴりお洒落で奇抜にした乗り物です。
華麗に一輪車(Haskell)を乗り回せると、みんなから拍手喝采まちがいなし!
PHP
PHPを乗り物に例えると「中古車」。
新車を買うお金のない貧乏人(実力不足のプログラマー)、もしくは、新車を揃える余裕のない企業(開発資金に余裕の無い企業)が愛用する乗り物です。
それなりによく見かけますが、よほど綺麗に舗装された道路でないと走ることができず、エンストの可能性を常に秘めています。
Go
Goを乗り物に例えると「電気自動車」。
グーグルが制作した乗り物(プログラミング言語)であり、新しい物好きなハイテクオタクたちのおもちゃです。
使用場面が極めて限定されますが、その範囲内に収まるのならば実用に耐えうるでしょう。
COBOL
COBOLを乗り物に例えると「蒸気自動車」。
世に出た当初は画期的な乗り物だったのでしょうが、現代においてはもはや化石同然。
とはいえ、未だに蒸気自動車(COBOL)を動かさざるを得ない現場もあり、乗りこなせる運転手(メンテナンスのできる技術者)が居なくて大変なんだとか。。。
MATLAB
MATLABを乗り物に例えると「スペースシャトル」。
科学者など、極一部の特殊な人々に用いられる乗り物(プログラミング言語)であり、一般人にはおそらく一生縁がありません。
R
Rを乗り物に例えると「気球」。
科学者たちが、スペースシャトル(MATLAB)を乗りこなす余裕が無い場合に使用する乗り物です。
OCaml
OCamlを乗り物に例えると「バブルカー」。
ヨーロッパ生まれのバブルカー(OCaml)は、ちょっぴりヘンテコな形(型)をしており、なんらかの理由で一部のヨーロッパ人が愛用している乗り物(プログラミング言語)です。
JavaScript
JavaScriptを乗り物に例えると「大きな車輪のついたゴルフカート」。
使用場面が限定されるものの、乗り心地の良いモダンな乗り物です。
しかし、スピード(実行速度)がとても遅いのが難点。。。
メジャーなプログラミング言語15種類の違い(難易度・将来性)のまとめ
プログラミング言語の違いに詳しい人にとっては、思わずニヤリ。あまり詳しくない人にとっては、プログラミング言語の概要をつかむ手助けとなれば幸いです。
もし全くの初心者でプログラミングに興味のある人は、Python等の比較的扱いやすく、将来性のあるプログラミング言語で学習を始めると良いと思います。(PythonはAIとの相性が抜群♪)
間違っても、いきなりC++などから始めないように! あまりの難しさに挫折してしまいます^^
何らかのお役に立てましたら幸いです♪
p.s.
ところで、MATLABが出てくるぐらいなら、もっとメジャーなVBA(MS Excelなどのマクロ)、Objective-C(iOSアプリ開発)なんかが登場してもよさそうな気もしますが・・・??