くまちゃんのiOS/Androidゲームプログラミング

マイペースでゲームつくってます。

プログラミング言語のはなし19

プログラミング言語のはなし19】
WEBサービスをつくるのに使うプログラミング言語の多くは「インタプリタ型」ですぐに実行できるお手軽さに加え、最近のマシンの高性能化のおかげでスピードも十分なものになってきました。

CPUの高速化は、「バーチャルマシン」というものも可能にしてきました。

これはOSの違いを吸収して、どのOSでも同じプログラムを走らせようとするもので、書いたプログラムはCPU固有のマシン語に翻訳されるのではなく、バーチャルマシン用の「中間言語」に翻訳されるのです。

そして、バーチャルマシンがさらにそれを個々のマシン語に翻訳するという。

えらく手間がかかるので、30年前なら信じられかったのですが、今はJavaがその代表格ですかね。Androidアプリをつくる時はJavaが使われています。

CPUの高速化は、いろんな手段、いろんな言語を可能にしました。これは一面では多種多様な解決法が存在して「いいね!」と言うことができますが、別の一面では「混沌」としてきた、とも言えます。

そもそもなんで「カンブリア紀かッ!」というほどこんなにたくさんの種類のプログラミング言語が存在するのかというと、みんなC言語に対する不満からなのです。

ある人が「ここはこうした方がいい」とC言語の改良版をつくり、またある人は「この方が良くね?」と別の改良版をつくり、またある人は「ンガー!オレ様がC言語の後継言語をつくる!」と新しい言語をつくり...と気付けばいろんな派生言語がゴロゴロ転がる状況になっていました。

なぜ収斂されないのか?昔はマシンパワーが無いがゆえにほぼC言語一択だったのが、今はマシンパワーがあるので開発者の思想をつらぬくことができるのです。

いろんな言語は、全て開発者の「C言語、ここがイケてね〜、だからオレはこうする!」という哲学が込められています。でもややこしいことに、全く正反対の哲学もあったりするので、初学者は「いったいどっちを信用すればいいの?」となります。

で、利用者に聞けば宗教戦争です。これをカオスと言わずになんと言いましょう。

恐ろしいことは、FacebookなんかはさらにPHPの派生を最近つくって発表したり、GoogleもGo言語というのもつくったりしているんですね。まだ個人レベルでやっているのはかわいいもんですが、これら大手がこんなことやると背筋が寒くなってくる、というのがホンネですねぇ。(続く)

https://itunes.apple.com/jp/app/kumachanmeizu/id886937682?mt=8&uo=4&at=10l8JW&ct=hatenablog