Google batte Oracle: Android fa un uso corretto delle API Java

Google si è appellata al fair use durante il processo contro Oracle per l'uso delle API Java su Android, e la giuria ha creduto all'argomentazione della società
di Nino Grasso pubblicata il 27 Maggio 2016, alle 10:01 nel canale TelefoniaGoogleOracleAndroid
84 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoSecondo cdimauro si
Non c'è altro modo di scrivere le dichiarazioni
No, la sentenza di fair use non fa precedente in quanto il fair use deve essere provato ogni volta. E' la sentenza precedente che dichiara protette da copyrigth le dichiarazioni delle API che fa precedente e che crea conseguenze assurde per il SW (salvo ribaltamenti eventuali da parte della corte suprema)
Questo sarebbe una manna dal cielo per le aziende.
Ma cosa stai dicendo? Quello che dici si può già fare e viene fatto: ad esempio i driver Nvida e AMD per Linux che sono closed source oppure Microsoft che ha reimplementato le API di android e quindi ha riutilizzato le dichiarazioni.
Pensa a quello che dici e ti renderai conto che non ha un senso:
Se fosse come dici tu mi basterebbe
[LIST]
[*]prendere il file header_originale.h e salvarlo come header_copia.h
[*]rimuovere i commenti originali
[*]inserire il commento /* Per i commenti si veda header_originale.h*/
[/LIST]
e sarei a posto con il copyright.
Se il problema fosse questo non sarebbe stato montato tutto questo caso e Google avrebbe sanato la cosa in 5 minuti.
Quello che Oracle afferma, e la sentenza di appello precedente gli da purtroppo ragione fino a prova contraria, è che le dichiarazioni stesse sono protette da copyright. Questo è un assurdo perché nelle dichiarazioni di una API non c'è nessuno sforzo creativo e perché come conseguenza nessuno potrebbe più riutilizzare tali dichiarazioni con l'effetto finale che nessuno potrebbe più reimplementare una qualsiasi libreria.
Non so se questo ti è chiaro perché da quello che dici pare proprio di no
Mi pare però di capire che la materia del contendere non sia proprio questa. Purtroppo non ho il tempo di seguire la cosa su Arstechnica, per cui... qualcuno può spiegare in poche righe quale sia il nocciolo della questione?
La materia del contendere è l'accusa di avere copiato 1) il codice dichiarativo (cioè avere dichiarato max come int max(int a, int b) invece che come int max (int x, int y), per capirci) e 2) la struttura e l'organizzazione delle API (cioè avere inserito il metodo max nella classe java.lang.math invece che in java.lang.vattelapesca, per capirci). Dalle indicazioni fornite dal giudice alla giuria:
[I]I will now remind you of some important established facts regarding the copyrighted works at issue in this case.
The Java platform is a software application platform that is used to write and to run programs in the Java programming language. The Java programming language is free and available to use without permission from anyone. The Java platform includes, among other things, the Java Virtual Machine and the Java API packages. “API” stands for “Application Programming Interface.”
What is at issue in this case are the Java API packages, which are sets of prewritten computer programs used to perform common computer functions without a programmer needing to write code from scratch. These prewritten computer programs assist developers in writing applications. These prewritten programs are organized into packages, classes, and methods. An API package is a collection of classes. Each class contains methods and other elements.
[U]The packages, classes, and methods are defined by declaring code. The declaring code is the line or lines of source code that introduce, name, and specify the package, class, or method.[/U] The declaring code allows programmers to understand and make use of the prewritten programs in the API packages to write their own programs.
[U]The declaring code for the packages, classes, and methods reflects the structure, sequence, and organization (or “SSO”
Each individual method performs a specific function. The declaring code for a method is sometimes referred to as the “method declaration,” “header,” or “signature.” The declaring code for a method tells the programmer the information the method needs (the inputs) to perform the desired function.
Each method also contains implementing code. The implementing code provides step- by-step instructions that tell the computer how to perform the function specified by the declaring code. [U]The declaring code and the SSO of the 37 Java API packages at issue[/U] are protected as part of the overall work protected by copyrights owned by Oracle. The copyright protection does not extend to the idea of organizing functions into packages, classes, and methods, but the copyright protection does cover the SSO as expressed in the 37 Java API packages.[/I]
Sempre dallo stesso link: [I]"Under the Copyright Act, an author owns the exclusive right to use or to license his or her writings or images or other copyrightable works with the statutory exception that anyone may make fair use of even a copyrighted work and may do so [U]without anyone’s permission and without payment of money to anyone[/U]."[/I]
Secondo la tua solita limitata capacità di vedere le cose, il problema è che sono state usate 11.500 linee di codice Oracle da parte di Google. Anzi, no, non è proprio codice, sono semplicemente dichiarazioni di API. Quindi il contendere non è sul fatto che queste dichiarazioni descrivano un'opera di ingegno nel loro complesso, ovvero una struttura che permetta a una ben definita libreria di lavorare in collaborazione con altro codice, cosa che Oracle ritiene essere il nocciolo della questione, ma il tutto è ridicolizzato ad avere usato gli stessi file header senza aver "camuffato" eventuali commenti o l'ordine delle funzioni.
Cioè, 9 miliardi sono stati richiesti per non aver usato uno script che mescolasse i caratteri. Come dire che invece di aver intentato causa perché mi hai clonato l'auto ti sei permesso di aver messo gli stessi specchietti retrovisori e non hai avuto neanche il buon gusto di cambiare il colore della carrozzeria.
Il problema reale, anche se per te è difficile capirlo come in altri contesti nel passato, è molto più profondo con implicazioni diverse dal "non aver riscritto le dichiarazioni da zero". Visto che il risultato sarebbe stato lo stesso e non è quello su cui Oracle si è opposta.
Il problema è se le dichiarazioni delle funzioni pubbliche di una libreria siano o meno soggette a copyright. Se lo sono, sua che tu le riscriva o faccia C&P dei file originali stai violando la legge. Se non lo sono, sia che tu le riscriva perdendo tempo o che tu usi i file originali, non è violazione.
È questione di arrivare a pensare un passo più in là. E dire "colpevoli per aver usato 11.500 linee di codice Oracle" dimostra che tu sei capace di arrivare solo a 2 passi più indietro di quel che sarebbe necessario per affrontare questo tipo di discussioni.
Torna a scrivere codice x le Xeon Phi che ora con i 10nm oltre a Nvidia arriva anche ARM e i giochi di fanno più duri.
Fermati. Io ho scritto che Google ha violato il copyright, COPIANDO (copy - right) quelle righe di codice.
Poi, replicando a te che affermavi che fosse impossibile riscrivere il codice dichiarativo visto che ci sarebbe un solo modo (e l'hai di nuovo ribadito nel commento sotto), ti ho [U]dimostrato in che modo è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale[/U].
Per me rimane violazione del copyright (copy - right, di nuovo) perché hai ugualmente co-pi-a-to del materiale non tuo (e del quale non hai licenza, ovviamente) anziché prenderti la documentazione e rimboccarti le maniche riscrivendo da zero tutto.
Falso, e te l'ho dimostrato anche prima.
Scusami, e io che ho detto?!?
Ho per caso negato questo?
FedNat, ma i precedenti commenti li hai letti prima di replicare di nuovo, oppure hai dimenticato già tutto?
Falso nuovamente: non puoi copiare roba dagli header (coperti da GPL), se finisce in kernel space. In realtà ci sono modi per aggirare la licenza, pur mantenendo il codice chiuso, e ne abbiamo anche parlato di recente in un thread.
Inoltre per roba che lavora in user space è "safe" copiare dichiarazioni di funzioni, costanti, enumerativi, ma se c'è del codice in mezzo (macro contenente istruzioni o funzioni inline) allora siamo in un'area grigia (anche se perfino Stallman ritiene che non ci siano problemi). E' per quest'incertezza che esistono gli appositi header che vengono generati in modo da avere soltanto codice dichiarativo, e che quindi si possono copiare.
Informati.
Magari perché Android è sotto licenza Apache?
Se fosse come dici tu mi basterebbe
[LIST]
[*]prendere il file header_originale.h e salvarlo come header_copia.h
[*]rimuovere i commenti originali
[*]inserire il commento /* Per i commenti si veda header_originale.h*/
[/LIST]
e sarei a posto con il copyright.
Se il problema fosse questo non sarebbe stato montato tutto questo caso e Google avrebbe sanato la cosa in 5 minuti.
Quello che Oracle afferma, e la sentenza di appello precedente gli da purtroppo ragione fino a prova contraria, è che le dichiarazioni stesse sono protette da copyright. Questo è un assurdo perché nelle dichiarazioni di una API non c'è nessuno sforzo creativo e perché come conseguenza nessuno potrebbe più riutilizzare tali dichiarazioni con l'effetto finale che nessuno potrebbe più reimplementare una qualsiasi libreria.
Non so se questo ti è chiaro perché da quello che dici pare proprio di no
Non sarà chiaro a te, piuttosto: vedi sopra, dove ho già risposto a queste cose.
Inoltre leggiti il successivo commento di litocat, nella parte iniziale.
Su ArsTechnica, infine, trovi anche le dichiarazioni sulla copia delle 11500 linee di codice. Se non le trovi, te le riporto io appena ho un po' di tempo.
In sintesi estrema ci sono DUE punti sulla vicenda: violazione di copyright per la copia delle suddette linee, e per aver copiato le API.
Sempre dallo stesso link: [I]"Under the Copyright Act, an author owns the exclusive right to use or to license his or her writings or images or other copyrightable works with the statutory exception that anyone may make fair use of even a copyrighted work and may do so [U]without anyone’s permission and without payment of money to anyone[/U]."[/I]
Sì, ma in quella parte della discussione era stato messo a confronto il sistema dei brevetti, che prevede il fair use e il pagamento di un congruo (secondo le autorità
Secondo la tua solita limitata capacità di vedere le cose,
Sei tornato dopo aver perso faccia (ma tanto tu non ne hai, visto quello che continui tranquillamente dopo essere stato messo in croce per le bestialità che hai scritto), e parti subito offendendo.
Nulla di nuovo. Ma vedremo come stanno realmente le cose. Al solito.
Sono state COPIATE.
E' codice. Dichiarativo. Ma sempre codice è.
Vedi sopra: ci sono ENTRAMBE le cose. Aver copiato le righe di codice, e aver copiato le API.
E qui si capisce che non hai capito niente dell'esempio che ho fatto. Per maggiori spiegazioni, vedi sopra la mia risposta a FedNat.
Il problema reale, anche se per te è difficile capirlo come in altri contesti nel passato,
ROTFL: il bue che dice cornuto all'asino.
In passato sei stato messo in croce per le megaballe che hai scritto. Com'è funzionerebbero le istruzioni FMA? Tanto per riportare l'ultima.
Ovviamente io sono ancora qui che aspetto le spiegazioni per le tue perle si saggezza.
Il problema è se le dichiarazioni delle funzioni pubbliche di una libreria siano o meno soggette a copyright. Se lo sono, sua che tu le riscriva o faccia C&P dei file originali stai violando la legge. Se non lo sono, sia che tu le riscriva perdendo tempo o che tu usi i file originali, non è violazione.
È questione di arrivare a pensare un passo più in là. E dire "colpevoli per aver usato 11.500 linee di codice Oracle" dimostra che tu sei capace di arrivare solo a 2 passi più indietro di quel che sarebbe necessario per affrontare questo tipo di discussioni.
Intanto vedi sopra.
Ed ecco la stoccata finale del megatrollone che, dopo aver preso mazzate da tutte le parti (l'ultima volta pure da tuttodigitale :ciapet
Come se questo potesse sistemare tutte le tecnoballe che ha proferito, e che rimangono a bella posta.
Si vede che ti basta poco per essere contento. Povero illuso.
Poi, replicando a te che affermavi che fosse impossibile riscrivere il codice dichiarativo visto che ci sarebbe un solo modo (e l'hai di nuovo ribadito nel commento sotto), ti ho [U]dimostrato in che moda o è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale[/U].
Per me rimane violazione del copyright (copy - right, di nuovo) perché hai ugualmente co-pi-a-to del materiale non tuo (e del quale non hai licenza, ovviamente) anziché prenderti la documentazione e rimboccarti le maniche riscrivendo da zero tutto.
Probabilmente è un mio limite, ma vorrei capire bene questa cosa.
Ipotizziamo che io mia sia svegliato stamattina con l'intenzione di reimplementare qualche parte del tuo wpython. Nella directory Include, ad esempio, trovo l'header code.h, in cui vi è la seguente dichiarazione:
[CODE]PyAPI_FUNC(PyCodeObject *) PyCode_New(
int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *);[/CODE]
A questo punto, se voglio mantenere la compatibilità col tuo progetto, tale interfaccia deve restare invariata. Il punto è, posso prendere questa riga e copiarla così com'è nel mio progetto, o si tratta di violazione di copyright?
E se non posso copiarla, come faccio a realizzare qualcosa di compatibile?
Certo che al di la' di tutto, e' inconcepibile come qualcuno possa fare il 'tifo' (e deve essere necessariamente tifo dato che motivazioni logiche per supportare la posizione di Oracle non ve ne sono) per Oracle, che ha acquistato Sun con il piu' che evidente scopo di mettere i bastoni tra le ruote a Google.
Comunque io credevo che la cosa fosse molto più semplice Java può essere re-implementato per uso personale (i vari Kaffe, Open JDK, ... sono legali), ma non puoi farne una copia per uso commerciale. Cioè non so se Google si faccia pagare per usare Android e so se campa grazie alla pubblicità che appare sotto, ma il discorso non cambia: per quell'uso avrebbe dovuto pagare a Sun / Oracle una licenza d'uso!
Io - sinceramente - non ci vedo nulla di male a pagare chi ha fatto un buon lavoro... sarà che io per lavorare faccio il programmatore vero e non lo faccio per hobby quindi se non mi pagano non mangio
Poi, replicando a te che affermavi che fosse impossibile riscrivere il codice dichiarativo visto che ci sarebbe un solo modo (e l'hai di nuovo ribadito nel commento sotto), ti ho [U]dimostrato in che modo è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale[/U].
Per me rimane violazione del copyright (copy - right, di nuovo) perché hai ugualmente co-pi-a-to del materiale non tuo (e del quale non hai licenza, ovviamente) anziché prenderti la documentazione e rimboccarti le maniche riscrivendo da zero tutto.
Falso, e te l'ho dimostrato anche prima.
Veramente non hai dimostrato nulla (vedi anche post di GTKM sotto):
La parte di "codice" (sempre se di codice si può parlare) non è possibile modificarla pena perdere la compatibilità. Quello è l'unico modo per scrivere le dichiarazioni, per questo non dovrebbe essere coperto da copyright (la corte di appello che ha affermato che è coperto da copyright ha fatto un grosso errore) I commenti non c'entrano niente con la questione del copyright
U.S. Code §
(And that's also part of why the CAFC decision was such a bloody mangle,
and part of why copyright law professors and copyright scholars were even responding to the CAFC decision with comments like,
"Not only do they [CAFC] not understand how computers work, they can't even read". )
http://www.vox.com/2014/5/9/5699960/thi ... e-industry
That clause (102b) isn't in there by accident -- it's a direct consequence of the philosophical, legal and constitutional justifications for copyright law's existence in the first place (and even in 1976, when this clause was added, the legislators acknowledged that §102(b) was merely codification or clarification of existing copyright law and of legal tradition as illustrated by the case law around copyright up till then).
In legal terms this is usually described as "merger", In other words, when the function is inseparably merged with the expression, such that any implementation must conform to that expression, then that expression is excluded from copyright protection. Interfaces, such as APIs, are thus excluded (the implementing code behind the interface, however, although sometimes also referred to as "the API" is still protected by the copyright).
Ho per caso negato questo?
FedNat, ma i precedenti commenti li hai letti prima di replicare di nuovo, oppure hai dimenticato già tutto?
Avevi detto che non c'erano conseguenza da questa storia invece ci sono eccome: non è più possibile reimplementare una libreria perché non è possibile riscrivere gli header senza infrangere il copyright.
Sei d'accordo con questa conseguenza?
Ti sembra normale e giusto?
Pensa un po' alle reimplementazioni del BIOS che hanno fatto nascere tutto il mercato dei PC IBM compatibili sarebbe tutto illegale
Inoltre per roba che lavora in user space è "safe" copiare dichiarazioni di funzioni, costanti, enumerativi, ma se c'è del codice in mezzo (macro contenente istruzioni o funzioni inline) allora siamo in un'area grigia (anche se perfino Stallman ritiene che non ci siano problemi). E' per quest'incertezza che esistono gli appositi header che vengono generati in modo da avere soltanto codice dichiarativo, e che quindi si possono copiare.
Informati.
Ma allora ammetti che il codice dichiarativo si può copiare.
Se sei veramente convinto che tutto questo caso sia nato perché google ha copiato i commenti sei molto fuori strada: Oracle chiede tutti quei soldi perché Google sta riutilizzando le dichiarazioni di Java, non i commenti. Se i commenti fossero il problema la cosa sarebbe già stata risolta da tempo.
Vero esempio sbagliato, facciamone altri:
Amazon che reimplementa le API di Google Map
Compaq che reimplementa le API del BIOS
Microsoft che reimplementa le API UNIX
No, non hai risposto a nulla, riformulo la domanda:
Se io eseguo i seguenti passi:
[LIST]
[*]Prendo un file header_originale.h
[*]Cancello i commenti e lo rinomino header_copia.h
[*]inserisco il commento /* Per i comenti vedere il file header_originale.h */
[/LIST]
Per te ho infranto il copyright o no?
E' codice. Dichiarativo. Ma sempre codice è.
Ma se sopra sembri ammettere che il codice dichiarativo si può copiare??
Quindi secondo te non è possibile reimplementare una API
Scusa ma a me sembra che sia tu a non capire (o non voler capire) quello che stiamo dicendo
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".