No Programming, No Life

プログラミング関連の話題や雑記

プログラミング言語の一生

黎明期

プログラミング言語は生まれてすぐの時から強力であると言える。それは他の言語では適わなかったことができるという意味においてである。しかしすぐに荒削りな部分が露呈し、修正が加えられ、より便利な機能が追加され、我々に新しいパラダイムというものを見せてくれる。言語はますます使いやすくなり、いよいよ繁栄の時を迎える。

繁栄期

様々な分野でその言語が使われるようになり、多くの人がその文法・機能・ライブラリに夢を見る。まさに繁栄期と言ってよい。同時期に存在する他の言語達と切磋琢磨しながら、機能拡張は続けられるだろう。より便利に、より洗練された理想を目指して。人々の思いを乗せて。

限界期

しかし、その繁栄はずっと長くは続かない。例えばそれはハードウェア的な問題からくるものかもしれない。それから言語自体にも限界というものがある。いつものように、同時期に存在する他の言語にその言語にはない素晴らしい機能が追加されたとしよう。しかし、その機能を取り入れることができない日というのが必ず訪れる。予期していたにせよ、突然であったにせよ。
ある言語に他の言語で提供されている機能を付け加えられるか、加えられないかというのはさほど問題ではない。ほとんどの言語でそれは可能であるだろうからだ。問題なのは、付け加えた後にその言語の均整が崩れてしまうことである。
その言語は、その言語の均整が崩れないギリギリのところまで拡張し続けられるだろう。しかし、あるレベルに到達すればもう進化をやめ、その言語の精神を引き継ぎ、それらを包括した新しい言語達にその座を静かに譲るだろう。

終焉期

さて、座を譲ったら引退できるのかというとそうも行かない。既にその言語で記述された無数のプロダクツが世に送り出されてしまっているだろう。そのプロダクツを使い続けて行きたいと考えられることも多いだろう。
そうなった時、言語には「単純さ」が求められる。単純であれば移行は簡単だ。ここで言う「単純さ」とは、機能的に劣っているということではない。美しさは単純さの中に宿る。機能豊富だが複雑で、ある特定の人物にしか扱えないようなものは悪なのだ。

最期に、「あの言語は美しかったね」と言われるようになるには、言語進化においての引き際が大事なのかもしれない。