ちょっと気になったのでまとめておきます。
どんな話か
この件についての自分の考え
- 一般的にはAPIの利用はフェアユース。
- 例えば、WineはMicrosoftの公表しているAPIを再実装していますが、その利用はフェアユースの範囲だと言える。
- しかし、この件に限って言えば、Googleのやり方は「あかんわ」と。
何が駄目なのか
この記事を元に話をします。
Java API 訴訟の件で私が Google よりも Oracle の肩を持つ理由 - Qiita
以下のような点が問題だと書いています。
android
というトップレベル・パッケージ名- CLDC/CDC/MIDP 2.0/PBPといった仕様を無視
- Dalvil仮想マシンの互換性
- Android BLE APIの品質の悪さ
- 基本APIの実装不具合
自分はこのうち、1, 2, 4については許容範囲であり、 3については黒に近いグレー、5は真っ黒という感想を持っています。
まず、1, 4について許容範囲なのは、Androidの独自実装だからです。
パッケージ名はドメイン名の逆、このサイトならcom.ikemo3
以下にするのが
基本ですが、それを守ってないライブラリはいくつもあります。
少なくとも、これを元に「互換性を破壊」とは言えません。
また、2についても、「既存の仕様はAndroidには不十分だった」というのは、 採用しない十分な理由だと思います。
一方で、3と5は、両方とも「仕様を無視して互換性を破壊」しているからです。
String.indexOf(String, int)
に問題があるとか、
そりゃ怒るわと言いたくなります。
Android以外は問題にされていない
例えばGoogle App Engineにも(おそらく)独自の制限がかかっていますが、 問題になっていません。 これは、あくまでその制限がクラウド上という環境による「仕方のない」もので、 可能な限り互換性を保つように作られているからです。