世界最初の Interface を考案したのは Java ?

これは...、荒れるかなぁ。尻馬に乗っているともいえるけれど。でもあたしんちは しっかり渦の中に巻き込まれているから何をいまさらだし、毒を喰らわば皿まで。なにより JavaBlack さんには聞きたいことがあるのです。


私の、

2.別の概念を別の概念として扱えること。兼ねない。
(中略)

2 は、例えば Java が Interface を導入したのが良い例です。悪い例としては古典的ですが、C のキャストが 型変換 / 型変更 / const 外し の ごった煮であることとか。分けられる概念は整理して分けた方が覚えやすいと思う。

難しい言語 - みねこあ

について、JavaBlack さんが

2については,例えばInterfaceなどというものはJava以前には,まず存在しなかった.兼ねるも何もない.

「難しい言語」の補足 - カレーなる辛口Javaな転職日記

と回答したのに始まる一連の話ついで

世界最初のXXXを考案したのは誰か? - カレーなる辛口Javaな転職日記

について。


こんな風に無理に一般化するのではなくて、直に 世界最初の Interface を考案したのは Java だ! と題して、それの根拠を答えてくれたほうがよっぽど読み応えがあってよいと思います。

この議論に参加しているJavaBlackさん以外の誰もが、「Java が 最初の Interface を考案した」は ダウトだと思っています。でも、JavaBlack さんは 今現在でもダウトではないと思っているように感じられます。

インターフェースについてですが、Objective-Cという言語がありまして、まあマイナーな言語なんでご存じないとは思いますが、これにJavaのインターフェースとおなじ機能が存在します。名前はインターフェースではなくプロトコルといいます。もともと分散オブジェクトのために追加された機能らしいです

これなんかは良い例ですが,言語機能としては(一見して)「同じ機能」であったとしても,それがはたして「同じ目的やプログラミングパラダイムまで想定していたか」という部分に疑問が残ります.これについてはマニュアルを調べてもおそらく出てこないでしょう

世界最初のXXXを考案したのは誰か? - カレーなる辛口Javaな転職日記

とかですね。


ならば、私はそこら変の話が聞きたいです。せっかくなんだし、詭弁みたいなやり取りじゃなくって、もっと確りとした意見が聞きたい。

Java の Interface はどのような新規性があったのか」とか。これは、JavaBlack さんのような しっかりとした Java屋さんにしか語れないことだと思う。だから聞きたいです。


* * *


ボールは投げてみました。返ってくるかな、ドキドキ。

追記

ちなみに私の見解は、言語機能としては置いといて、Java以前にも Class と 継承の (Javaの) Interface的な使い方はあったと思うし、だからいろんな言語が実装していても不思議ではないと思っています。COM周りではこんな話もあるみたいです(勉強になるなぁ)

COMSOM思い出してみたり


トラックバック先エントリで「マニュアルにも載ってない」と切って捨てた Objective-Cプロトコルですが、Objective-C なんてメジャーな言語ですから、使ってた人なんていっぱいいるので、実際の話だって聞けるでしょう。

この議論は絶対面白いものになるハズ、、と私は思っています。

追記

[OOP]「世界最初のInterfaceを作ったのはJavaだ」は真か? - カレーなる辛口Javaな転職日記を受けて

こんな風に無理に一般化して正当性を説こうとするのではなくて、

すみません。悪乗りでした。読み返して「正当性〜」の部分はあわてて消したのですが間に合いませんでした。ごめんなさい。まさかこんなに早くボールを返していただけるとは。恐縮です。

それを証明するのは,「Java以前にInterfaceを考案した言語が存在しない」ことを証明すればいいわけですよね.でもそれって悪魔の証明って言いません?

そうですね。悪魔の証明です。でも Web であれば(特に炎上と呼ばれる状況下では)悪魔の証明があるていど出来てしまうのが面白いところだと思います。注目があつまって、「あれがあるよ」「これがあるよ」といってくる人が出てくる、それを全て切り伏せられれば、それ以上はもうだいたい納得できてしまうかも。

「言語の概要を知っている」というレベルではなく,言語仕様から設計思想やプログラミングスタイルまで熟知していないと判定できないので

とあわせて、だからこんな風にエントリを切れは、面白い話がいっぱい出てきてそれを検証できるかな、と思ったわけです。

また、JavaBlack さんの過去のエントリーについて、Interface にとてもこだわった発言を目にすることができるので、そこについてまとまった文章を読みたいと思ったのもあります。