どんでんがえし

artonさんの 憂鬱本の時代背景のお話を聞いて、なるほど〜、と納得します。憂鬱本は「キチンと」書かれている本で、たとえばこの時代なのに Mixin について既に触れられている辺りなど(ミキシン とカタカナ語訳されているのが先取りを感じさせます)素直に凄いと驚きます。

そうしてみると、たかが10年でソフトウェア工学の進歩って凄いな、と思います。


が、それとは真逆な感想をえるものもありまして、私は Smalltalk のミーハー的ファンだから、過去のSmalltalk本を集めてはにんまりする趣味を持っています。(要はコレクターというわけです^^;)

A5版の本だけですが、だいたい時代別に並べてみました。

日本のSmalltalkの本は90年代が旬っぽくって、この後急速に「骨董品言語」扱いにシフトしていくのですけれど(な、なぜ!?)、これらの本の内容は正直今も全然古びていなくって、いえ、古びているのもあるけれどそれは書かれた年次よりも作者の力量に依存しているような感じです。

もちろん色眼鏡も入っていて、言語仕様とライブラリの説明に終止している場合、まー、80年代で既に「枯れていた」らしい Smalltalkですから、内容がぶれないのは当たり前なのです。が、OOの記述に関しても酷く認識が変わったりしないのですよね。MVC はどの時代の本だって当たり前なのですが、MVC の背景にある後に Observerパターンと呼ばれるモノだってもちろん当たり前。それを設計として導き出すノウハウ(多態を使った上手な設計法とか)も当たり前。うーん、すごい♪さすが過去から来た未来の環境です。(と、さりげなく宣伝)

Smalltalk でこれですから 多分 Lisp 周りなんてもっとDIO様バリに時間が止まってる感が溢れて居るんじゃないかしら、と想像します。彼方側にいると「ソフトウェア工学の進歩は遅い」と実感出来てしまいます。


* * *


これは多分、Smalltalkとかが凄い、という話ではなくって、Javaが凄いって話なんでしょうね。 JavaSmalltalkOOP を 上手くコッチ側(C++とか側)の世界に持ち込んだ「以前」と「以降」で世界ががらりと変わってしまったから、コッチ側の以前の情報がググンと古くなっちゃったってことかな?、と思いました。

JavaOOPOOPの全てだと思うな」というフレーズは、私は耳にして心地よく感じますが、冷静に考えれば Java の前にも OOPL なんて普通にあってそれなりにホットだったOOPなのに、「JavaOOP = OOP」な世界になってしまうということは、ひっくり返せば JavaOOP をそれだけ敷衍したということになります。(敷衍できたってことは、JavaOOPに触れて初めて「あー、OOPっていいものだな」って思った人が多かった、ていう風に捉えるのはさすがに行き過ぎかしら?)

もちろん Java以前だって Smalltalk でプロトタイピングして C++ で実装していた人たちもいて(しかもその「移行」をスムースにするためのC++のライブラリもあったらしい)、そう言う人たちにとっては、Java鳴り物入りデザインパターンに代表される SmalltalkOOP の設計ノウハウを 取り込んだのは「何を今更」な感じなのかもしれません。

ですが、同時期に「憂鬱本」が良本と見なされるような世界背景があったのも事実(らしい)で、そんな世の中をひっくり返してしまったのが Java のすごさなのだなぁと思います。

その副作用として「OO = Java の OO」となってしまったとしても、幸せの総量を考えれば、許せてしまうかもね、と思ってしまう今日この頃です。(きっと明日には気が変わってしまう類のものですが)

追記

すみません。単なる空想与太話で、思いつくままに適当書いてます。もちろん裏とか取ってません。――と書き忘れました。

追記その2

ASCIIの smalltalk-80 がないのは判型がA4だからですか?

アスキーのあの本がないのは -ときどきの雑記帖 i戦士篇

この本のことでしょうか?

Smalltalk入門 (Ascii software science―Language)

Smalltalk入門 (Ascii software science―Language)

純粋に持っていないだけでございまする。コレクタとしてはまだまだな私です。

と、返事を書くため AmazonSmalltalk で検索したら、オレンジブック(訳本)の出物を発見!注文!!やほほーい♪ きむら(K)さん、ありがとうございます〜♪