@soo_mei プログラミング言語 違い で検索したらこの画像にたどり着いたけど訳がわからない
というのがあって、ちょっとおもしろかったので、自分なりの解釈を書いてみました。なんとなく自分が普段使っているもの中心に書いてます。
注意:この解釈は特定の思想・信条・政治・宗教を貶めたり批判・非難するものではありません。また、各プログラミング言語を批判するものでもありません。ネタとしてお楽しみください。
Assembly: 手術道具
目に付く道具の中でも、もっとも精密な作業ができる。これを使って通常では困難な問題も解決できる・・・、かもしれない。なにしろ基本が職人技なので、熟練の職人が使うとあざやかに病巣を取り除いたりできるかもしれないが、未熟だったりすると逆に悪化する可能性があるので、気軽に使えばいいというものでもない。
C言語: アーミーナイフ
機能は必要最低限しか用意されていないが、それぞれの道具の切れ味は十分なので、訓練された軍人ならこれ一つあれば無人島でのサバイバルも可能。ただしそれぞれの道具はとてもシンプルなので応用力が必要だし、素人にはオススメできない。
C++: リッチアーミーナイフ
もとアーミーナイフから、さらに大量の機能が追加されてリッチになった。やったね、これでできることがたくさん増えたよ! ところが機能の種類が多すぎて、覚えるのも大変だし、どの場面でどの道具を使えばいいのかよくわからない。結局使うのはナイフとハサミなど、一部の機能になってしまう。これならもとのアーミーナイフでもいいのでは…という疑念が頭をよぎるが、いややっぱりちょっと便利なところもあるし、という煮え切らない感じ。
JavaScript: ハサミ
目的特化型で作られているので、ある場面ではとても手軽で使いやすい。持ち方を変えると本来とは違った切り方もできるようになるが、やっぱり専用のナイフなどに比べると使いにくい。
Visual Basic: スプーン
ただのスプーンなので、何かをよそうのには使いやすいが、他の状況への応用はハサミよりよっぽど難しい。だって何か切れるわけでもないし、これで他に何をしろというの…。
達人はこれで穴を掘って脱獄とかできるかもしれないが、一般人はそんなことしない。
Java/C#: プラスチックナイフ
とっても簡単に作られているし、刃の部分も安全なので、子供だって安心して手軽に使える。これで危ないナイフなんて使わないでも大丈夫! でももとの作りがそんなに尖っているわけではないので、作るものによっては苦労するかもね。
Perl: 日本刀
かつて戦国時代は歴戦の戦士たちが日本刀を使って数々の戦いを切り抜けてきた。しかし使いこなすためには剣の道を極めなければならず、使い方の流派もいろいろ分かれているため、他の道具が多く使われるようになっていった。今でも愛用している利用者は少なからずいる。
Python: チェーンソー
雑草をなぎ払い、巨木を切り倒す。目的に向かって突き進む力を与えてくれるすばらしい破壊力を持っている。でもちゃんと使いこなすためには、スイッチの入れ方だけじゃなくて注意すべきルールやマナーが結構多い。特に注意が散漫だと(インデントの位置を間違えて)大怪我するので、よいこのみんなは注意して使ってくれ!
Haskell: SF
想像を絶するなにかが起きている。それゆえにいまいちピンとこない。