/note/tech

継承の有害性について議論するときに、当然ながら実装継承と型の継承は違うものなので区別しなければ...

継承の有害性について議論するときに、当然ながら実装継承と型の継承は違うものなので区別しなければいけないというのは2000年代前半でも詳しい人の間では半分常識だったと思うんですよ。私が高校生のときに既にfjやらでその辺は普通に語られてたわけで(fj見てる高校生が普通かはおいとく)。

2024年にその区別をしてから議論しようよと言わなければいけないのは色々と悲しい。

サブタイピングをバリバリに使っておいて、オブジェクト指向嫌い(たぶん実装継承が嫌いとイコールなんでしょうけど)とか一体何を言っているんだみたいな気持ちになります。

@kmizu

> 2000年代前半

もうちょっと手前

Java の言語仕様が固まった辺り (1990年代後半)でも区別は確立していた気がします。

…そうでないと extends implements 構文は生まれそうもなく使う側も納得できないので…

@monamour555

はい。遅めに見積もってもそのくらいというところで、実際にはそのくらいかさらに早くて1990年代前半くらいだろうと感じてます。

@kmizu

そうですね。

アカデミックには更に遡れるかもしれませんが…

実装多重継承を許す C++ で地雷を踏む人々が増えたのはおそらく Microsoft C/C++ Compiler 7.0 (1992年リリース)辺りからだろうと思うので。

1990 年前半辺りで区切りを打つのは現実に近い気はします。

@monamour555