「ガーベジコレクション」「リフレクション」「アスペクト指向」「クロージャ」「イテレータ」「型推論」など、近年、プログラミング言語の世界に新しい概念が続々となだれ込んでいるように見えます。しかし、この背景には、実はあまり知られていない歴史が隠されているのです。
前回紹介したように、「知られざる言語」で熟成された機能が、メインストリームの言語に続々と取り込まれているのが「新潮流」の真実だったわけです。メインストリームの言語しか見ていなかった人にはまったく新しいものに見えますが、実際にはもう何年も何十年も使われてきた技術だったのですね。
ここにきてなぜ、新技術がメインストリームに取り込まれるようになったのか、はっきりとした理由は分かりません。しかし、おそらくは以下のような原因があるのではないでしょうか。
ハードウェアの進歩による性能向上で、以前は受け入れられなかったような性能上のペナルティがある技術も受け入れられるようになったこと。例えばオブジェクト指向プログラミングやガーベジコレクションなど。
開発すべきソフトウェアはどんどん複雑化しており、旧来の言語による開発に限界が見えてきた。より生産性を向上させるような技術に、貪欲にならざるを得なくなった。
同じ技術に固執したがるのは人間のさがですが、それでも開発効率のために新しい技術や概念を探求しようという意識が、技術者の間で高まった。
そして、そのような開発効率向上技術が、いままで主に学術分野で使われていた「あまり知られていなかった言語」から取り込まれるようになったのではないでしょうか。
ガーベジコレクションは、プログラムの実行中に使われなくなったオブジェクトを自動的に検出して、そのメモリ領域を解放する技術です。Javaによって一躍普及し、一般に受け入れられるようになった技術ですが、Lispではその当初から採用されていました。ガーベジコレクションに関する初期の論文は、1960年代半ばにはもう発表されています。
ガーベジコレクションは誕生から40年以上たつ現在でもいまだにホットな話題ですが、ここではLisp周辺で古くから用いられていたことを紹介するだけにとどめることにします。
Copyright © ITmedia, Inc. All Rights Reserved.