メモ

もし16種類のプログラム言語が武器になったら

By Lennart Tange

一口に「プログラム言語」といっても、その種類は多岐にわたり、それぞれ他にはない特徴や長所、短所を備えているものです。Floobitsでソフトウェアエンジニアを務めるビョルン・ティップリング氏は16種類の言語をさまざまな武器に例え、それぞれに備わっている個性を表現しています。

If programming languages were weapons
http://bjorn.tipling.com/if-programming-languages-were-weapons


◆01:「C言語
プログラムの基本ともいえるC言語は、アメリカの半自動小銃「M1ガーランド」とのこと。その理由は「古いが、信頼性は高い」から。


◆02:「C++
C言語の拡張版として誕生したC++は「ヌンチャク」に例えられています。その理由は「うまく使えば強大な能力を発揮するけど、体得するためには数年のつらい修行が必要で、きっと『やめときゃよかった』と思うことがたびたびあるから」だとのこと。


◆03:「Perl
Perlは「火炎ビン」。その理由は「有用な時代もあったが、もうあまり使われていない」というもの。


◆04:「Java
オブジェクト指向プラミング言語の代表格の一つであるJavaを武器に例えるとアメリカ軍で使用されている「M240機関銃」。その意味は「弾薬ベルト(=プログラムコード)に問題があるとNullPointerExceptionの例外エラーが発生し、暴発して殉死するから」だそうです。ちなみにNullPointerExceptionはぬるぽの語源。


◆05:「Scala
Scalaは上記のJavaから派生した言語。武器ではありませんが、Scalaのトレーニングマニュアルは非常に難解な書き方になっており、ちんぷんかんぷんになってしまうとのこと。


◆06:「JavaScript
ウェブブラウザでよく用いられ、これなしではネットが成り立たないともいえるJavaScriptは「持ち手のない剣」。優れている部分とダメダメな部分が混在しているということでしょうか。


◆07:「Go
Googleが開発しているGoは「初心者用ピストル」。撃ったあとに本当に発射されているのか確認する必要アリ。また、どこに命中したのかも確認が必要。


◆08:「Rust
Mozillaが開発するRustは「3Dプリンター銃」で、理由は「いつの日か本当に使えるようになるかもしれない」から。日本では実際に3Dプリンター銃を作って発射したとして逮捕者の出た事件が記憶に新しいところです。


◆09:「bash
bashはUNIXのソフトウェア環境を全てフリーウェアで実現することを目的としたGNUプロジェクトのために書かれたもの。その様子は「親指ばかりを狙う呪われたカナヅチ」のようなもの。できれば手にしたくない感じは伝わってきます。


◆10:「Python
大学の入門用プログラミング言語として人気を集めているといわれているPythonを武器に例えると、銃身が2つ並んだダブルバレル型のショットガン。「常に交互に銃弾が発射され、肝心なほうから発射されることがない」というのが理由だそうですが、なんとなくもどかしさは伝わってきます。


なお、ショットガンではなく拳銃タイプにもダブルバレル式のモデルが存在しています。

2丁の銃をくっつけて2発の弾丸を同時に発射できるようにした型破りな拳銃「ダブルバレル・ピストル」実物フォトレビュー - GIGAZINE


◆11:「Ruby
日本人エンジニアのまつもとゆきひろ氏によって開発されたRubyは「きらびやかな剣」。その意味は「ピカピカしているからという理由だけで用いられるから」とのこと。


◆12:「PHP
動的ウェブページを構築するためのPHPは「ホース」。果たしてホースが武器と呼べるかどうかは定かではないですが、その利用方法は「ホースの一方を自動車のマフラーに装着し、一方を車内に引き入れてからエンジンをかける」というもの。


◆13:「Mathematica
Mathematica(マセマティカ)のことは「宇宙低軌道投入型キャノン」。なんだかよくわかりませんが、その理由は「とてつもないことが可能になるが、購入できる人がいる場合に限る」とのこと。とはいえ、必ずしも手に入れられない額でもないようです。


◆14:「C#
Microsoftが開発したオブジェクト指向プログラミング言語であるC#は「ロバの背中にくくりつけられた強力なレーザーライフル」とのこと。「ロバなしではとても使い物にならない」ということですが、この場合のロバが何を意味するのかは不明。C#はコンパイルした中間コードを実行するので、「レーザーライフル」に相当するC#は強力な性能がありながら「ロバ」のように鈍重な実行環境が足かせになっている、ということなのかも。


◆15:「Prolog
Prolog(プロログ)は「AI兵器」。なんだか強そうですが、その理由は「指令を与えるとその通りに実行するが、同時に『ターミネーター』を生みだしていつか君のママを殺しに来る」とのこと。


◆16:「LISP
もっとも歴史の古い高水準言語の一つであるLISPは「歯ブラシなどから作った手作りの刃物」。その心は「使ってるヤツはたいていちょっとアブない」からだそうで……


いろいろと辛口のコメントが並んでいましたが、それぞれの特徴をざっくりとつかむには役に立つのかもしれません。このほかにもティップリング氏のTwitterには「Dartはダーツ(dart)。酒をしこたま飲んだ後にバーで使うから」や、「Objective-Cマスケット銃。みんなもう覚えていないけど、いまでも現役で使えるから」といったコメントが寄せられていました。

この記事のタイトルとURLをコピーする

・関連記事
誕生から50年を迎えたプログラム言語BASICの歴史、その精神とは - GIGAZINE

アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」 - GIGAZINE

Pythonが大学の入門用プログラミング言語として人気を集めていると判明 - GIGAZINE

「なんだこの糞コードは!(怒)」「書いた奴出てこい!(怒)」と言いたくなるほどヒドいプログラムのソースコードを集めた「ウンコード・マニア」 - GIGAZINE

iPhoneアプリの作り方講座で生徒の年収がなんと5倍に - GIGAZINE

「マンガで分かる JavaScriptプログラミング講座」第2版公開中 - GIGAZINE

プログラミングなどコンピューターサイエンスを必修科目に取り入れた高校が登場 - GIGAZINE

音声認識ソフトを使ってキーボードより速くプログラムをコーディングする実例 - GIGAZINE

「サセン…アア…エット…」と書けば本当に実行できる「コミュ障プログラミング言語」 - GIGAZINE

世界初のコンピューターのバグは本当に「蛾」が挟まったのが原因 - GIGAZINE

in メモ,   ソフトウェア, Posted by darkhorse_log

You can read the machine translated English article here.