プログラミング言語の違いは時代の変遷と密接に結びついている
2014.4.1
「PHPとかRubyとかあるけど、実際プログラミング言語って何が違うの?」
と聞かれた時、何が違うのかなーとちょっと真面目に考えてみた。
時代の変遷と結びついている
色んな言語があるけど、究極的にはここに帰結するんじゃないかなあと若輩者ながらに思う。
今日、RubyがどうしてPHPに比べてこれだけ流行っているかと言えば、Rubyやその周辺のツールが IT産業が発達した今の時代と親和性が高いからだよねという話。
例えば IT産業が発達して 新しい技術やサービスが目まぐるしく登場している今、如何に速いスピードで質の高いサービスをユーザに提供するかが課題になった状況下において、継続的インテグレーションやアジャイル開発といった、その時代におけるニーズと親和性の高い概念の影響を強く受けたRubyまわりのツールは、Rubyを世の中に知らしめる上で大きな役割を担ったと考えられる( 例えばRailsで言うと、マイグレーションやscaffoldなんてその最たるものだし、ユニットテストを全面的にサポートしている )。
ツールに限った話ではなくて、Ruby自体が直感的に書きやすい言語を目指していて PHPと比べて比較的書きやすいと言われているのも流行っている理由の一つだと思う。ただ、Ruby自体が1993年から存在している言語であるということを考えると、Railsとの出会いを踏まえて上記のように時代が必要とする概念や哲学と親和性を高めていったのがやはり大きな理由なのではないかなと感じた。
古い言語はなぜ取って変わられるのか
大企業がその古い体質を変えるのに苦戦するように、言語パラダイムやフレームワークもそうそう簡単に方針を変更できないし、変更に際して苦戦を強いられる( PHPが3系から4系にシフトした時のように )からだと思う。
ただ、時代のニーズ云々とはいえど、人工知能を扱うようなLISPとかLinuxとかその他のシステムの元にもなっているCとかそういった血統を引く言語やツールが多いような言語は、一回の変遷が起こるサイクルも長いから、一般的なプロダクトのライフサイクルを考えると こうした言語は 例え時代の変遷スピードが高速であるにせよ、今後もしばらく残り続けるだろうなあと思う( だって、もしそういうシフトが起こるとしたら そのOSやミドルウェアが「全て」影響を受けることになるのだから。もし無理に「スピード」で置き換えようと思うと、従来のシステムを使用している自動車から交通インフラ、政府機関、日常生活、何から何までに渡ってカオスをもたらす結果になるだろうと思う )
今後どんな言語が出てくるだろう
小型のハードウェア、様々なウェアラブルデバイスが登場する今、そのうちハードウェア関連の処理と親和性の高い言語が登場してくるんだろうなあと思う。
今で言うと CやC++、Pythonなんかが使われたりしているけれど、そのうち ハードウェアの時代のニーズを如実に反映した概念に基づくプログラミング言語がオープンソースで登場してくるのはそこまで想像が難しくない。