18のプログラミング言語をポケモンのキャラクターに例えてみた!

エンジニアもキャリアにおいて同じようにプログラミング言語をマスターしたいと思うことでしょう。エンジニアとプログラミング言語の関係は、トレーナーとポケモンの関係とよく似ていて、個人的な関係が生まれるものです。ぜひご覧ください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。

本稿は、Codementorのブログ記事を了解を得て日本語翻訳し掲載した記事になります。本記事は、Jazz Rosende 氏によって投稿されました。

「最高のポケモンマスターになりたい、まだ誰もなれなかった世界一になりたい…」(英語版ポケモンアニメの主題歌より)とポケモンアニメの主題歌の歌詞にあるように、エンジニアもキャリアにおいて同じようにプログラミング言語をマスターしたいと思うことでしょう。

エンジニアとプログラミング言語の関係は、トレーナーとポケモンの関係とよく似ていて、個人的な関係が生まれるものです。エンジニアによって、選ぶ言語や好みも多様です。

 

この記事では、ポケモンがプログラミング言語だったならという設定を考えてみます。次のリストに挙げたプログラミング言語を全部マスターしましょう!

「プログラミング言語全部ゲットだぜ!」

 

アセンブリ言語:ギャラドス

gyarados-620x503

ギャラドスは強力なモンスターです!しかしギャラドスに進化させるためには、コイキングを数多く集める必要があります。それまでに単調な作業に飽きてしまうこともありますが、忍耐力こそが鍵です。

ギャラドスをレベルアップさせ続けると、困難なバトルでも十分に戦力になってくれます。

 

Ada(エイダ):カメックス

blastoise

将来的にもっと強いモンスターと出会える可能性もありますが、カメックスは大きくて安定性があります。スケールの大きさと防御力においては、本当に優れています。戦闘中は、カメックスの2本のロケット砲に翻弄されないように注意しましょう。

セーフティクリティカルシステム(safety critical system:故障やエラーなどが、人間の生命や地球環境に大きな危険を及ぼす可能性のあるシステム。例として原子力発電、宇宙開発、インフラ、医療や化学分野のシステムなど。)の開発においても、信頼できる言語です。

ミサイル誘導、ミサイル迎撃、アビオニクス(航空や宇宙関係の電子機器)、宇宙航空機のナビゲーションや他分野において、エラーのないシステムを開発することができます。

 

[PR] プログラミングで挫折しない学習方法を動画で公開中

BASIC(ベーシック):フシギダネ

bulbasaur

BASICはシンプルで入手しやすい言語であるため、プログラミング初心者に人気です。

入門のための言語としては良いかもしれませんが、多くのエンジニアは、もっと強力でパフォーマンスの高い言語と出会ったときに、BASICを手放すのが一般的なようです。

 

C:イーブイ

eevee

イーブイは、進化形のモンスターの原型として好まれています――C言語と同じように。
イーブイから進化形に育てるのは骨が折れますが、スピードが速くて強力な進化形――シャワーズ、サンダース、ブースターが生まれます。ほとんど万能なモンスターたちです。

イーブイは進化形の可能性を色々考えられるので、イーブイを捕まえることは多くのプレイヤーにとって、大きな進歩への第一歩となります。

 

C++: シャワーズ

vaporeon

ポケモンに能力の高さを求める場合、シャワーズは、スピードも速く頼れるモンスターです。ジムのディフェンダーとして使ったり、他のジムを攻撃するときにも力になります(さらに可愛いです)。

オールラウンドに活躍してくれる、持ち運びしやすいモンスターです。多様なパワーを秘めたこのモンスターの使い方をマスタ―できたら、様々なメリットがあります。

 

C#:サンダース

jolteon-620x425

ピカチュウとサンダースは共に「でんきタイプ」のポケモンなので、基本的な使い勝手はとても似ています――JavaとC#が似ているように。

しかし、いくつか相違点もあり、たとえばサンダースは進化を遂げたモンスターであるため、ピカチュウよりも能力の高いモススターに育てることができます(もちろんトレーナーの腕次第ですが)。

サンダースは簡単なモンスターではありませんが、エレガントさが魅力です。細胞から微量の電気を生み出し、これを毛を逆立てて静電気で増幅することもできます。

C#などの静的型付け言語もまた、動的型付け言語と比べて、エレガントな魅力があるのではないでしょうか。

 

Eiffel(エッフェル):バリヤード

mrmime-620x411

パントマイムの文化とEiffel言語は、両方ともフランス生まれです。

 

Fortran(フォートラン):プテラ

画像:「どうして絶滅させてくれないんだ?」

人類の有史前の恐竜です。かつて、この恐竜が大空を悠々と自由に飛び回っていた時代もありました。Fortranは今でも強力な言語として使えるかもしれませんが、適用範囲は限られていて、現代に適応するにはスピードも十分ではありません。

 

Haskell(ハスケル):メタモン

ditto

画像:「ボクは変幻自在に造られた。何にでも変身できる。」

