はじめに
本連載では、プログラミング言語「C++」を設計し、最初に実装したBjarne Stroustrup氏を取り上げてきました。同氏は「C++」を設計しただけではなく、20年以上の長期に渡りその発展のために努力してきました。筆者は、本連載をこれまで閲覧されてきた皆さんが“20年”という数値をどのように解釈されているのか大変気になっています。
国際標準プログラミング言語C++にはSTL(Standard Template Library)と呼ばれるライブラリが採用されています。STLを創案したのはAlexander Stepanovという人ですが、同氏はStroustrup氏の求めに応じて「Short History of STL」(PDF)という小論文を起草し、STLの歴史を手短に整理しています。その論文に目を通してみると、『STLは私の20年間の思索の結論である』という一文に出会うことになります。ここでも20年という数値が登場します。
一人の成人した人間がある課題解決に20年を費やした場合、“その人はその課題に人生を賭けた!”、と言っても大げさではないでしょう。プログラミング言語、そしてライブラリ作成に人生を賭ける。20代の人の20年後は、40歳代に。30代の人なら50歳代に突入します。
ソフトウェア開発やその周辺技術の設計・開発は人生を賭けるほどの価値を持っているのでしょうか? また、それほどの魅力を見出すことができるものなのでしょうか? Stroustrup氏は、価値と魅力を見い出しているようなのです。
今回の質問意図
7、8年前、筆者はこのような記事(10行のプログラムで分かるWindows 2000/Windows XPの世界:ITpro)を公開したことがあります。当時公開したサンプルコードは、今でもほとんどそのまま動作します。使われている技術を習得するのも決して難しいわけではありません。その技術は、コンテナーとアルゴリズムという2つの概念に支えられています。これら2つの概念はソフトウェア開発者にとっては、もしかすると、既にありきたりな用語になっているかもしれません。しかし、それぞれの価値が失われたわけではありません。筆者はこれら2つの概念に関係する質問メールを送信してみました。