プログラミング言語のインタープリターとコンパイル言語のベンチマークしてみました
昔お世話になった社長さんからの依頼で
会社に採用する候補者の適性を見たいということで
面接は通った候補者のプログラミングのレクチャーをしてるのだが
初心者にレクチャーしてると色々学ぶことが多い。
先日はプログラム言語でインタープリター(RubyとLisp)と
中間言語にコンパイルする言語(Java)と
ネイティブコンパイルする言語(C言語)の
「開発しやすさ・理解しやすさ・動作速度の違い」
などを見てもらいました。
説明するだけじゃ足りないかなと思って
実際に自分でも作って、ベンチマークした結果が下記です。
私が一番好んで使うRubyは0.39sでした。
(私が)一番開発しやすい言語です。
次が今教えているJavaが、0.24sです。
中間言語にコンパイルする割には
開発効率が悪くて、実行速度も遅くて
正直私が一番嫌いな言語です。
次が私が最近一番勉強してるのがLispで
sbclのインタープリターが0.04sで
実行ファイルだと0.03s。
clispはインタープリターでも実行ファイルでも0.02sでした。
何度か実行して平均値とか取らないといけませんが
今回は端折りました。
Lispはインタープリターのはずですが
この実行速度の早さは特筆に値すると思いますね。
確かLispハッカーのポール・グレアム氏が
「LispはC言語並みに早い!」と主張してたと
記憶してますが嘘じゃないです❗️
ただし、Lispでも実行ファイルにするとデカくなります。
sbclの場合は巨大です❗️
最後にC言語ですが0.01sでした。さすがですねぇ❗️
開発効率と実行速度を考慮すると
これからプログラムを学ぶ人は
LispとRubyを勉強するべきだと思ってます。
仕事とはいえ、プログラミング初心者に
Javaを教えるのは心が痛いです・・・
この記事が気に入ったらサポートをしてみませんか?