アカウント名:
パスワード:
このニュース、API仕様の話をしているのか、コードの話をしているのか両方なのかよくわからない。
もし、VM等のヘッダファイルの話なら、さすがにそのままコピーするのはNGだと思う。C だって処理系によって内容は違う。ただ、これまでのニュース見てもどっちかわかる記事が無い。
> コードの話をしているのか
これ
今回は、だれがどうやっても同じにしか書きようがないから、著作権による保護の対象からはずしてくだちい、とグーグルが主張しているという話マージ理論というのがあって、それがその根拠
コードの話なんだけど、実装コードじゃなくて宣言コードの話なので、ほとんどAPI仕様の話といってもいい。「仕様」というアイデアに著作権は認められないので、苦し紛れに「宣言コード」が思想の表現物だと主張したら、認められちゃったという感じ。
例えば、最大値を返すJava API「java.lang.Math.max」の構造、順序、構成は「java.num.compare.high」としてもいいし、ベタに「max」としてもいいのだから、そこは開発者によって千差万別で、マージ理論は適用されないでしょってこと。
でも、.NETでもMaxはSystem.Math.Maxに居るので主張としてはJava云々は置いといて処理系として構造をそうするのはおかしくないって主張出来るような
Java.langってJava言語のって意味だしな
public String substr(String str,int pos,int length);(違った気がするが)ってAPIがあったのをGoogleがAndroid向けに再実装したらダメって言ってるのでトンデモ案件なんだけど高裁が認めちゃって最高裁も棄却しちゃったから頭抱えてる案件
public String substr(String str,int length,int pos);なら OK だって認められたほうが世の中の弊害は多くなりそう
SQLですらPOSの位置が1始まりで混同するのにな
String str じゃなくて String s にするとかスペースの数が違うとかなら通ったのではないだろうか、という気はするが。コードの比較とかしてるページないかな。 実際のところどの程度の相似具合だったんだろうか。
そんな低次元の話ではないと思われ。
AndroidはUIスレッドからはネットワークIO出せないが、GoogleはASyncTaskとかいうクソAPIしか実装できなかった。そして、OracleがExecutorService作ったら丸パクリ。
もうちょと高度なAPIの話。# いい加減あきらめてカネ払えよ。
>そして、OracleがExecutorService作ったら丸パクリ。順番が違っている。ExecutorServiceはJava5だから、パクるも何もAndroid最初期からある(Javaそのものをパクったことは置いといて)。AsyncTaskのパクリ元は、SwingのSwingWorker。
その例は逆に「著作権保護の対象とならない」と認められてる範囲だろ他人に解説したいならタレコミくらいちゃんと読めよ
お前こそ資料ちゃんと読めよ上はただ単に例として書いただけで正確に書けばsubstrであればjava.lang.String.substring(int beginIndex, int endIndex);は、保護の対象なJavaの正確なクラス覚えてないから多分間違ってるけどこんな感じで書いただけで
資料読めばjava.lang.Math.max(int a, int b);とかで書いてあるよ?
さすがにそのままコピーするのはNGだと思う。C だって処理系によって内容は違う。
これはこれでかなりまずい。もしも「互換性を損なわない程度に内容が違う」で著作権違反にならないということになるとMinifierや難読化ツールのようなコンバータでも著作権違反を回避できるということになり、ソースが公開されているものはパクり放題。オープンソースライセンスは事実上パブリックドメインと同等になるんじゃない?
> もしも「互換性を損なわない程度に内容が違う」で著作権違反にならないということになるとMinifierや難読化ツールのようなコンバータでも著作権違反を回避できるということになり、ソースが公開されているものはパクり放題。
それは実装のコピーの話でしょう。APIのコピーとは話が違うんですよ。
APIの宣言の実装のコピーの話だよ。
> APIの宣言の実装のコピーの話だよ。
「APIの宣言の実装」っていうと宣言の話をしているのか実装の話をしているのか分かりづらいので「APIの宣言のコード」っていう言い方をしましょうよ。
で「API宣言のためのコードのコピーの話」をしてるっていうのは確かにその通りなんですがこれに対し #3744965 が話しているのは「宣言のためのコード」じゃなくて「Minifierや難読化ツールのようなコンバータで実装のためのコードをコピーする」話なので話が違うっていう指摘です。
#3744965だけどそれは違う。「宣言のためのコード」をコンバータを使って互換性を維持できる範囲で変換したものはセーフなの?って話。「C だって処理系によって内容は違う」の違いもそういうのと大差ないわけだし。難読化ツールなどはたとえとして出したのだけど、かえって誤解を招いてしまったのは反省している。
>「宣言のためのコード」をコンバータを使って互換性を維持できる範囲で変換したものはセーフなの?って話。
なるほど。既存のコンバーター使った場合、宣言順序とかは同じになるしアウトになる可能性がありそうです。
人手で意図的に似ないように書けばセーフになるのは確実なので、それと同レベルで似なくできる自動変換ソフトをカスタムで作って秘密裏に使えばバレない限りは大丈夫()ではないかとw
何を言っているのかと思ったら、宣言に対する定義のことを実装って言ってるんだね。どのあたりの用語なんですか?
#3744965です。「互換性は維持しているがテキストとしては大きく違うので著作権違反ではない」みたいなジャッジがAPIならありだけど実装だとダメとするとしたら著作権のジャッジでそこまで技術的な内容に踏み込むことができるのか、踏み込んだらその線引きは誰がどのように行うのかとか、けっこう危険な泥沼だと思ってます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
報道がよくわからない (スコア:0)
このニュース、
API仕様の話をしているのか、
コードの話をしているのか
両方なのかよくわからない。
もし、VM等のヘッダファイルの話なら、さすがにそのままコピーするのはNGだと思う。
C だって処理系によって内容は違う。
ただ、これまでのニュース見てもどっちかわかる記事が無い。
Re: (スコア:0)
> コードの話をしているのか
これ
今回は、だれがどうやっても同じにしか書きようがないから、著作権による保護の対象からはずしてくだちい、とグーグルが主張しているという話
マージ理論というのがあって、それがその根拠
Re: (スコア:0)
コードの話なんだけど、実装コードじゃなくて宣言コードの話なので、ほとんどAPI仕様の話といってもいい。「仕様」というアイデアに著作権は認められないので、苦し紛れに「宣言コード」が思想の表現物だと主張したら、認められちゃったという感じ。
例えば、最大値を返すJava API「java.lang.Math.max」の構造、順序、構成は「java.num.compare.high」としてもいいし、ベタに「max」としてもいいのだから、そこは開発者によって千差万別で、マージ理論は適用されないでしょってこと。
Re: (スコア:0)
でも、.NETでもMaxはSystem.Math.Maxに居るので主張としてはJava云々は置いといて
処理系として構造をそうするのはおかしくないって主張出来るような
Java.langってJava言語のって意味だしな
Re: (スコア:0)
public String substr(String str,int pos,int length);
(違った気がするが)
ってAPIがあったのをGoogleがAndroid向けに再実装したらダメって言ってるのでトンデモ案件なんだけど
高裁が認めちゃって最高裁も棄却しちゃったから頭抱えてる案件
Re: (スコア:0)
public String substr(String str,int length,int pos);
なら OK だって認められたほうが世の中の弊害は多くなりそう
Re: (スコア:0)
SQLですらPOSの位置が1始まりで混同するのにな
Re: (スコア:0)
String str じゃなくて String s にするとかスペースの数が違うとかなら通ったのではないだろうか、という気はするが。
コードの比較とかしてるページないかな。 実際のところどの程度の相似具合だったんだろうか。
Re: (スコア:0)
そんな低次元の話ではないと思われ。
AndroidはUIスレッドからはネットワークIO出せないが、GoogleはASyncTaskとかいうクソAPIしか実装できなかった。
そして、OracleがExecutorService作ったら丸パクリ。
もうちょと高度なAPIの話。
# いい加減あきらめてカネ払えよ。
Re: (スコア:0)
>そして、OracleがExecutorService作ったら丸パクリ。
順番が違っている。ExecutorServiceはJava5だから、パクるも何もAndroid最初期からある(Javaそのものをパクったことは置いといて)。
AsyncTaskのパクリ元は、SwingのSwingWorker。
Re: (スコア:0)
その例は逆に「著作権保護の対象とならない」と認められてる範囲だろ
他人に解説したいならタレコミくらいちゃんと読めよ
Re: (スコア:0)
お前こそ資料ちゃんと読めよ
上はただ単に例として書いただけで正確に書けばsubstrであれば
java.lang.String.substring(int beginIndex, int endIndex);
は、保護の対象な
Javaの正確なクラス覚えてないから多分間違ってるけどこんな感じで書いただけで
資料読めば
java.lang.Math.max(int a, int b);とかで書いてあるよ?
Re: (スコア:0)
さすがにそのままコピーするのはNGだと思う。
C だって処理系によって内容は違う。
これはこれでかなりまずい。
もしも「互換性を損なわない程度に内容が違う」で著作権違反にならないということになるとMinifierや難読化ツールのようなコンバータでも著作権違反を回避できるということになり、ソースが公開されているものはパクり放題。
オープンソースライセンスは事実上パブリックドメインと同等になるんじゃない?
Re: (スコア:0)
> もしも「互換性を損なわない程度に内容が違う」で著作権違反にならないということになるとMinifierや難読化ツールのようなコンバータでも著作権違反を回避できるということになり、ソースが公開されているものはパクり放題。
それは実装のコピーの話でしょう。
APIのコピーとは話が違うんですよ。
Re: (スコア:0)
APIの宣言の実装のコピーの話だよ。
Re: (スコア:0)
> APIの宣言の実装のコピーの話だよ。
「APIの宣言の実装」っていうと宣言の話をしているのか実装の話をしているのか分かりづらいので
「APIの宣言のコード」っていう言い方をしましょうよ。
で「API宣言のためのコードのコピーの話」をしてるっていうのは確かにその通りなんですが
これに対し #3744965 が話しているのは「宣言のためのコード」じゃなくて
「Minifierや難読化ツールのようなコンバータで実装のためのコードをコピーする」話なので
話が違うっていう指摘です。
Re: (スコア:0)
#3744965だけどそれは違う。
「宣言のためのコード」をコンバータを使って互換性を維持できる範囲で変換したものはセーフなの?って話。
「C だって処理系によって内容は違う」の違いもそういうのと大差ないわけだし。
難読化ツールなどはたとえとして出したのだけど、かえって誤解を招いてしまったのは反省している。
Re: (スコア:0)
>「宣言のためのコード」をコンバータを使って互換性を維持できる範囲で変換したものはセーフなの?って話。
なるほど。
既存のコンバーター使った場合、宣言順序とかは同じになるしアウトになる可能性がありそうです。
人手で意図的に似ないように書けばセーフになるのは確実なので、
それと同レベルで似なくできる自動変換ソフトをカスタムで作って秘密裏に使えば
バレない限りは大丈夫()ではないかとw
Re: (スコア:0)
何を言っているのかと思ったら、宣言に対する定義のことを実装って言ってるんだね。
どのあたりの用語なんですか?
Re: (スコア:0)
#3744965です。
「互換性は維持しているがテキストとしては大きく違うので著作権違反ではない」みたいなジャッジがAPIならありだけど実装だとダメとするとしたら
著作権のジャッジでそこまで技術的な内容に踏み込むことができるのか、踏み込んだらその線引きは誰がどのように行うのかとか、けっこう危険な泥沼だと思ってます。