Haskell は抽象度の高い言語です。デザインパターンも独特で、いわゆる「主流の」言語から一線を画しています。

初めてHaskellを試した人は、その異質さに不満を持つかもしれません。複雑な言語であるため、学習曲線のカーブも険しくなるかもしれません。しかし、メタモンが「へんしん」の技を使いこなして、他のポケモンの動きを真似したり変身できるように、Haskellは柔軟な開発を可能とします。

 

Java:ピカチュウ

pikachu

ポケモンと聞いて、最初にピカチュウが思い浮かぶ人は多いかもしれません。知名度も高く、人気も数年連続の1位です――Javaのように。

しかし、ポケモンに精通したプレイヤーであれば、ピカチュウの人気は「ポケモンの広告塔」的存在であることによるところが大きいと知っています。つまり、Javaは多くの企業に愛用されているために、知名度が高いのです。

でんきタイプのポケモンは総じて強いため、最初はピカチュウを主戦力とするのもいいでしょう。しかし多様なタイプのモンスターとバトルを続けていく中で、ピカチュウは最高のパフォーマンスを発揮するモンスターではないと思い知ることになります。

 

JavaScript:ビードル

weedle

どんな場所にも現れます!レベルアップしたユーザーにとっては、遭遇すると無視したくなるポケモン(言語)です。しかしやがて、さらなるレベルアップのために使える存在だと気づくことでしょう。

そのため、いつも囲まれていることに飽きているとしても、捕まえて新たな学びを得ましょう。

 

Lisp:ラプラス

lapras

ラプラスは「穏やかな巨人」として知られるモンスターです。優しくて知能が高く、ポケモンと人間が平穏に共存できることを教えてくれるような存在です。

しかし悲しいことに、人間がそのモンスターとしての巨大さを理解できないために、ほとんど絶滅寸前の状態です。もっとも、時々現れてひっそりと活動していたりします――現在でもユニークで強力な存在です。

 

Matlab:ピジョン

pidgeotto-620x427

このモンスターを持っていれば、簡単に経験値を得ることができて、しかも初歩的なバトルで役に立つので、最初は十分満足できるかもしれません。そのため、博識で経験を積んだユーザーが、このポケモンにあまり注目していないことを不思議に思うかもしれません。

しかし、あなたも博識でより経験を積んだユーザーとなったら、迷うことなく他の言語に乗り換えることになると思います。

 

Objective-C:ブースター

flareon

ブースターはイーブイ(C言語)の進化形の1つです。しかしイーブイの他の進化形と異なり、「ほのおタイプ」の希少なポケモンです。

ブースター(Objective-C)で可能なことは限られているかもしれませんが、真のポテンシャルを発揮させれば、驚くような事ができます。

 

PHP:コダック

画像:「人々はボクをサイコダックと呼ぶ。真のサイコを見せてあげよう。」

PHPは風変りで、とくに経験の豊富でないエンジニアにとっては、扱いの難しい言語です(おそらく、APIにいくつか一貫性の問題があるため)。しかしPHPを深く学び、扱い難さの問題を乗り越えて使いこなせるようになれば、その神秘的な潜在能力を活かすことができます。

この複雑なモンスターをマスターできれば、驚くべきパワーを操ることができます。

 

Python:カイリュー

dragonite

画像:「リザードンを一撃で倒せます。」

カイリューとリザードンは外見は似ています――どちらもオレンジ色の空飛ぶドラゴンです。

しかし多くのプレイヤーにとってカイリューの方が、知能が高く、エレガントで、レベルが高いという印象かもしれません。ファンの中には、疑似伝説のモンスター(pseudo-legendary:3段階の進化を経て、種族値合計が600以上のポケモンを示す、海外ポケモンファンの間での用語)と見なす人もいます。能力が高いので、難易度の高いタスク向きです。

 

QCL(量子プログラミング言語):ミュウツー

mewtwo

量子プログラミング言語は、「エスパータイプ」で伝説ポケモンのミュウツーに例えることができます!レベルが高くて、普通のエンジニアにとっては進化し過ぎています。

ミュウツーは科学者たちの造ったポケモンであり、冷徹な目を光らせて敵を怯えさせることでしょう――ちょうど量子コンピュータに詳しくない人がQCLを畏れるように。

 

Ruby:リザードン

charizard-620x428

スクリプト言語は最高レベルの開発環境を構築することができます。Rubyもその1つです。

リザードンは、最初はとてもカッコ良く見えます。そのため、リザードンのレベルを上げるために時間を費やして、バトルでもよく使うようになるかもしれません。

しかし、さらに数多くのポケモンと出会うことで、リザードンには改良の余地もあり、最初に思っていたほど完璧なモンスターではないと実感することになります。

[お知らせ]TechAcademyでは初心者でも最短4週間でエンジニアになれるオンラインブートキャンプを開催しています。これからプログラミングを始めようと思っている人、新しい言語を覚えたいという人はぜひご覧ください。