バベル案内での「STLの作者がOOPは嫌いだと言ったという話」

www.aoky.net

昔読んだSteve Yeggeの「バベル案内」のC++ の話に「STL作者が OOP は嫌いだと言っていてショックを受けた」ということが書いてあって、ふーんと思っていたが、最近Alexander Stepanovのインタビュー記事を読んでいてそれっぽい話があった。

www.stlport.org

Yes. STL is not object oriented. I think that object orientedness is almost as much of a hoax as Artificial Intelligence.

はい。STLオブジェクト指向ではありません。オブジェクト指向は、人工知能と同じくらいデマだと思います。

この人の別のインタビュー記事も面白い。

stepanovpapers.com

Using animals as an example (OO people love animals)

動物を例にとると (OO 人は動物が大好きです)


Let's consider now why C is a great language. It is commonly believed that C is a hack which was successful because Unix was written in it. I disagree. Over a long period of time computer architectures evolved, not because of some clever people figuring how to evolve architectures---as a matter of fact, clever people were pushing tagged architectures during that period of time---but because of the demands of different programmers to solve real problems. Computers that were able to deal just with numbers evolved into computers with byte-addressable memory, flat address spaces, and pointers. This was a natural evolution reflecting the growing set of problems that people were solving. C, reflecting the genius of Dennis Ritchie, provided a minimal model of the computer that had evolved over 30 years. C was not a quick hack. As computers evolved to handle all kinds of problems, C, being the minimal model of such a computer, became a very powerful language to solve all kinds of problems in different domains very effectively.

なぜ C が優れた言語なのかを考えてみましょう。C は Unix が C で書かれているために成功したハックであると一般に信じられています。同意しません。長い時間をかけてコンピュータ アーキテクチャが進化したのは、一部の賢い人々がアーキテクチャを進化させる方法を考え出したからではありません。実際の問題を解決するためのさまざまなプログラマ。数値だけを処理できるコンピューターは、バイト アドレス指定可能なメモリ、フラットなアドレス空間、およびポインターを備えたコンピューターに進化しました。これは、人々が解決しようとしていた一連の問題の増大を反映した自然な進化でした。C は、デニス リッチーの天才を反映して、30 年以上にわたって進化してきたコンピューターの最小モデルを提供しました。Cは簡単なハックではありませんでした。コンピューターがあらゆる種類の問題を処理するように進化するにつれて、そのようなコンピューターの最小モデルである C は、さまざまなドメインのあらゆる種類の問題を非常に効果的に解決するための非常に強力な言語になりました 。