View Full Version : Google batte Oracle: Android fa un uso corretto delle API Java
Redazione di Hardware Upg
27-05-2016, 09:01
Link alla notizia: http://www.hwupgrade.it/news/telefonia/google-batte-oracle-android-fa-un-uso-corretto-delle-api-java_62900.html
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à
Click sul link per visualizzare la notizia.
Ma Google non vende Android, solo le G.Apps
Corretto, no?
cdimauro
27-05-2016, 18:15
E' incredibile che un'azienda che è stato certificato aver copiato, e in piena coscienza, più di 11 mila righe di codice coperte da copyright, sia stata dichiarata non colpevole...
Non ho ben capito la questione delle email: c'è una discussione in cui Andy Rubin critica un'altra società che ha fatto uso delle stesse API.... e quindi?
@cdimauro
Beh, se la giuria si è espressa per il fair use, probabilmente la cosa non è così semplicistica come la esponi e qualche freccia al proprio arco google l'aveva.
Sarei curioso di vedere come andrebbe a finire (e chi avrebbe ragione) una causa simile per i brevetti che Microsoft dice vengono utilizzati da Android, peccato che MS non faccia causa a Google ma richieda il pagamento ai produttori.
Per lo meno si farebbe chiarezza su quella vicenda che è sempre rimasta nel torbido.
Sandro kensan
27-05-2016, 20:02
Io parteggio per google spiona.
cdimauro
27-05-2016, 20:48
Non ho ben capito la questione delle email: c'è una discussione in cui Andy Rubin critica un'altra società che ha fatto uso delle stesse API.... e quindi?
Penso ti riferisca al fatto che Rubin avvisi i suoi superiori che bisogna ottenere una licenza per utilizzare Java, citando altri casi.
@cdimauro
Beh, se la giuria si è espressa per il fair use, probabilmente la cosa non è così semplicistica come la esponi e qualche freccia al proprio arco google l'aveva.
La questione è realmente semplice: copyright = diritto di copia. Significa che non puoi copiare roba che è mia senza la mia autorizzazione. Cosa che invece Google ha fatto.
Il fair use non ha senso qui, visto che Google poteva benissimo reimplementare da zero quelle 11 mila e passa righe di codice. Ma aveva fretta, e ha preferito usare una "scorciatoia", di cui era perfettamente consapevole.
Sarei curioso di vedere come andrebbe a finire (e chi avrebbe ragione) una causa simile per i brevetti che Microsoft dice vengono utilizzati da Android, peccato che MS non faccia causa a Google ma richieda il pagamento ai produttori.
Per lo meno si farebbe chiarezza su quella vicenda che è sempre rimasta nel torbido.
I brevetti sono un'altra cosa.
Penso ti riferisca al fatto che Rubin avvisi i suoi superiori che bisogna ottenere una licenza per utilizzare Java, citando altri casi.
Certo, ma continuo a non cogliere il nesso. Anche perchè la cosa sembra sfavorire la posizione di google, non favorirla come dovrebbe.
La questione è realmente semplice...
Se fosse così semplice non avremmo avuto una sentenza del genere. Evidentemente sono previsti dei casi d'uso in cui l'utilizzo di codice altrui può essere considerato legittimo, e gli avvocati di google sono riusciti a convincere i giudici di rientrarci.
I brevetti sono un'altra cosa.
Si tratta sempre di utilizzo di proprietà intellettuali altrui.
Ma anche qui esistono dei limiti alla legittimità dei brevetti e possibilità di utilizzo di brevetti ormai considerati d'uso comune o considerati necessari per operare in un dato ambito.
La materia non è così "bianco o nero", esistono leggi che servono ad evitare che un uso troppo rigorose del sistema di brevetti possa frenare l'evoluzione del settore o la concorrenza.
Criteri simili potrebbero essere stati applicati qui, anche se si parla di API e non di brevetti.
La questione è realmente semplice: copyright = diritto di copia. Significa che non puoi copiare roba che è mia senza la mia autorizzazione. Cosa che invece Google ha fatto.
Il fair use non ha senso qui, visto che Google poteva benissimo reimplementare da zero quelle 11 mila e passa righe di codice. Ma aveva fretta, e ha preferito usare una "scorciatoia", di cui era perfettamente consapevole.
Quelle 11 mila e passa righe di codice sono il codice dichiarativo delle API di Java usate da Android: non poteva riscriverle da zero se voleva mantenere la compatibilità di buona parte del software scritto in Java con Android.
cdimauro
28-05-2016, 15:53
Certo, ma continuo a non cogliere il nesso. Anche perchè la cosa sembra sfavorire la posizione di google, non favorirla come dovrebbe.
Esattamente: è un'ammissione di colpa. Per questo è incredibile che la giuria abbia dato ragione a Google, rea confessa di aver copiato.
Se fosse così semplice non avremmo avuto una sentenza del genere. Evidentemente sono previsti dei casi d'uso in cui l'utilizzo di codice altrui può essere considerato legittimo, e gli avvocati di google sono riusciti a convincere i giudici di rientrarci.
Vedremo cosa succederà all'appello, perché è la prima volta che leggo di una violazione di copyright fatta passare per "fair use".
Si tratta sempre di utilizzo di proprietà intellettuali altrui.
Ma anche qui esistono dei limiti alla legittimità dei brevetti e possibilità di utilizzo di brevetti ormai considerati d'uso comune o considerati necessari per operare in un dato ambito.
Sì, e nulla da dire su questo, a parte il fatto che il "fair use" implica comunque il pagamento di una somma ritenuta "congrua". Cosa che non mi pare sia avvenuta per la copia di quelle righe di codice.
La materia non è così "bianco o nero", esistono leggi che servono ad evitare che un uso troppo rigorose del sistema di brevetti possa frenare l'evoluzione del settore o la concorrenza.
Criteri simili potrebbero essere stati applicati qui, anche se si parla di API e non di brevetti.
Certamente, ma un conto è copiare le API, e tutt'altra cosa è copiarsi pari-pari il codice di quelle API.
Quelle 11 mila e passa righe di codice sono il codice dichiarativo delle API di Java usate da Android: non poteva riscriverle da zero se voleva mantenere la compatibilità di buona parte del software scritto in Java con Android.
Al contrario: potevano benissimo essere riscritte da zero. Ti prendi la documentazione delle API, apri il tuo editor, e scrivi di tuo pugno i vari file con le definizioni.
the fear90
28-05-2016, 16:10
Chiedo agli esperti di diritto: quante possibilità ci sono, secondo voi, che la sentenza venga ribaltata in appello ?
E' incredibile che un'azienda che è stato certificato aver copiato, e in piena coscienza, più di 11 mila righe di codice coperte da copyright, sia stata dichiarata non colpevole...
Intanto la parte dichiarativa delle API non dovrebbe essere protetta da copyright in quanto puramente funzionale. Ci sono pareri di vari professori esperti in ambito di copyright che dicono che la corte di appello che le ha dichiarate protette abbia fatto una grossa cavolata. Se sei interessato vai a leggerti i commenti su arstechnica che ha seguito la cosa molto meglio che qui su HWU.
Anche perché se le dichiarazioni delle API fossero protette da copyright vorrebbe dire che anche microsoft sarebbe citabile per aver reimplementato le API posix oppure wine per le API di windows e mille altri nel passato.
Certamente, ma un conto è copiare le API, e tutt'altra cosa è copiarsi pari-pari il codice di quelle API.
Al contrario: potevano benissimo essere riscritte da zero. Ti prendi la documentazione delle API, apri il tuo editor, e scrivi di tuo pugno i vari file con le definizioni.
Ma magari hanno anche fatto così ma il risultato sarebbe stato identico. Mica puoi cambiare le dichiarazioni delle chiamate alle API e rimanere compatibilità? Non c'è un modo diverso di scrivere le dichiarazioni. L'implementazione invece è stata riscritta.
cdimauro
29-05-2016, 17:18
Intanto la parte dichiarativa delle API non dovrebbe essere protetta da copyright in quanto puramente funzionale. Ci sono pareri di vari professori esperti in ambito di copyright che dicono che la corte di appello che le ha dichiarate protette abbia fatto una grossa cavolata. Se sei interessato vai a leggerti i commenti su arstechnica che ha seguito la cosa molto meglio che qui su HWU.
Anche perché se le dichiarazioni delle API fossero protette da copyright vorrebbe dire che anche microsoft sarebbe citabile per aver reimplementato le API posix oppure wine per le API di windows e mille altri nel passato.
Il problema non è la reimplementazione di quelle dichiarazioni, ma la spudorata (vedi e-mail di Rubin & co.) COPIA PARI PARI del codice di Java.
Ma magari hanno anche fatto così ma il risultato sarebbe stato identico. Mica puoi cambiare le dichiarazioni delle chiamate alle API e rimanere compatibilità? Non c'è un modo diverso di scrivere le dichiarazioni.
Come fai a dirlo? La dimostrazione è banale: riflettici, e vedrai che c'arrivi anche tu.
L'implementazione invece è stata riscritta.
Ma infatti non ho nulla da dire su questo.
Il problema non è la reimplementazione di quelle dichiarazioni, ma la spudorata (vedi e-mail di Rubin & co.) COPIA PARI PARI del codice di Java.[\QUOTE]
Io non so se hanno effettivamente fatto copia e incolla degli header di Java o se hanno riscritto gli header. In ogni caso non era quello l'oggetto del contendere. Oracle contestava il fatto che Google avesse usato gli header stessi non che li abbia o meno riscritti. Perché se il problema fosse solo che Google ha risparmiato un mese di lavoro copiando invece che riscrivendo (le stesse cose) da zero non puoi chiedere 9 miliardi per una cosa del genere. Oracle aafferma che non è possibile reimplementato un API perché non puoi nemmeno riscrivere gli header
[QUOTE=cdimauro;43721241]
Come fai a dirlo? La dimostrazione è banale: riflettici, e vedrai che c'arrivi anche tu.
Sarò stupido ma io non ci arrivo. Credo esista un solo modo di scrivere un header tipo string.h se vuoi rimanere compatibile con le specifiche
[QUOTE=cdimauro;43721241]
Ma infatti non ho nulla da dire su questo.
Se non hai niente i contrario su questo vuol dire che sei d'accordo con Google o non hai capito il caso in questione.
cdimauro
29-05-2016, 19:38
Io non so se hanno effettivamente fatto copia e incolla degli header di Java o se hanno riscritto gli header.
Se avessi seguito la vicenda, lo sapresti.
In ogni caso non era quello l'oggetto del contendere. Oracle contestava il fatto che Google avesse usato gli header stessi non che li abbia o meno riscritti. Perché se il problema fosse solo che Google ha risparmiato un mese di lavoro copiando invece che riscrivendo (le stesse cose) da zero non puoi chiedere 9 miliardi per una cosa del genere. Oracle aafferma che non è possibile reimplementato un API perché non puoi nemmeno riscrivere gli header
Se ti leggi gli articoli di ArsTechnica, Oracle contesta a Google di aver COPIATO circa 11 mila e 500 righe di codice.
Sarò stupido ma io non ci arrivo. Credo esista un solo modo di scrivere un header tipo string.h se vuoi rimanere compatibile con le specifiche
Puoi disporre le dichiarazioni in ordine diverso, con indentazione diversa, e soprattutto puoi inserire commenti dove vuoi e scriverci quello che vuoi.
Se non hai niente i contrario su questo vuol dire che sei d'accordo con Google o non hai capito il caso in questione.
Se permetti ho capito benissimo. A questo punto ti consiglio di dare un'occhiata ai vari articoli che sono stati via via scritti su ArsTechnica, e che riportano anche le precise parole che sono state dette dagli avvocati e da Larry Page. :rolleyes:
Se avessi seguito la vicenda, lo sapresti.
Se ti leggi gli articoli di ArsTechnica, Oracle contesta a Google di aver COPIATO circa 11 mila e 500 righe di codice.
Puoi disporre le dichiarazioni in ordine diverso, con indentazione diversa, e soprattutto puoi inserire commenti dove vuoi e scriverci quello che vuoi.
Se permetti ho capito benissimo. A questo punto ti consiglio di dare un'occhiata ai vari articoli che sono stati via via scritti su ArsTechnica, e che riportano anche le precise parole che sono state dette dagli avvocati e da Larry Page. :rolleyes:
Io ho seguito la storia su arstechnica. Non ho prestato attenzione al fatto che la copia fosse totale o meno in quanto non è l'oggetto del contendere. Mi sembra strano che tu non capisca le implicazioni che l'azione di Oracle potrebbe avere su tutta l'industria del sw
Comunque dalla tua dichiarazione prendo atto che posso prendere un tuo sw, eliminare i commenti e riordinare le funzioni nel codice e per te va tutto bene in quanto non ho violato il copyright.
cdimauro
29-05-2016, 20:54
Io ho seguito la storia su arstechnica. Non ho prestato attenzione al fatto che la copia fosse totale o meno in quanto non è l'oggetto del contendere. Mi sembra strano che tu non capisca le implicazioni che l'azione di Oracle potrebbe avere su tutta l'industria del sw
Non vedo quali altri implicazioni potrebbe avere, visto che si tratta di una cosa molto comune: violazione del copyright.
Comunque dalla tua dichiarazione prendo atto che posso prendere un tuo sw, eliminare i commenti e riordinare le funzioni nel codice e per te va tutto bene in quanto non ho violato il copyright.
Ti sei dimenticato il contesto: esclusivamente riguardo al codice dichiarativo (parliamo di API).
Se davvero si tratta solo di codice dichiarativo e il problema è non aver levato i commenti o cambiato l'ordine delle funzioni, allora mi pare che Google abbia tutte le ragioni, sarebbe abbastanza ridicolo il contrario.
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?
Non vedo quali altri implicazioni potrebbe avere, visto che si tratta di una cosa molto comune: violazione del copyright.
Ti sei dimenticato il contesto: esclusivamente riguardo al codice dichiarativo (parliamo di API).
Le implicazioni sono che nessuno può più reimplementare una libreria in quanto la parte dichiarativa è sempre uguale dal punto di vista del copyright.
Non ho dimenticato il contesto, ho fatto quello che proponevi di fare tu: non ho toccato minimamente la parte di "codice" e ho cambiato ordine e commenti
Se davvero si tratta solo di codice dichiarativo e il problema è non aver levato i commenti o cambiato l'ordine delle funzioni, allora mi pare che Google abbia tutte le ragioni, sarebbe abbastanza ridicolo il contrario.
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?
Oracle dice che Google ha "sfruttato" Java per costruire Android senza avere una licenza e così facendo ha rubato il mercato di Java causando danni economici.
A supporto della cosa riporta i file dichiarativi di varie classi Java.
Google però ha reimplementato le classi l'unica cosa che ha ripreso sono, ovviamente, le dichiarazioni.
C'è poi da considerare che il CEO di sun, all'epoca indipendente, ha testimoniato a favore di Google dicendo che per loro era tutto regolare
cdimauro
30-05-2016, 06:21
Non è che ha ripreso: quelle dichiarazioni le ha COPIATE dal codice di Java! :read:
Le implicazioni sono che nessuno può più reimplementare una libreria in quanto la parte dichiarativa è sempre uguale dal punto di vista del copyright.
OK, avevo capito diversamente: qui ti riferivi agli effetti della sentenza.
No, non è affatto detto, come puoi leggere sempre dalle pagine di ArsTechnica (non i commenti, ma gli articoli): la sentenza non creerà un precedente.
Ma se così fosse, ci sarebbero ben altre implicazioni per il software open source, visto che si potrebbero copiare gli header o buona parte di essi senza violare licenze virali come la GPL. Esempio: sviluppare driver per Linux, o utilizzare librerie di Linux.
Questo sarebbe una manna dal cielo per le aziende. :D Ma la sentenza non è vincolante, come già detto.
Non ho dimenticato il contesto, ho fatto quello che proponevi di fare tu: non ho toccato minimamente la parte di "codice" e ho cambiato ordine e commenti
Premesso quanto detto sopra (che m'ero scordato prima, ma la tua prima frase di questo commento mi ha fatto riemergere), allora sì: potresti copiare la parte dichiarativa del mio codice, riorganizzandola (il che significa riscriverti anche i commenti: quello non è codice, e la lingua ti permette di descrivere le API in maniera diversa).
Scusatemi, continua a sfuggirmi qualcosa. Davvero la differenza tra violazione di copyright o meno sta nel riorganizzare l'ordine delle dichiarazioni delle API, o riscrivere i commenti? :mbe:
Scusatemi, continua a sfuggirmi qualcosa. Davvero la differenza tra violazione di copyright o meno sta nel riorganizzare l'ordine delle dichiarazioni delle API, o riscrivere i commenti? :mbe:
Secondo cdimauro si
Non è che ha ripreso: quelle dichiarazioni le ha COPIATE dal codice di Java! :read:
Non c'è altro modo di scrivere le dichiarazioni
No, non è affatto detto, come puoi leggere sempre dalle pagine di ArsTechnica (non i commenti, ma gli articoli): la sentenza non creerà un precedente.
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)
Ma se così fosse, ci sarebbero ben altre implicazioni per il software open source, visto che si potrebbero copiare gli header o buona parte di essi senza violare licenze virali come la GPL. Esempio: sviluppare driver per Linux, o utilizzare librerie di Linux.
Questo sarebbe una manna dal cielo per le aziende. :D Ma la sentenza non è vincolante, come già detto.
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.
Premesso quanto detto sopra (che m'ero scordato prima, ma la tua prima frase di questo commento mi ha fatto riemergere), allora sì: potresti copiare la parte dichiarativa del mio codice, riorganizzandola (il che significa riscriverti anche i commenti: quello non è codice, e la lingua ti permette di descrivere le API in maniera diversa).
Pensa a quello che dici e ti renderai conto che non ha un senso:
Se fosse come dici tu mi basterebbe
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*/
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
Se davvero si tratta solo di codice dichiarativo e il problema è non aver levato i commenti o cambiato l'ordine delle funzioni, allora mi pare che Google abbia tutte le ragioni, sarebbe abbastanza ridicolo il contrario.
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 (https://cdn.arstechnica.net/wp-content/uploads/2016/05/googjury-1.pdf):
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.
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. The declaring code allows programmers to understand and make use of the prewritten programs in the API packages to write their own programs.
The declaring code for the packages, classes, and methods reflects the structure, sequence, and organization (or “SSO”) for the Java API packages. The SSO specifies the relationships between and among the elements of the Java API packages and also organizes the classes, methods, and other elements in the package. The term structure, sequence, and organization is a concept used by lawyers and courts in connection with copyright. It is not a term used by computer scientists.
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. The declaring code and the SSO of the 37 Java API packages at issue 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.
a parte il fatto che il "fair use" implica comunque il pagamento di una somma ritenuta "congrua". Cosa che non mi pare sia avvenuta per la copia di quelle righe di codice.
Sempre dallo stesso link: "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 without anyone’s permission and without payment of money to anyone."
CrapaDiLegno
30-05-2016, 14:47
@cdimauro
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.
cdimauro
31-05-2016, 06:27
Scusatemi, continua a sfuggirmi qualcosa. Davvero la differenza tra violazione di copyright o meno sta nel riorganizzare l'ordine delle dichiarazioni delle API, o riscrivere i commenti? :mbe:
Secondo cdimauro si
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 dimostrato in che modo è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale.
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.
Non c'è altro modo di scrivere le dichiarazioni
Falso, e te l'ho dimostrato anche prima.
No, la sentenza di fair use non fa precedente in quanto il fair use deve essere provato ogni volta.
Scusami, e io che ho detto?!?
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)
Ho per caso negato questo?
FedNat, ma i precedenti commenti li hai letti prima di replicare di nuovo, oppure hai dimenticato già tutto? :rolleyes:
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
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.
oppure Microsoft che ha reimplementato le API di android e quindi ha riutilizzato le dichiarazioni.
Magari perché Android è sotto licenza Apache (https://source.android.com/source/licenses.html)? :doh:
Pensa a quello che dici e ti renderai conto che non ha un senso:
Se fosse come dici tu mi basterebbe
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*/
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: "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 without anyone’s permission and without payment of money to anyone."
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à), con quello del copyright, che non prevede alcun pagamento.
@cdimauro
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.
il problema è che sono state usate 11.500 linee di codice Oracle da parte di Google.
Sono state COPIATE.
Anzi, no, non è proprio codice, sono semplicemente dichiarazioni di API.
E' codice. Dichiarativo. Ma sempre codice è.
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.
Vedi sopra: ci sono ENTRAMBE le cose. Aver copiato le righe di codice, e aver copiato le API.
Cioè, 9 miliardi sono stati richiesti per non aver usato uno script che mescolasse i caratteri.
E qui si capisce che non hai capito niente dell'esempio che ho fatto. Per maggiori spiegazioni, vedi sopra la mia risposta a FedNat.
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,
ROTFL: il bue che dice cornuto all'asino. :asd:
In passato sei stato messo in croce per le megaballe che hai scritto. Com'è funzionerebbero le istruzioni FMA? Tanto per riportare l'ultima. :rotfl:
Ovviamente io sono ancora qui che aspetto le spiegazioni per le tue perle si saggezza. :D
è 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.
:blah: :blah: :blah: Parli senza nemmeno aver capito quello di cui si stava discutendo. La prossima volta abbi almeno la cortesia di leggere e assimilare (SE ci riesci) quello che è stato scritto.
Intanto vedi sopra.
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.
Ed ecco la stoccata finale del megatrollone che, dopo aver preso mazzate da tutte le parti (l'ultima volta pure da tuttodigitale :ciapet:), cerca di appagare il proprio ego violato con una stoccata sull'azienda odiata (e per la quale lavoro).
Come se questo potesse sistemare tutte le tecnoballe che ha proferito, e che rimangono a bella posta. :read:
Si vede che ti basta poco per essere contento. Povero illuso.
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 dimostrato in che moda o è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale.
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:
PyAPI_FUNC(PyCodeObject *) PyCode_New(
int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *);
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?
Contento che questo nonsense di Oracle sia stato fermato e che il buonsenso abbia prevalso..
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.
Direi che dipende dalla licenza che ha questo wpython se MIT puo farne quello che vuoi (anche renderlo closed source e venderlo :D) se è GPL tutte le modifiche che farai dovranno essere inviate agli sviluppatori originali, se è closed source come fai ad avere i sorgenti :Prrr: ?
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 :p
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 dimostrato in che modo è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale.
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 § 102 - Subject matter of copyright
§ 102 (b)
In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.
https://www.law.cornell.edu/uscode/text/17/102
(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).
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? :rolleyes:
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
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.
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.
Magari perché Android è sotto licenza Apache (https://source.android.com/source/licenses.html)? :doh:
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
Non sarà chiaro a te, piuttosto: vedi sopra, dove ho già risposto a queste cose.
No, non hai risposto a nulla, riformulo la domanda:
Se io eseguo i seguenti passi:
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 */
Per te ho infranto il copyright o no?
Sono state COPIATE.
E' codice. Dichiarativo. Ma sempre codice è.
Ma se sopra sembri ammettere che il codice dichiarativo si può copiare??
Vedi sopra: ci sono ENTRAMBE le cose. Aver copiato le righe di codice, e aver copiato le API.
Quindi secondo te non è possibile reimplementare una 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.
:blah: :blah: :blah: Parli senza nemmeno aver capito quello di cui si stava discutendo. La prossima volta abbi almeno la cortesia di leggere e assimilare (SE ci riesci) quello che è stato scritto.
Scusa ma a me sembra che sia tu a non capire (o non voler capire) quello che stiamo dicendo
CrapaDiLegno
31-05-2016, 11:08
In passato sei stato messo in croce per le megaballe che hai scritto. Com'è funzionerebbero le istruzioni FMA?
Ahahaha
Ma cosa vuoi mettere in croce. Al massimo avrai al solito vinto la battaglia sulle quisquilie e pinzillacchere che non sono il centro del discorso.
Sei tu che son anni che vai dicendo scemenze una dietro l'altra per poi rimescolare le carte e dire che quello che dicevi non lo hai mai detto, però avevi ragione sulla virgola fuori posto.
14nm sono in perfetta tabella
La fabbrica aprirà
I 4 miliardi di incentivi x 40milioni di soc sono per promuovere il modem
I 7 miliardi x promuovere i soc sono un investimento
Gli Atom non temono i soc arm nemmeno con la stessa nanometria perché il vantaggio di Intel non è il PP
I 10nm sono in perfetta tabella di marcia
Intel non ha problemi con il fatturato record (12.000 licenziamenti annunciati il trimestre successivo)
Continui a dire "ho dimostrato" "ho dimostrato" quando in realtà non hai mai dimostrato nulla. Parli e ti smentisci ogni 2 commenti. Ritorni e cambi il significato di quello che hai scritto nel post precedente, uno due, tre volte, poi quando non si capisce più quello che intendevi parti con un "ho dimostrato"...al massimo finora hai dimostrato di non saper argomentare in maniera chiara e coerente attaccando alle quisquilie una volta messo all'angolo.
Il codice dichiarativo (sempre se di codice si può parlare dato che non è convertito in alcuna istruzione) si può scrivere in un solo modo a meno come detto di mischiare i caratteri, cosa inutile che non cambia la sostanza. SOSTANZA, il quid, l'interesse, l'argomento, non le pinzillacchere. Se vuoi descrivere una interfaccia lo puoi fare in uno e in solo modo.
E il copyright è stato violato, sì, ma in maniera fair appunto perché solo copiando l'interfaccia pubblica si permette la collaborazione tra moduli SW distinti, moduli il cui vero codice è stato scritto da zero da Google.
La sostanza è se l'interfaccia è copiabile o meno, non che la copia è violata tramite C&P mentre diventa buona se riscritta da zero. Rileggiti quello che hai scritto e vedi che sei tu quello che non ha capito nulla di quello che è stato discusso prima, non io.
Ahahaha
Torna a darmi del Troll quando avrai imparato a congiungere più di 2 puntini alla volta.
Messo in croce... Da te e l'altro fanboy poi... Ahahaha...
Mi hai rallegrato la giornata. Grazie. Era piuttosto noiosa fino alla lettura del tuo commento.
Grazie ancora. Ciaoooooo
CrapaDiLegno
31-05-2016, 12:05
Ah, e per le istruzioni FMA, funzionano esattamente come ho descritto. Visto che il succo del discorso era il calcolo dei TFLOPS tra Maxwell e Pascal che qualcuno credeva fosse la stessa architettura perché a parità di frequenza e numero di core faceva gli stessi numeri.
Però anche lì hai trovato modo di darmi torto passando per le solite pinzillacchere sulla differenza tra istruzioni e operazioni che con il discorso non c'entrava nulla ed era comunque ben specificato.
Il succo del discorso, ragazzo mio, il succo del discorso è quello che conta. E tu spesso e volentieri non sei in grado di comprenderlo.
cdimauro
31-05-2016, 18:41
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:
PyAPI_FUNC(PyCodeObject *) PyCode_New(
int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *);
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?
Intanto bisogna vedere che tipo di licenza viene usata. Nel caso di WPython, ho scelto quella BSD, perché è la più libera in assoluto.
Mettendoci nelle condizioni che la licenza non sia così libera, come ad esempio quella GPL, si pone il problema della copia di parti dei sorgenti che ne sono coperti.
In questo caso il precedente commento di litocat ha chiarito che è possibile copiarne una parte se questo ricade nel cosiddetto "fair use", com'è stato giudicato per il caso oggetto della notizia.
Mettendoci, infine, nell'ipotesi che non fosse possibile applicare il fair use, la precedente dichiarazione la potresti riscrivere così, ad esempio:
PyAPI_FUNC(PyCodeObject *)
PyCode_New(
int, int, int, int,
PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *,
int, PyObject *
);
Così abbiamo preso del codice già scritto da qualcuno e lo stiamo riorganizzando in modo da renderlo diverso da quello originale, pur mantenendo esattamente la stessa identica funzionalità.
Così, però, stiamo "barando", visto che abbia preso roba già scritta, perché stiamo sfruttando il frutto del lavoro altrui.
In realtà per riscrivere l'interfaccia di un'API dovremmo fare molto diversamente, e più precisamente dovremmo partire dalla descrizione delle API, aprire il nostro editor/IDE, e iniziare a scrivere da zero il nostro codice.
Esempio pratico, usando la funzione PyCode_New che hai tirato in ballo. Dalla documentazione ufficiale degli oggetti di tipo Python Code (https://docs.python.org/2/c-api/code.html) scopriamo che l'API PyCode_New ha la seguente interfaccia:
PyCodeObject *PyCode_New(int argcount, int nlocals, int stacksize, int flags, PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames, PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name, int firstlineno, PyObject *lnotab);
Dunque possiamo prendere questa definizione e copiarla così com'è nel nostro file include (perché la licenza PSF della documentazione è molto libera. Alternativamente avresti attaccarti alla tastiera e ricopiare carattere dopo carattere quanto vedi su quella paginetta), ma visto che siamo programmatori e non caporali, il lavoro lo facciamo bene, quindi lo risistemiamo così:
PyCodeObject *PyCode_New(
int argcount, int nlocals, int stacksize, int flags,
PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames,
PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name,
int firstlineno, PyObject *lnotab);
Come vedi abbiamo riscritto la STESSA API in maniera direi MOLTO DIVERSA da quella che hai trovato in WPython (che in realtà usa pari pari i sorgenti di CPython, a cui quella dichiarazione appartiene).
Faccio notare che, ad esempio, non abbiamo assolutamente fatto uso della macro PyAPI_FUNC, che invece viene usata in W/CPython: eppure la definizione dell'API funziona esattamente nello stesso modo, perché genera un'identica definizione nella symbol table del compilatore (e "firma" per il linker, ovviamente).
Questo è bene sottolinearlo perché è un esempio di come il codice si possa riadattare in base alle proprie esigenze/visione/capacità.
Spero che l'esempio sia chiaro e mostri la differenza che passa fra la descrizione di un'API e il codice vero e proprio che la definisce in maniera fruibile da un ben preciso linguaggio di programmazione: il C.
Ma non sta scritto da nessuna parte che si debba usare il C, e infatti s.o. come il vecchio MacOS utilizzavano il Pascal per descrivere le API del s.o.. Questo a ulteriore dimostrazione della differenza fra i due concetti.
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,
Le questioni di cui stiamo parlando sono almeno due: il tuo tifo a favore di Google, e contro Oracle, riguarda entrambe o solo una delle due?
che ha acquistato Sun con il piu' che evidente scopo di mettere i bastoni tra le ruote a Google.
Anche se fosse così, sarebbe assolutamente e perfettamente legittimo, visto che i soldi per acquisire Sun li ha sganciati lei e non Google.
Direi che dipende dalla licenza che ha questo wpython se MIT puo farne quello che vuoi (anche renderlo closed source e venderlo :D) se è GPL tutte le modifiche che farai dovranno essere inviate agli sviluppatori originali, se è closed source come fai ad avere i sorgenti :Prrr: ?
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 :p
*
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)
L'avevo già dimostrato a parole, ma si vede che non sei riuscito a coglierlo.
Adesso leggiti la mia replica a GTKM, che dimostra con un esempio reale e inoppugnabile come stanno realmente le cose. :read:
I commenti non c'entrano niente con la questione del copyright
Anche i commenti sono coperti dal copyright, se non lo sai.
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.
Scusami, quand'è che l'avrei detto? Quando ho parlato del fatto che non ci sarebbero conseguenze, era relativo al fatto che quello in oggetto non sarebbe stato un precedente (che, quindi, avrebbe fatto giurisprudenza).
Sei d'accordo con questa conseguenza?
No. Primo perché la conseguenza non dice questo. E secondo perché ho dimostrato oltre ogni ragionevole dubbio che sì, invece, è assolutamente possibile riscrivere completamente gli header (dichiarazioni di API, in generale) senza infrangere il copyright.
Ti sembra normale e giusto?
Vedi sopra: sì, mi sembra normalissimo poter reimplementare da zero qualunque cosa, dichiarazioni incluse.
Pensa un po' alle reimplementazioni del BIOS che hanno fatto nascere tutto il mercato dei PC IBM compatibili sarebbe tutto illegale
Assolutamente d'accordo, infatti:
https://www.youtube.com/watch?v=rdkecMOT1ko
Ma allora ammetti che il codice dichiarativo si può copiare.
No. Primo, nello specifico ho riportato la situazione in ambito Linux / GPL. Tant'è che ho citato anche la posizione di Stallman a riguardo.
Secondo, la MIA posizione è che il codice, TUTTO, non si dovrebbe copiare.
Terzo, litocat ha riportato la situazione reale: la copia è fattibile in caso di "fair use".
Se sei veramente convinto che tutto questo caso sia nato perché google ha copiato i commenti sei molto fuori strada:
Chi ha parlato dei commenti? Ma lo vedi che hai problemi a ricordare quello di cui è stato discusso in questo thread? Vatti a rivedere quand'è che sono stati citati, e perché.
Per il resto, io ho parlato della copia di 11500 righe di codice. Dunque tutto quello che c'era messo, commenti inclusi SE ci fossero stati.
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.
Premesso che i commenti sono coperti dal copyright, Oracle ha citato Google per l'uso delle API (che è il nodo principale) e per la copia di quelle righe di codice (che si è verificata senza dubbio alcuno).
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
Mettiamoci anche AROS che ha reimplementato completamente le API del s.o. di Amiga.
Tutto legale, per quanto detto prima.
No, non hai risposto a nulla, riformulo la domanda:
Se io eseguo i seguenti passi:
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 */
Per te ho infranto il copyright o no?
PER ME, sì, visto che hai COPIATO quel file.
Come già detto, dovresti rimboccarti le maniche e riscrivere completamente da zero tutto, partendo dalla documentazione (che va CONSULTATA e NON saccheggiata, sia chiaro).
Questa è la MIA, personalissima, posizione.
Ma se sopra sembri ammettere che il codice dichiarativo si può copiare??
L'ho chiarito sopra.
Quindi secondo te non è possibile reimplementare una API
Assolutamente sì: è possibilissimo. Vedi la mia replica a GTKM.
Scusa ma a me sembra che sia tu a non capire (o non voler capire) quello che stiamo dicendo
Se dicessi che a me pare che sia esattamente l'opposto non cambierebbe nulla.
Ma questo mio commento dovrebbe aver chiarito una volta per tutte le questioni.
cdimauro
31-05-2016, 19:23
Ahahaha
Ma cosa vuoi mettere in croce. Al massimo avrai al solito vinto la battaglia sulle quisquilie e pinzillacchere che non sono il centro del discorso.
Sei tu che son anni che vai dicendo scemenze una dietro l'altra per poi rimescolare le carte e dire che quello che dicevi non lo hai mai detto, però avevi ragione sulla virgola fuori posto.
Così parlò chi si diede sistematicamente alla fuga, dopo aver preso sonore mazzate.
Puoi minimizzare e cercare di mistificare quanto vuoi: i commenti sono lì a dimostrazione di come siano andate realmente le cose.
14nm sono in perfetta tabella
La fabbrica aprirà
I 4 miliardi di incentivi x 40milioni di soc sono per promuovere il modem
I 7 miliardi x promuovere i soc sono un investimento
Gli Atom non temono i soc arm nemmeno con la stessa nanometria perché il vantaggio di Intel non è il PP
I 10nm sono in perfetta tabella di marcia
Intel non ha problemi con il fatturato record (12.000 licenziamenti annunciati il trimestre successivo)
Visto che ripeti esattamente le stesse cose come un disco rotto, riporto il link alla mia ultima risposta in merito (http://hwupgrade.it/forum/showpost.php?p=43685659&postcount=25).
Non per te, visto che non c'è speranza di avere una risposta dopo che ho demolito tutte le balle che avevi scritto, ma per gli altri utenti, che potranno verificare come stiano realmente le cose.
Continui a dire "ho dimostrato" "ho dimostrato" quando in realtà non hai mai dimostrato nulla. Parli e ti smentisci ogni 2 commenti. Ritorni e cambi il significato di quello che hai scritto nel post precedente, uno due, tre volte, poi quando non si capisce più quello che intendevi parti con un "ho dimostrato"...al massimo finora hai dimostrato di non saper argomentare in maniera chiara e coerente attaccando alle quisquilie una volta messo all'angolo.
Quisquilie? Ecco da qui (http://hwupgrade.it/forum/showpost.php?p=43390611&postcount=27) una "quisquilia":
"TU: Mamma mia, ha quadruplicato le prestazioni x watt!! A parte che è vero solo per i calcoli floating point
IO: Falso: anche per gli interi. AVX-2, infatti, colma le lacune di AVX proprio sugli interi!!! AVX aveva introdotto il supporto sostanzialmente per i soli floating point.
Hai mai aperto un manuale delle architetture x86? Mi pare proprio di no."
Ed è soltanto una delle tante che hai proferito: basti leggere il commento per trovare altre chicche di primordine, come il famigerato "riordino" dei registri (e delle istruzioni obsolete) di x64, l'assenza di modifiche a questa nuova ISA a parte i puntatori a 64 bit, nessuna modifica a compilatori e tool di sviluppo per supportarla, ecc. ecc. ecc. :asd:
Certo, per uno che ne capisce di architetture degli elaboratori quanto io di bricolage capisco benissimo che tutto ciò sia classificabile come "quisquilie", ma quanto meno è servito a strappare delle grasse risate a chi, invece, ha conoscenze in materia. :rotfl:
Il codice dichiarativo (sempre se di codice si può parlare dato che non è convertito in alcuna istruzione)
Cos'è, una nuova definizione: la sola parte del sorgente che si può chiamare codice è quella che genera almeno un'istruzione? :rotfl:
si può scrivere in un solo modo a meno come detto di mischiare i caratteri, cosa inutile che non cambia la sostanza. SOSTANZA, il quid, l'interesse, l'argomento, non le pinzillacchere. Se vuoi descrivere una interfaccia lo puoi fare in uno e in solo modo.
Su questo ho già ampiamente risposto prima, e sono tutt'altro che quisquilie: il codice che è venuto fuori dalla descrizione di quell'API di CPython è ben diverso, anche se produce esattamente lo stesso effetto a livello di definizione dell'API.
E il copyright è stato violato, sì, ma in maniera fair appunto perché solo copiando l'interfaccia pubblica si permette la collaborazione tra moduli SW distinti, moduli il cui vero codice è stato scritto da zero da Google.
Il codice dichiarativo dell'interfaccia pubblica si può benissimo evitare di copiarlo, riscrivendolo da zero, come ho dimostrato.
Google ha preferito una comoda scorciatoia, invece di scriversi anche quella parte di codice.
La sostanza è se l'interfaccia è copiabile o meno, non che la copia è violata tramite C&P mentre diventa buona se riscritta da zero.
A quanto pare il giudice ha deciso per il fair use, anche a fronte di una palese copia di quelle righe di codice.
Rileggiti quello che hai scritto e vedi che sei tu quello che non ha capito nulla di quello che è stato discusso prima, non io.
Mi era, ed è tutto perfettamente chiaro. I miei commenti sono lì a dimostrarlo.
Ahahaha
Torna a darmi del Troll quando avrai imparato a congiungere più di 2 puntini alla volta.
Messo in croce... Da te e l'altro fanboy poi... Ahahaha...
Mi hai rallegrato la giornata. Grazie. Era piuttosto noiosa fino alla lettura del tuo commento.
Grazie ancora. Ciaoooooo
Adesso te ne ho rallegrata un'altra. Ma forse sono gli altri utenti ad aver apprezzato di più. :asd:
Ah, e per le istruzioni FMA, funzionano esattamente come ho descritto.
Falso, visto che avevi scritto questo (http://hwupgrade.it/forum/showpost.php?p=43660134&postcount=175):
"TU: qui hai voluto fare il precisino facendo le pulci tra istruzione e operazione, senza ovviamente riportare quale sia la differenza dato che in questo caso non esiste.
IO: Sei proprio "sfortunato": proprio le FMA sono istruzioni che NON sono assolutamente equivalenti a un paio di altre, visto che hanno delle caratteristiche molto particolari."
:read:
Visto che il succo del discorso era il calcolo dei TFLOPS tra Maxwell e Pascal che qualcuno credeva fosse la stessa architettura perché a parità di frequenza e numero di core faceva gli stessi numeri.
Ancora dal link di cui sopra:
"TU: Efficienza ho specificato che è il rapporto tra il valore teorico massimo di istruzioni eseguibile e quelle che effettivamente vengono eseguite (le FMA),
IO: Che non vuol dire proprio niente, perché ho già scritto che le FMA NON sono le uniche istruzioni che vengono eseguite.
Ma poi hai dei dati ufficiali in proposito? Portali pure."
:read:
Però anche lì hai trovato modo di darmi torto passando per le solite pinzillacchere sulla differenza tra istruzioni e operazioni che con il discorso non c'entrava nulla ed era comunque ben specificato.
Per tua comodità ho riportato ambo le parti, e il link all'intera mia replica, cosicché chiunque potrà vedere se si tratti di "pinzillacchere" o di tecnostrafalcioni di chi non ha la minima idea di cosa sta parlando.
Il succo del discorso, ragazzo mio, il succo del discorso è quello che conta. E tu spesso e volentieri non sei in grado di comprenderlo.
Ci vuole una bella faccia tosta, da uno che per sua stessa ammissione scrisse che non sapeva nemmeno la differenza fra core, ALU, unità d'esecuzione. :asd: :rotfl:
cdimauro
31-05-2016, 20:55
Il riassunto è che sei libero di riscrivere da zero un'API senza andare minimamente a copiare del codice già esistente (e coperto da copyright).
Mentre Google ha preferito la scorciatoia (copiare 11500 righe di codice di Java, aventi copyright di Sun/Oracle).
Intanto bisogna vedere che tipo di licenza viene usata. Nel caso di WPython, ho scelto quella BSD, perché è la più libera in assoluto.
Mettendoci nelle condizioni che la licenza non sia così libera, come ad esempio quella GPL, si pone il problema della copia di parti dei sorgenti che ne sono coperti.
In questo caso il precedente commento di litocat ha chiarito che è possibile copiarne una parte se questo ricade nel cosiddetto "fair use", com'è stato giudicato per il caso oggetto della notizia.
Mettendoci, infine, nell'ipotesi che non fosse possibile applicare il fair use, la precedente dichiarazione la potresti riscrivere così, ad esempio:
PyAPI_FUNC(PyCodeObject *)
PyCode_New(
int, int, int, int,
PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *,
int, PyObject *
);
Così abbiamo preso del codice già scritto da qualcuno e lo stiamo riorganizzando in modo da renderlo diverso da quello originale, pur mantenendo esattamente la stessa identica funzionalità.
Così, però, stiamo "barando", visto che abbia preso roba già scritta, perché stiamo sfruttando il frutto del lavoro altrui.
In realtà per riscrivere l'interfaccia di un'API dovremmo fare molto diversamente, e più precisamente dovremmo partire dalla descrizione delle API, aprire il nostro editor/IDE, e iniziare a scrivere da zero il nostro codice.
Esempio pratico, usando la funzione PyCode_New che hai tirato in ballo. Dalla documentazione ufficiale degli oggetti di tipo Python Code (https://docs.python.org/2/c-api/code.html) scopriamo che l'API PyCode_New ha la seguente interfaccia:
PyCodeObject *PyCode_New(int argcount, int nlocals, int stacksize, int flags, PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames, PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name, int firstlineno, PyObject *lnotab);
Dunque possiamo prendere questa definizione e copiarla così com'è nel nostro file include (perché la licenza PSF della documentazione è molto libera. Alternativamente avresti attaccarti alla tastiera e ricopiare carattere dopo carattere quanto vedi su quella paginetta), ma visto che siamo programmatori e non caporali, il lavoro lo facciamo bene, quindi lo risistemiamo così:
PyCodeObject *PyCode_New(
int argcount, int nlocals, int stacksize, int flags,
PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames,
PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name,
int firstlineno, PyObject *lnotab);
Come vedi abbiamo riscritto la STESSA API in maniera direi MOLTO DIVERSA da quella che hai trovato in WPython (che in realtà usa pari pari i sorgenti di CPython, a cui quella dichiarazione appartiene).
Faccio notare che, ad esempio, non abbiamo assolutamente fatto uso della macro PyAPI_FUNC, che invece viene usata in W/CPython: eppure la definizione dell'API funziona esattamente nello stesso modo, perché genera un'identica definizione nella symbol table del compilatore (e "firma" per il linker, ovviamente).
Questo è bene sottolinearlo perché è un esempio di come il codice si possa riadattare in base alle proprie esigenze/visione/capacità.
Spero che l'esempio sia chiaro e mostri la differenza che passa fra la descrizione di un'API e il codice vero e proprio che la definisce in maniera fruibile da un ben preciso linguaggio di programmazione: il C.
Mi spiace ma la tua dimostrazione è sbagliata.
Le dichiarazioni che tu hai sopra riscritto e dichiarato come MOLTO DIVERSE sono invece ASSOLUTAMENTE IDENTICHE, non crederai che basti reindentare il codice per evitare di violare il copyright.
Non puoi prendere un libro, aggiungere qualche ritorno a capo, cambiare la formattazione e magari il font e dire che non è una violazione del copyright.
Riguardo poi ai grassetti aggiunti da me, credi che tra fare copia incolla oppure ribattere tutto copiando a vista o anche reimplementare da zero (dato che il risultato finale è lo stesso) cambi qualcosa dal punto di vista delle violazioni del copyright?
Se non ne sei convinto vai a chiedere un parere all'ufficio legale della tua azienda e senti cosa ti rispondono.
Un altro modo per mostrare che la tua dimostrazione non funziona e quella di rianalizzare il caso in questione:
Se fosse vero quello che tu affermi sopra e cioè che basta riscrivere le dichiarazioni magari indentandole in maniera diversa per essere a posto allora vuol dire che Google non ha commesso una cosa così grave. Google poteva riutilizzare la API di Java, ha solo preso una scorciatoia e risparmiato un mese di lavoro, non avrebbe dovuto pagare niente a Sun/Oracle (ai tempi c'era Sun). Sotto le ipotesi suddette avrebbe commesso un illecito ed andrebbe punito, sicuramente dovrebbe sanare la cosa e pagare una multa, ma non avrebbe creato nessun danno rilevante a Java e a Sun/Oracle. A maggior ragione, una volta scoperto, Google avrebbe ammesso la colpa e sanato la situazione, perché il lavoro è poca cosa riducendo così la multa.
Invece Oracle ha chiesto 9 MILIARDI DI DOLLARI di danni, una simile cifra è giustificabile solo se Google avesse fatto qualcosa che non avrebbe potuto assolutamente fare e non sanabile se non con il pagamento di una percentuale sugli introiti/fatturato.
Anche per questo motivo la tua interpretazione del copyright non ha senso
Il problema principale, come ha fatto notare anche CrapaDiLegno, è che il codice dichiarativo non dovrebbe essere protetto da copyright per quanto avevo già riportato nel mio post precedente. Riporto nuovamente
U.S. Code § 102 - Subject matter of copyright
§ 102 (b)
In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.
https://www.law.cornell.edu/uscode/text/17/102
(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).
Purtroppo la sentenza del CAFC (contestata da diversi esperti del settore) ha detto che la API di Java era soggetta a copyright.
Dato che esiste un solo modo per esprimere le dichiarazioni di una API (il metodo da te sopra usato per la dimostrazione non cambia la questione come già detto) la conseguenza è che: Non puoi reimplementare una libreria senza violare il copyright.
Quindi tutti gli esempi di reimplementazioni che ti ho fatto prima e che dicevi fossero corretti diverrebbero illegali. in certi casi ci sono state delle cause che sono state vinte dai reimplementatori in quanto le interfacce non erano soggette a copyright
Spero di essere stato chiaro
cdimauro
31-05-2016, 22:21
Mi spiace ma la tua dimostrazione è sbagliata.
Le dichiarazioni che tu hai sopra riscritto e dichiarato come MOLTO DIVERSE sono invece ASSOLUTAMENTE IDENTICHE, non crederai che basti reindentare il codice per evitare di violare il copyright.
Non puoi prendere un libro, aggiungere qualche ritorno a capo, cambiare la formattazione e magari il font e dire che non è una violazione del copyright.
Infatti non è quello che ho fatto, visto che la dichiarazione dell'API l'ho riscritta.
Ecco l'originale, contenuta in W/CPython, riportata da GTKM:
PyAPI_FUNC(PyCodeObject *) PyCode_New(
int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *)
Ed ecco la versione riscritta da zero:
PyCodeObject *PyCode_New(
int argcount, int nlocals, int stacksize, int flags,
PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames,
PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name,
int firstlineno, PyObject *lnotab);
Direi che MOLTO DIVERSE ci sta benissimo, com'è anche evidente che sono tutt'altro che ASSOLUTAMENTE IDENTICHE.
Riguardo poi ai grassetti aggiunti da me, credi che tra fare copia incolla oppure ribattere tutto copiando a vista o anche reimplementare da zero (dato che il risultato finale è lo stesso) cambi qualcosa dal punto di vista delle violazioni del copyright?
Se non ne sei convinto vai a chiedere un parere all'ufficio legale della tua azienda e senti cosa ti rispondono.
Cosa non ti è chiaro di questo:
"Secondo, la MIA posizione è che il codice, TUTTO, non si dovrebbe copiare.
Terzo, litocat ha riportato la situazione reale: la copia è fattibile in caso di "fair use"."
?
Un altro modo per mostrare che la tua dimostrazione non funziona e quella di rianalizzare il caso in questione:
Se fosse vero quello che tu affermi sopra e cioè che basta riscrivere le dichiarazioni magari indentandole in maniera diversa per essere a posto allora vuol dire che Google non ha commesso una cosa così grave.
Cosa non ti è chiaro di questo:
"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 dimostrato in che modo è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale."
più il terzo punto precedentemente mensionato?
Google poteva riutilizzare la API di Java, ha solo preso una scorciatoia e risparmiato un mese di lavoro, non avrebbe dovuto pagare niente a Sun/Oracle (ai tempi c'era Sun). Sotto le ipotesi suddette avrebbe commesso un illecito ed andrebbe punito, sicuramente dovrebbe sanare la cosa e pagare una multa, ma non avrebbe creato nessun danno rilevante a Java e a Sun/Oracle. A maggior ragione, una volta scoperto, Google avrebbe ammesso la colpa e sanato la situazione, perché il lavoro è poca cosa riducendo così la multa.
Cosa che non è successo, perché la giuria ha deciso diversamente.
Invece Oracle ha chiesto 9 MILIARDI DI DOLLARI di danni, una simile cifra è giustificabile solo se Google avesse fatto qualcosa che non avrebbe potuto assolutamente fare e non sanabile se non con il pagamento di una percentuale sugli introiti/fatturato.
Concordo che la cifra sia spaventosamente elevata, ma il nodo principale di Oracle riguarda il copyright sulle API. Senza le API non c'è Java, e senza Java non ci sarebbe stato Android, per lo meno per come lo conosciamo, e magari non avrebbe avuto queste quote di mercato.
Sono whatif, ma l'adozione di Java, che è un linguaggio molto diffuso a tutti i livelli, è stato molto importante per la diffusione di Android, come prima lo era per i telefonini con JavaME.
Anche per questo motivo la tua interpretazione del copyright non ha senso
La mia opinione sul copyright ha perfettamente senso, e riguarda la tutela del lavoro altrui.
Ma, come già detto, è la MIA posizione (vedi secondo punto).
Il problema principale, come ha fatto notare anche CrapaDiLegno, è che il codice dichiarativo non dovrebbe essere protetto da copyright per quanto avevo già riportato nel mio post precedente. Riporto nuovamente
L'avevo già scritto e lo riporto nuovamente:
"Terzo, litocat ha riportato la situazione reale: la copia è fattibile in caso di "fair use"."
Dunque non c'era bisogno che tu lo riportassi, visto che litocat aveva già mostrato la legislazione in materia.
Che poi io, come già detto, non concordi perché ho un'opinione diversa, è legittimo o no? Vorrei capire se è lecito pensarla diversamente, giusto per essere chiari.
Purtroppo la sentenza del CAFC (contestata da diversi esperti del settore) ha detto che la API di Java era soggetta a copyright.
Su questo ho sempre avuto un'opinione non netta, e non ho preso una decisione.
Da una parte sono per la protezione delle API poiché il frutto del lavoro di qualcuno.
Dall'altra le API sono delle definizioni che servono per sviluppare altre applicazioni, su di esse basate.
E' una questione che mi trascino da tempo.
Dato che esiste un solo modo per esprimere le dichiarazioni di una API (il metodo da te sopra usato per la dimostrazione non cambia la questione come già detto) la conseguenza è che: Non puoi reimplementare una libreria senza violare il copyright.
Vedi sopra l'API di W/CPython: sì, è possibile reimplementare una libreria senza violare il copyright.
Quindi tutti gli esempi di reimplementazioni che ti ho fatto prima e che dicevi fossero corretti diverrebbero illegali.
Sì, ne sono cosciente.
in certi casi ci sono state delle cause che sono state vinte dai reimplementatori in quanto le interfacce non erano soggette a copyright
Spero di essere stato chiaro
Spero di esserlo stato anch'io.
Riguardo alla questione, c'è un altro pezzo apparso su ArsTechnica che tratta quanto avevo ipotizzato qualche giorno fa:
Op-ed: Oracle attorney says Google’s court victory might kill the GPL (http://arstechnica.com/tech-policy/2016/05/op-ed-oracle-attorney-says-googles-court-victory-might-kill-the-gpl/)
Secondo me, comunque, non è una questione dai confini netti.
Da un lato, ci sarebbe da dire che le API non cascano dal cielo, e chiunque abbia mai sviluppato una libreria lo sa. Quindi a primo impatto vorrei che il mio lavoro fosse tutelato.
Dall'altro, visto che si parla di dichiarazioni di interfacce, forse non ha molto senso pretendere che ognuno se le riscriva partendo dalla documentazione, visto che, gira e rigira, comunque si dovrà arrivare allo stesso codice. Quindi si potrebbe pure permettere di copiare i file con le dichiarazioni.
Non riesco a capire come "schierarmi".
cdimauro
31-05-2016, 22:39
Secondo me, comunque, non è una questione dai confini netti.
Da un lato, ci sarebbe da dire che le API non cascano dal cielo, e chiunque abbia mai sviluppato una libreria lo sa. Quindi a primo impatto vorrei che il mio lavoro fosse tutelato.
Dall'altro, visto che si parla di dichiarazioni di interfacce, forse non ha molto senso pretendere che ognuno se le riscriva partendo dalla documentazione, visto che, gira e rigira, comunque si dovrà arrivare allo stesso codice. Quindi si potrebbe pure permettere di copiare i file con le dichiarazioni.
Non riesco a capire come "schierarmi".
Siamo in due... :stordita:
Comunque, questo è ciò che pensava la FSF a riguardo: https://www.fsf.org/blogs/licensing/fsf-statement-on-court-of-appeals-ruling-in-oracle-v-google
cdimauro
31-05-2016, 23:07
Com'era prevedibile, s'è schierata per la seconda possibilità.
Secondo me, comunque, non è una questione dai confini netti.
Da un lato, ci sarebbe da dire che le API non cascano dal cielo, e chiunque abbia mai sviluppato una libreria lo sa. Quindi a primo impatto vorrei che il mio lavoro fosse tutelato.
Dall'altro, visto che si parla di dichiarazioni di interfacce, forse non ha molto senso pretendere che ognuno se le riscriva partendo dalla documentazione, visto che, gira e rigira, comunque si dovrà arrivare allo stesso codice. Quindi si potrebbe pure permettere di copiare i file con le dichiarazioni.
Non riesco a capire come "schierarmi".
La legge tutela già entrambi i punti di vista ammettendo il copyright su API e codice dichiarativo ma prevedendo l'istituto del fair use. Google ha copiato lo stretto indispensabile a mantenere la compatibilità con il software Java (API e codice dichiarativo, quest'ultimo può cambiare solo con modifiche di forma e non di sostanza) e reimplementato tutto il resto, ha aggiunto milioni di righe di codice come contributo originale, ha fornito alla comunità il risultato sotto una licenza open, ha avuto il benestare di Sun che allora era la proprietaria di Java... comprensibilmente la giuria ha stabilito che si trattasse di fair use e sono d'accordo con lei.
Infatti non è quello che ho fatto, visto che la dichiarazione dell'API l'ho riscritta.
Ecco l'originale, contenuta in W/CPython, riportata da GTKM:
PyAPI_FUNC(PyCodeObject *) PyCode_New(
int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *,
PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *)
Ed ecco la versione riscritta da zero:
PyCodeObject *PyCode_New(
int argcount, int nlocals, int stacksize, int flags,
PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames,
PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name,
int firstlineno, PyObject *lnotab);
Direi che MOLTO DIVERSE ci sta benissimo, com'è anche evidente che sono tutt'altro che ASSOLUTAMENTE IDENTICHE.
Cosa non ti è chiaro di questo:
"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 dimostrato in che modo è possibile tirare fuori del codice dichiarativo DIVERSO partendo da quello originale."
Scusa ma sembra di parlare ad un muro: Il copyright protegge il lavoro creativo la tua riscrittura della dichiarazione non ha niente di creativo dal punto di vista del SW, hai solo reindentato e messo dei nomi ai parametri. Le due dichiarazioni sono funzionalmente identiche e quindi la seconda è una violazione del copyright.
E' per questo che dico che la tua opinione sul copyright non ha senso.
Litocat non ha postato la legislazione in materia ma solo le istruzioni del giudice alla giuria. Lo so benissimo che una volta stabilito che qualcosa è soggetto a copyright l'unico modo per poterlo riutilizzare è utilizzare il fair use. Quello che ho postato io è l'articolo del Copyright Act che stabilisce cosa non è soggetto a copyright e le API sono sempre ricadute sotto uesto articolo in quanto "method of operation"
Sinceramente non ho capito la tua posizione:
Secondo te dovrebbe essere possibile reimplementare liberamente una libreria o no?
Perché è questa la conseguenza finale di questo caso. Per adesso Google è riuscito ad affermare il fair use, domani qualcuno che volesse scrivere un emulatore per la prossima Playstation 5 potrebbe dover affrontare una causa e potrebbe non vincerla.
Eppure queste cose sono state fatte fin dagli albori dell'informatica (e l'articolo 102b del copyright act serve anche a permetter questo)
Riguardo alla questione, c'è un altro pezzo apparso su ArsTechnica che tratta quanto avevo ipotizzato qualche giorno fa:
Op-ed: Oracle attorney says Google’s court victory might kill the GPL (http://arstechnica.com/tech-policy/2016/05/op-ed-oracle-attorney-says-googles-court-victory-might-kill-the-gpl/)
Premesso che quella è l'opinione di un avvocato di Oracle, Lei va oltre a quanto dicevi te: secondo te come conseguenza di questa sentenza si sarebbero potuti copiare gli header dei software GPL, lei dice che si può copiare qualunque parte di un sw GPL.
La mia risposta è che
Sta facendo FUD
Secondo me nessuno ti citerà mai in tribunale se copi gli header di un sw GPL. Se invece copi il codice implementativo ti ci voglio a farti riconoscere il fair use
Per favore, se risponderai a questo post cerca di rispondere in maniera più organica evitando di rispondere ad ogni singola frase. Diventa pesante anche per gli altri seguire la discussione.
Secondo me, comunque, non è una questione dai confini netti.
Da un lato, ci sarebbe da dire che le API non cascano dal cielo, e chiunque abbia mai sviluppato una libreria lo sa. Quindi a primo impatto vorrei che il mio lavoro fosse tutelato.
Dall'altro, visto che si parla di dichiarazioni di interfacce, forse non ha molto senso pretendere che ognuno se le riscriva partendo dalla documentazione, visto che, gira e rigira, comunque si dovrà arrivare allo stesso codice. Quindi si potrebbe pure permettere di copiare i file con le dichiarazioni.
Non riesco a capire come "schierarmi".
Il tuo lavoro è tutelato nella parte implementativa. Estendere la tutela alla parte dichiarativa sarebbe un vincolo troppo forte che bloccherebbe l'interoperabilità
La legge tutela già entrambi i punti di vista ammettendo il copyright su API e codice dichiarativo ma prevedendo l'istituto del fair use. Google ha copiato lo stretto indispensabile a mantenere la compatibilità con il software Java (API e codice dichiarativo, quest'ultimo può cambiare solo con modifiche di forma e non di sostanza) e reimplementato tutto il resto, ha aggiunto milioni di righe di codice come contributo originale, ha fornito alla comunità il risultato sotto una licenza open, ha avuto il benestare di Sun che allora era la proprietaria di Java... comprensibilmente la giuria ha stabilito che si trattasse di fair use e sono d'accordo con lei.
La giuria ha agito bene date le premesse iniziali. Non concordo sulla prima parte in quanto secondo me (ed altri più esperti di me) la legge americana non ammette il copyright su API, almeno non sulla parte dichiarativa. (articolo 102b del Copyright Act)
La corte di appello ha combinato un casino
Ma se la legge americana è già chiara a riguardo (appena ho tempo leggo il Copyright Act), perché i tribunali, in questo caso, hanno combinato tanto casino?
Le 11500 righe sono interamente di codice dichiarativo, quindi era pure una causa facile, a 'sto punto. :confused:
Ma se la legge americana è già chiara a riguardo (appena ho tempo leggo il Copyright Act), perché i tribunali, in questo caso, hanno combinato tanto casino?
Le 11500 righe sono interamente di codice dichiarativo, quindi era pure una causa facile, a 'sto punto. :confused:
La legge è chiara ed i precedenti pure. Non si sa bene come la corte di appello ha dichiaratoche le API di Java erano soggette a copyright.
Come ho già detto la decisione ha sorpreso tutti ed è stata contestata degli esperti.
La giuria ha agito bene date le premesse iniziali. Non concordo sulla prima parte in quanto secondo me (ed altri più esperti di me) la legge americana non ammette il copyright su API, almeno non sulla parte dichiarativa. (articolo 102b del Copyright Act)
La corte di appello ha combinato un casino
Non è solo la corte di appello, dopo la sentenza di appello google ha fatto ricorso alla corte suprema sostenendo che la corte d'appello avesse sbagliato a ritenere che le api fossero protette da copyright. E la corte suprema ha rigettato il ricorso (http://www.supremecourt.gov/orders/courtorders/062915zor_4g25.pdf).
Non è solo la corte di appello, dopo la sentenza di appello google ha fatto ricorso alla corte suprema sostenendo che la corte d'appello avesse sbagliato a ritenere che le api fossero protette da copyright. E la corte suprema ha rigettato il ricorso (http://www.supremecourt.gov/orders/courtorders/062915zor_4g25.pdf).
La corte suprema riceve circa 7000 richiesta l'anno e ne valuta circa 100 tra queste 7000. Il rifiuto di valutare il caso in questione non comporta nessun giudizio di merito sul caso da parte della corte suprema
cdimauro
01-06-2016, 18:56
Scusa ma sembra di parlare ad un muro: Il copyright protegge il lavoro creativo la tua riscrittura della dichiarazione non ha niente di creativo dal punto di vista del SW, hai solo reindentato e messo dei nomi ai parametri. Le due dichiarazioni sono funzionalmente identiche e quindi la seconda è una violazione del copyright.
E' per questo che dico che la tua opinione sul copyright non ha senso.
Intanto aver messo dei nomi è un enorme cambiamento, se permetti. O a te piace avere a che fare con parametri di cui conosci soltanto il tipo? Sì, puoi lavorarci, ma è LEGGERMENTE più complicato, non credi? E vedo che continui a ignorare anche l'assenza di macro nella seconda dichiarazione.
Comunque se per te sono la stessa cosa, è inutile continuare questa parte della discussione.
Riguardo al copyright, la violazione c'è se COPI (copy-right) il lavoro che è già stato fatto da qualcuno per scrivere quella roba, e che è coperto dal diritto d'autore, per l'appunto. Qui NON mi sto riferendo alle API di per sé, ma ai byte grezzi dei file. Ovviamente sempre al netto del fair use.
Litocat non ha postato la legislazione in materia ma solo le istruzioni del giudice alla giuria. Lo so benissimo che una volta stabilito che qualcosa è soggetto a copyright l'unico modo per poterlo riutilizzare è utilizzare il fair use. Quello che ho postato io è l'articolo del Copyright Act che stabilisce cosa non è soggetto a copyright e le API sono sempre ricadute sotto uesto articolo in quanto "method of operation"
Sinceramente non ho capito la tua posizione:
Secondo te dovrebbe essere possibile reimplementare liberamente una libreria o no?
Perché è questa la conseguenza finale di questo caso. Per adesso Google è riuscito ad affermare il fair use, domani qualcuno che volesse scrivere un emulatore per la prossima Playstation 5 potrebbe dover affrontare una causa e potrebbe non vincerla.
Eppure queste cose sono state fatte fin dagli albori dell'informatica (e l'articolo 102b del copyright act serve anche a permetter questo)
La mia posizione (quindi come vorrei che fosse la normativa sul copyright) è che il fair use per il copyright non dovrebbe essere consentito, poiché frutto del lavoro dell'autore.
Non mi sto riferendo alle API qui, ma al codice grezzo (incluso quello dichiarativo, visto che è sempre codice).
In queste condizioni in ogni caso sarebbe possibile reimplementare (da zero) le API (sia nella parte dichiarativa, sia ovviamente in quella implementativa), e dunque potresti sia riscrivere librerie sia scrivere emulatori per l'architettura che ti piace.
Questo sempre che le API non siano soggette a copyright, come ha riportato litocat.
Personalmente, e come già detto, su questa precisa questione non ho ancora preso posizione.
Premesso che quella è l'opinione di un avvocato di Oracle, Lei va oltre a quanto dicevi te: secondo te come conseguenza di questa sentenza si sarebbero potuti copiare gli header dei software GPL, lei dice che si può copiare qualunque parte di un sw GPL.
La mia risposta è che
Sta facendo FUD
Secondo me nessuno ti citerà mai in tribunale se copi gli header di un sw GPL. Se invece copi il codice implementativo ti ci voglio a farti riconoscere il fair use
Ma in linea teorica è possibile, perché il fair use non fa distinzione fra codice dichiarativo e implementativo: parla solo di codice.
Comunque, sì: la tizia è andata ben oltre rispetto a quanto avevo ipotizzato. Ho riportato il suo pezzo soltanto perché sostanzialmente copriva (largamente) la mia idea, ed è su un sito abbastanza autorevole (che peraltro ha seguito scrupolosamente la vicenda).
Per favore, se risponderai a questo post cerca di rispondere in maniera più organica evitando di rispondere ad ogni singola frase. Diventa pesante anche per gli altri seguire la discussione.
Ho diviso in 3 macro-blocchi: spero che sia più chiaro così.
Il tuo lavoro è tutelato nella parte implementativa. Estendere la tutela alla parte dichiarativa sarebbe un vincolo troppo forte che bloccherebbe l'interoperabilità
Dipenderebbe tutto dalla licenza d'uso concessa dal proprietario. Quindi l'interoperabilità non verrebbe automaticamente e indefinitamente bloccata.
Non è solo la corte di appello, dopo la sentenza di appello google ha fatto ricorso alla corte suprema sostenendo che la corte d'appello avesse sbagliato a ritenere che le api fossero protette da copyright. E la corte suprema ha rigettato il ricorso (http://www.supremecourt.gov/orders/courtorders/062915zor_4g25.pdf).
Ma il documento in questione non parla di pena di morte? :confused:
Ma il documento in questione non parla di pena di morte? :confused:
A pagina 11:
"GOOGLE, INC. V. ORACLE AMERICA, INC.
The petition for a writ of certiorari is denied. Justice
Alito took no part in the consideration or decision of this
petition."
Cioè la Corte Suprema ha rifiutato il ricorso di Google. E non è del tutto esatto che questo rifiuto non ha comportato un giudizio nel merito, la Corte Suprema ha seguito le indicazioni del Solicitor General (http://www.scotusblog.com/2012/05/scotus-for-law-students-what-does-the-solicitor-general-do-sponsored-by-bloomberg-law/), a cui aveva chiesto un'opinione sul caso. E il Solicitor General è entrato nel merito confermando che le API sono protette da copyright.
cdimauro
02-06-2016, 05:31
OK, visto adesso. Anche se è veramente strano com'è impostato il documento. Mah.
Comunque con le API soggette a copyright la situazione è ben più grave della copia di un po' di righe di codice.
Ma, soprattutto, se le API sono soggette a copyright, non si capisce perché Oracle non abbia vinto la causa, considerato che era proprio quello il nocciolo principale della questione. A questo punto vedremo se l'appello ribalterà la sentenza.
Non si capisce perché non siamo avvocati e non abbiamo vissuto il processo da dentro. Oltretutto qua si parla di una faccenda accaduta pure in un altro paese.
Il problema è che noi pensiamo di essere tuttologi, come al solito accade nel forum, me compreso, che in questo giochino del "Sig. tutto so" ci casco anch'io.
E normale quindi che tante volte pensando di sapere ma non sapendo si rimane basiti. Io semplicemente aspetto una qualche spiegazione da parte di qualcuno che ne sa qualcosa davvero.
Ma non credo sia questo il problema. Il punto è che la situazione, in teoria, dovrebbe essere molto "lineare". Se le API sono soggette a copyright ha ragione Oracle, altrimenti Google (e le conseguenze possono essere molto importanti). Invece, sarà che non siamo avvocati, ma a me sembra tutto un po' troppo "nebuloso".
Io non so se avete mai vissuto un processo in prima persona.. io si, purtroppo.
Durano decenni e sono un intrico di situazioni e discorsi al limite del demenziale.
Non esiste una situazione lineare, non si puo applicare la logica di base quando si parla di queste faccende, per questo che non si capisce.
Molti di voi sono abituati a ragionare a schemi, ovvero 2+2=4, e cercano sempre di voler dimostrare tutto in modo scientifico e matematico.
Purtroppo in queste faccende non sempre questo approccio e' quello giusto.
Un processo va vissuto, non ci sono cazzi.
"Google ha però convinto la giuria che la loro implementazione in Android costituiva un uso legittimo del codice"
qui non si tratta di logica booleana applicata alla legge, ma di linguaggio da processo atto a convincere.
No ma guarda che io sono molto elastico eh, i miei nonni hanno dovuto portare avanti 20 anni di causa contro il Comune (poi vinta), quindi so come funzioni.
In questo caso mi sembrava più lineare, ripeto: o le API sono soggette a copyright, o non lo sono (nella parte dichiarativa, ovviamente).
Boh, non ci si capisce mai un ca**o. :D
Io davvero non capisco cosa ci trovate di nebuloso, illogico, non lineare, poco chiaro. Le opere coperte da copyright possono essere copiate senza licenza se sussistono certe condizioni disciplinate dalla legge nelle norme che definiscono il fair use. Le api sono protette da copyright, Google ha dimostrato che nel suo caso sussistono quelle condizioni, Google è stata assolta, fine della questione. :rolleyes:
Ok, ma come lo ha dimostrato?
Probabilmente argomentando bene, in modo convincete e avendo anche giudici che non sanno nemmeno cosa sia una API.
Ma e' normale che funzioni cosi in un aula:
Le metafore anche durante il processo si sono sprecate: pagare – ad esempio – ogni volta la formula del calcestruzzo, se si deve costruire un palazzo, pare assurdo a tutti; con l’immateriale stringa di codice, invece, non è così. L’uso di questo tipo di analogie che hanno costellato le esposizioni degli avvocati era indicativo di quanto i legali temessero che la giuria non potesse capire i problemi tecnici al centro del caso, ma così non è stato proprio grazie a un lavoro scrupoloso ed attento operato da parte della giuria che forse pur non avendo a priori la base tecnica per comprendere i passaggi pratici del caso, di certo ne ha intuito le implicazioni.
Il giudice che ha presieduto il processo ha una laurea in matematica ed in passato ha programmato, puoi dire di tutto tranne che non sappia cosa sia un'API. Ed a giudicare dalle istruzione che ho linkato prima, ha fatto un buon lavoro per fare capire, al di fuori di metafore campate per aria, la questione ai giurati.
Io davvero non capisco cosa ci trovate di nebuloso, illogico, non lineare, poco chiaro. Le opere coperte da copyright possono essere copiate senza licenza se sussistono certe condizioni disciplinate dalla legge nelle norme che definiscono il fair use. Le api sono protette da copyright, Google ha dimostrato che nel suo caso sussistono quelle condizioni, Google è stata assolta, fine della questione. :rolleyes:
Il codice dichiarativo è coperto da copyright o no?
Se io domani scrivo una libreria, tu puoi copiare gli header tranquillamente, sì o no?
Oppure bisogna discernere caso per caso? E se sì, sulla base di cosa?
Il codice dichiarativo è coperto da copyright o no?
Se io domani scrivo una libreria, tu puoi copiare gli header tranquillamente, sì o no?
Oppure bisogna discernere caso per caso? E se sì, sulla base di cosa?
Secondo la Corte d'Appello ed il Solicitor interpellato dalla Corte Suprema, gli header sono coperti da copyright. Si possono copiare in caso di fair use. Un caso costituisce fair use e un altro no sulla base delle norme di legge. Se ti interessa in dettaglio la norma di legge interessata, leggi il pdf delle istruzioni fornite alla giuria che ho linkato: essendo indirizzate alla giuria, oltre al testo letterale della norma contiene delle spiegazioni che rendono comprensibile la norma a un cittadino comune (che non ha una laurea in giurisprudenza).
Secondo la Corte d'Appello ed il Solicitor interpellato dalla Corte Suprema, gli header sono coperti da copyright. Si possono copiare in caso di fair use. Un caso costituisce fair use e un altro no sulla base delle norme di legge. Se ti interessa in dettaglio la norma di legge interessata, leggi il pdf delle istruzioni fornite alla giuria che ho linkato: essendo indirizzate alla giuria, oltre al testo letterale della norma contiene delle spiegazioni che rendono comprensibile la norma a un cittadino comune (che non ha una laurea in giurisprudenza).
Mah, continua a sembrarmi una forzatura l'uso del fair use in questo caso. Ripeto, le API non sono cascate dal cielo, quindi perché un'azienda come Google dovrebbe poterle copiare per lucrarci sopra? :confused:
Mah, continua a sembrarmi una forzatura l'uso del fair use in questo caso. Ripeto, le API non sono cascate dal cielo, quindi perché un'azienda come Google dovrebbe poterle copiare per lucrarci sopra? :confused:
Se avessi letto il pdf lo avresti capito, è proprio una delle cose che viene affrontata nelle spiegazioni.
Se avessi letto il pdf lo avresti capito, è proprio una delle cose che viene affrontata nelle spiegazioni.
it is a given, already established, that Google used certain aspects of copyrighted works, and the question remaining for you to decide is whether or not Google’s use was a fair use.
There is no contention, however, that Google copied the implementing code for the 37 API packages. The point of contention is over the declaring lines of code within the 37 API packages, also known as the header lines, which Google concededly used in Android, which reflect the structure, sequence, and organization for the Java API packages.
The fair use of a copyrighted work for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship or research, is not an infringement of copyright. In determining whether the use made of a work in any
particular case is a fair use the factors to be considered shall include —
1. The purpose and character of the use, including whether such use is of a commercial nature or is for nonprofit educational purposes;
2. The nature of the copyrighted work;
3. The amount and substantiality of the portion used in relation to the copyrighted work as a whole; and 4. The effect of the use upon the potential market for or value of the copyrighted work.
I have just quoted for you the right of fair use exactly as enacted by Congress. As you
just heard, the statute includes several examples of some types of uses that may be found to be fair uses, but that list is not exhaustive or exclusive. In your deliberations, you must decide whether or not Google has met its burden in this trial to prove that its copying was a fair use.
Il problema è nella parte in grassetto: non c'è una definizione chiara e precisa di quando si applichi il fair use e quando no. O meglio, ci sono quattro punti specificati ma, alla fine, non sono solo quelli.
Io rimango dell'idea che una legge debba essere chiara e debba stabilire dei confini precisi. Altrimenti l'applicabilità o meno di 'sto fair use dipende solo da quali avvocati sono più bravi a convincere la giuria.
it is a given, already established, that Google used certain aspects of copyrighted works, and the question remaining for you to decide is whether or not Google’s use was a fair use.
There is no contention, however, that Google copied the implementing code for the 37 API packages. The point of contention is over the declaring lines of code within the 37 API packages, also known as the header lines, which Google concededly used in Android, which reflect the structure, sequence, and organization for the Java API packages.
The fair use of a copyrighted work for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship or research, is not an infringement of copyright. In determining whether the use made of a work in any
particular case is a fair use the factors to be considered shall include —
1. The purpose and character of the use, including whether such use is of a commercial nature or is for nonprofit educational purposes;
2. The nature of the copyrighted work;
3. The amount and substantiality of the portion used in relation to the copyrighted work as a whole; and 4. The effect of the use upon the potential market for or value of the copyrighted work.
I have just quoted for you the right of fair use exactly as enacted by Congress. As you
just heard, the statute includes several examples of some types of uses that may be found to be fair uses, but that list is not exhaustive or exclusive. In your deliberations, you must decide whether or not Google has met its burden in this trial to prove that its copying was a fair use.
Il problema è nella parte in grassetto: non c'è una definizione chiara e precisa di quando si applichi il fair use e quando no. O meglio, ci sono quattro punti specificati ma, alla fine, non sono solo quelli.
Io rimango dell'idea che una legge debba essere chiara e debba stabilire dei confini precisi. Altrimenti l'applicabilità o meno di 'sto fair use dipende solo da quali avvocati sono più bravi a convincere la giuria.
Sì, c'è un margine di discrezionalità, entro cui i giurati valutano col buon senso:
in your judgment, bear upon the ultimate purpose of the Copyright Act, including protection of authors and the right of fair use, namely, to promote the progress of science and useful arts
Tenendo in considerazione le sentenze precedenti:
Although the Act does not explicitly use the word “transformative,” our courts uniformly hold that the first statutory factor (la valutazione della finalità dell'uso dell'opera incriminata, inclusa la valutazione dello sfruttamento commerciale o meno) calls for an evaluation whether and to what extent the purpose and character of the accused work is transformative
E tutti i giurati devono giungere alla medesima conclusione:
Your verdict must be unanimous
cdimauro
02-06-2016, 20:54
Ma nel caso delle API (non mi riferisco al codice dichiarativo che le espone, ma alla loro descrizione/definizione puramente come interfaccia) IMO c'è poco da fare: il fair use dovrebbe applicarsi sempre, perché altrimenti nessuno le potrebbe usare.
Eppure le recenti sentenze hanno sancito che il copyright è stato esteso anche sulle API.
Per me rimane un controsenso.
Ma nel caso delle API (non mi riferisco al codice dichiarativo che le espone, ma alla loro descrizione/definizione puramente come interfaccia) IMO c'è poco da fare: il fair use dovrebbe applicarsi sempre, perché altrimenti nessuno le potrebbe usare.
Eppure le recenti sentenze hanno sancito che il copyright è stato esteso anche sulle API.
Per me rimane un controsenso.
Infatti è l'ultima sentenza della Corte di appello di questo caso che va in disaccordo rispetto a quanto stabilito in precedenza e che risulta un controsenso.
Ma nel caso delle API (non mi riferisco al codice dichiarativo che le espone, ma alla loro descrizione/definizione puramente come interfaccia) IMO c'è poco da fare: il fair use dovrebbe applicarsi sempre, perché altrimenti nessuno le potrebbe usare.
Eppure le recenti sentenze hanno sancito che il copyright è stato esteso anche sulle API.
Per me rimane un controsenso.
Se il fair use non si applicasse sempre (ma solo in alcuni casi), non è vero che nessuno le potrebbe usare. Chiunque le potrebbe usare nei casi in cui si applica il fair use, come è successo per Google.
Infatti è l'ultima sentenza della Corte di appello di questo caso che va in disaccordo rispetto a quanto stabilito in precedenza e che risulta un controsenso.
La sentenza della corte d'appello e il parere del solicitor general interpellato dalla corte suprema.
cdimauro
03-06-2016, 18:34
Il problema è che le API definisco un'interfaccia/protocollo/convenzione: sono, per definizione, fatte per essere usate. Ecco perché il fair use dovrebbe applicarsi sempre.
Il problema è che le API definisco un'interfaccia/protocollo/convenzione: sono, per definizione, fatte per essere usate. Ecco perché il fair use dovrebbe applicarsi sempre.
E di quello la giuria ne tiene conto, come ha fatto con Google, in virtù del punto della norma che dice di valutare "the nature of the copyrighted work" e del fatto che gli altri punti non sono di per se escusivi. Dici che per te il fair use dovrebbe applicarsi sempre, ma infatti con la legislazione vigente faccio fatica a pensare ad uno scenario in cui se fossi un giurato non giudichere fair use la copia delle API.
cdimauro
03-06-2016, 19:50
Ma infatti il problema rimane il non senso di giudicare come sotto copyright le API stesse, proprio per questo motivo.
cdimauro
03-06-2016, 21:20
C'è un altro bell'articolo su ArsTechnica, sempre sulla vicenda: The Google/Oracle decision was bad for copyright and bad for software (http://arstechnica.com/business/2016/06/the-googleoracle-decision-was-bad-for-copyright-and-bad-for-software/).
Questa riflessione:
"But developing a good, rich API is difficult to do, and the Java API, like the C, C++, .NET, and Win32 APIs, represents years of decision-making and creativity."
mi fa propendere decisamente sul copyright delle API, nonché contrarietà al fair use.
C'è un altro bell'articolo su ArsTechnica, sempre sulla vicenda: The Google/Oracle decision was bad for copyright and bad for software (http://arstechnica.com/business/2016/06/the-googleoracle-decision-was-bad-for-copyright-and-bad-for-software/).
Questa riflessione:
"But developing a good, rich API is difficult to do, and the Java API, like the C, C++, .NET, and Win32 APIs, represents years of decision-making and creativity."
mi fa propendere decisamente sul copyright delle API, nonché contrarietà al fair use.
Premesso che non sempre c'è un grande lavoro dietro un'API. Il copyright non protegge il lavoro svolto ma l'espressione creativa con lo scopo di avanzare la conoscenza nell'ambito delle arti e della scienza.
Nelle API ritengo ci sia molto poca espressione creativa. Inoltre lasciarle sotto copyright sarebbe troppo potere all'autore permettendogli di bloccare qualunque tentativo di reimplementazione.l cosa che non è un avanzamento della conoscenza ma un blocco
cdimauro
05-06-2016, 08:07
Dipende dalle API: in quelle citate c'è abbastanza creatività, che merita di essere tutelata.
Quanto a conoscenza e progresso, non vengono meno col copyright. Quanto dura il copyright sui libri, ad esempio? Questo ha comportato un blocco alla conoscenza e al progresso? Non mi pare.
Riguardo alla questione, c'è un altro pezzo apparso su ArsTechnica che tratta quanto avevo ipotizzato qualche giorno fa:
Op-ed: Oracle attorney says Google’s court victory might kill the GPL (http://arstechnica.com/tech-policy/2016/05/op-ed-oracle-attorney-says-googles-court-victory-might-kill-the-gpl/)
Altro articolo (questo però non scritto dall'avvocato di una delle parti in causa :D ): Google’s fair use victory is good for open source (http://arstechnica.com/tech-policy/2016/06/googles-fair-use-victory-is-good-for-open-source/)
cdimauro
05-06-2016, 10:00
Avere altri punti di vista è sempre interessante. :)
In questo caso, però, IMO la signora ha mischiato troppe cose. In particolare mi riferisco a questo:
"So why is this a victory for the open source community as well as for Google? The main reason is because open source programs are often designed to interoperate with, either as complements or substitutes for, existing programs. To accomplish interoperation, open source developers must be able to reimplement existing program APIs in their own program code."
C'è una differenza enorme fra utilizzare le (esistenti) API realizzando delle applicazioni, e reimplementare le API: sono due cose completamente diverse.
Nel primo caso le applicazioni (tutte: non solo open source) hanno ovviamente bisogno che le API siano, per l'appunto, pubbliche E utilizzabili. Se fossero sotto copyright E non valesse il fair use, nessuno potrebbe scrivere applicazioni sfruttando quelle API.
Il secondo caso, invece, riguarda chi volesse offrire un'ALTRA piattaforma basata sulle stesse API ma che sono state riscritte (lasciamo un attimo da parte la questione del codice dichiarativo, e assumiamo che anche quello sia stato riscritto). Questo non ha nulla a che vedere con l'interoperabilità et similia che è stata tirata in ballo, perché parliamo di una NUOVA piattaforma, e per la quale il software (open o closed, è anche qui indifferente) dovrà essere scritto (se le API, come nel caso di Google Android, non sono esattamente e totalmente le stesse di quelle SUN->Oracle/Java).
Per cui l'unica cosa in cui ritrovo del pezzo è questa:
"Developers of software need some simple norms to live by."
E, dunque, sapere se è sicuro o meno poter scrivere codice utilizzando certe API.
Dipende dalle API: in quelle citate c'è abbastanza creatività, che merita di essere tutelata.
Quanto a conoscenza e progresso, non vengono meno col copyright. Quanto dura il copyright sui libri, ad esempio? Questo ha comportato un blocco alla conoscenza e al progresso? Non mi pare.
Secondo me nelle API c'è molto poca creatività. Inoltre, essendo molto funzionali, qualunque creatività vi sia ricade sotto a dottrina del "merger" e quindi non soggetta a copyright. Resta ovviamente protetta l'implementazione.
Riguardo il copyright, al momento dura troppo (di solito viene allungato quando si avvicina la.scadenza dei diritti su Topolino) e viene usato come rendita di posizione invece che come incentivo a creare cose nuove.
cdimauro
05-06-2016, 13:54
Secondo me nelle API c'è molto poca creatività. Inoltre, essendo molto funzionali, qualunque creatività vi sia ricade sotto a dottrina del "merger" e quindi non soggetta a copyright. Resta ovviamente protetta l'implementazione.
Confronta le API di Java e C#/.NET, tanto per fare un esempio, e poi ne riparliamo. ;)
Riguardo il copyright, al momento dura troppo (di solito viene allungato quando si avvicina la.scadenza dei diritti su Topolino) e viene usato come rendita di posizione invece che come incentivo a creare cose nuove.
Sì, ma il punto è che non limita la creatività di nessuno. A meno che essere creativi non significhi creare un altro topo umanizzato... :stordita:
Leggendo in giro a destra e a sinistra mi pare di aver capito che per la legge italiana i software siano protetti dal copyright solo se sono un idea nuova e originale e solo se non sono elementi di base / comuni di un programma.
Il copyright è sul codice.
Quindi quando un'API essegue delle operazioni comuni e/o indispensabili e' giusto che non ci sia un copyright.
Francamente non so come sia messa la normativa italiana in merito alle API.
Al momento il copyright tutela le opere dell'ingegno, e le API... lo sono.
Qualcuno ha tirato fuori il discorso libri, ma la letteratura e' tutta un altra faccenda, come si da a paragonare un linguaggio di programmazione al risultato di un linguaggio e pensiero umano?
Perché... sono la stessa cosa? Il linguaggio di programmazione, e relative API, sono proprio il frutto del pensiero umano.
Basti confrontare i vari linguaggi di programmazione esistenti, e relative API. :read:
cdimauro
05-06-2016, 22:10
Chi ha detto che sono uguali? Ovviamente non lo sono. L'unica cosa in comune è che sono il frutto del pensiero umano, e da questo punto di vista non vedo cos'avrebbe di meno un linguaggio di programmazione rispetto a un'opera letteraria.
P.S. Idem per l'architettura di un processore.
Ma scusatemi, che senso ha paragonare un'opera letteraria e un linguaggio di programmazione? :confused:
Il linguaggio andrebbe paragonato con la lingua parlata, l'opera letteraria con un programma.
Fermo restando che non si può proprio sentire/leggere che un programma non ha nulla di meno rispetto, che so, alla Divina Commedia. Capisco essere "fanatici" di tecnologia, ma a tutto c'è un limite. :D
Premetto che sono anche uno sviluppatore Android, quindi è ovvio il mio tifo tra le due aziende in questione (senza contare il mio odio viscerale per Oracle)...
Però non ho le idee ben chiare a proposito della sentenza in oggetto. Cercavo di trovare un esempio reale, una metafora della dicotomia interfaccia/implementazione, che mi aiutasse a capire dove si ferma l'opera d'ingegno e dove subentra la mera definizione di uno standard...
cdimauro
06-06-2016, 17:15
Si vede che non hai mai letto un libro.
Si vede da cosa? Dal fatto che mi devi contestare per forza, anche inventando cose come queste? :rolleyes:
Un linguaggio di programmazione cosa avrebbe di meno?:doh:
E' o non è frutto del pensiero umano? Basta una semplice risposta.
Tra le molte cose non provoca emozioni, Oddio, forse quando si blocca si . :) che
Non tutti proviamo le stesse emozioni. Mi pare che l'umanità sia fortunatamente ben variegata.
Per quanto mi riguarda, riesco ad emozionarmi ANCHE (lo evidenzio) quando vedo linguaggi di programmazione o programmi che reputo "belli", in base all'esperienza di una vita avendo avuto a che farci.
Ma scusatemi, che senso ha paragonare un'opera letteraria e un linguaggio di programmazione? :confused:
Infatti non c'è niente da paragonare: l'unica cosa che hanno in comune è che se sono frutto del pensiero umano.
Il linguaggio andrebbe paragonato con la lingua parlata, l'opera letteraria con un programma.
C'è una differenza non di poco conto: anche il linguaggio di programmazione (e annesse API che espone per la sua libreria standard) viene fuori da un processo creativo simile a quello necessario alla realizzazione di un programma.
Fermo restando che non si può proprio sentire/leggere che un programma non ha nulla di meno rispetto, che so, alla Divina Commedia. Capisco essere "fanatici" di tecnologia, ma a tutto c'è un limite. :D
Come dicevo prima, sono entrambi frutto della creatività del pensiero umano. Da questo punto di vista non ci sono differenze.
Per il resto non c'entrano niente.
Premetto che sono anche uno sviluppatore Android, quindi è ovvio il mio tifo tra le due aziende in questione (senza contare il mio odio viscerale per Oracle)...
Però non ho le idee ben chiare a proposito della sentenza in oggetto. Cercavo di trovare un esempio reale, una metafora della dicotomia interfaccia/implementazione, che mi aiutasse a capire dove si ferma l'opera d'ingegno e dove subentra la mera definizione di uno standard...
Purtroppo non è una cosa facile a cui rispondere, e i commenti espressi in questo thread credo ne siano una testimonianza.
Come ho riportato in uno degli ultimi commenti, dall'ultimo pezzo di ArsTechnica, realizzare un linguaggio di programmazione e relative API richiede un impegno non banale, che richiede anche anni di lavoro.
Visto che sviluppi per Android, conoscerai Java. Prova adesso a dare un'occhiata a C# e metti a confronti i due linguaggi e le rispettive librerie standard: noterai tante analogie (perché entrambi sono linguaggi C-like), ma anche notevoli differenze di design.
Se t'interessa l'argomento, c'è una stupenda intervista all'architetto che ha realizzato C# (e, prima ancora, i meravigliosi Delphi e Turbo Pascal), in cui descrive le problematiche affrontate e le motivazioni che hanno portato a certe scelte di progettazione. E' una serie di articoli che è a dir poco illuminante.
Nessuno.
infatti, non si puo proprio sentire.
Temo che iniziera' una lunga discussione OT su questo per andare a cercare di dimostrare chissa cosa e perche :D
Coda di paglia? Carbone bagnato?
Da quando abbiamo avuto quello scontro sulle console ogni tanto t'infili in qualche discussione in cui ho scritto qualcosa, e lanci qualche frecciatina. Si vede che ti rode ancora...
Rilassati e mettiti in testa che ci sono persone che la pensano diversamente, e hanno il diritto di esprimere e argomentare la propria opinione esattamente come tutti gli altri.
Non riesci a trovare nulla di emozionante in linguaggi di programmazione, API, e software in generale? Va benissimo: abbiamo sensibilità diverse.
cdimauro
07-06-2016, 04:51
Ma guarda un po': affermi che sia assurda e di non voler continuare a discutere. Un ossimoro...
Se non volevi discutere potevi benissimo evitare in toto, o quanto meno avere la decenza di evitare la seconda frase, che porta un'accusa indimostrata.
Dulcis in fundo, da quel che hai scritto direi che ti brucia ancora la precedente discussione sulle console.
Accà nisciuno è fesso...
EDIT. Un po' di cibo per la mente. Ovviamente per chi ha voglia di darle qualcosa da mangiare:
Knuth: Computer Programming as an Art (http://www.paulgraham.com/knuth.html)
Se t'interessa l'argomento, c'è una stupenda intervista all'architetto che ha realizzato C# (e, prima ancora, i meravigliosi Delphi e Turbo Pascal), in cui descrive le problematiche affrontate e le motivazioni che hanno portato a certe scelte di progettazione. E' una serie di articoli che è a dir poco illuminante.
Hai un link a portata di mano? :D
cdimauro
07-06-2016, 16:55
Hai un link a portata di mano? :D
Per chi fosse interessato: A Conversation with Anders Hejlsberg (http://www.artima.com/intv/anders.html)
:confused:
1) Se una discussione la ritengo assurda mi pare ovvio che ritengo di non dover continuare . Ma quale ossimoro e ossimoro.
Hai espresso un giudizio, peraltro senza alcuna argomentazione.
2) la discussione sulle console cosa vuol dire che mi brucia ancora? Non sono mica sfide personali dove se si perde e si incrina l'ego?
Era una discussione altrettanto assurda, perché si parlava dei se e dei ma.
Se avessero fatto, potevano fare, non hanno fatto perché , hanno fatto percome, prima hanno fatto così, e quindi oggi potevano fare uguale ma non l'ho hanno fatto.
Più che assurda direi che fosse surreale, visto che c'era gente che prendeva dati FUTURI per giustificare scelte di ANNI PRIMA. :D
Comunque il dato rilevante è che, come dicevo, dopo quegli scontri t'infili in qualche thread in cui commento, e spari qualche battutina (anche acida). Come se qui ci fossero dei fessi che non s'accorgessero delle tue manovre.
Datti una calmata.
É anche simpatica ma poi dopo un po basta, ragionare così per schemi mentali matematici poi dopo un po stressa.
Non c'erano dubbi su questo, e dimostra quanto lontano tu sia dalla programmazione. Solo che ciò non t'impedisce di esprimere giudizi in merito.
La realtà é una sola , é così. Punto. Questa sentenza così si è conclusa, la Sony quella console così ha fatto e così farà la prossima.
Farsi troppe pippone mentali a cosa serve?
Se permetti anche se i giochi sono fatti si può benissimo commentare.
Casualmente questo è un forum... di discussione.
Se per te è già tutto definito, allora non si capisce perché continui a partecipare a queste discussioni.
Se ritieni che tutti sbaglino , o che spesso gli altri non facciano il meglio, come le aziende o i giudici, ti ho già detto, invia il curriculum nei vari settori e fatti assumere.
Ho già un ottimo lavoro e non ho intenzione di cambiarlo.
Ciò non toglie che, come già detto, questo è un forum di discussione e se ho qualcosa da dire anche su un argomento già consumato, io lo faccio. Che ti piaccia o meno.
cdimauro
07-06-2016, 20:18
Ovvero?
Mi riquoto:
"Comunque il dato rilevante è che, come dicevo, dopo quegli scontri t'infili in qualche thread in cui commento, e spari qualche battutina (anche acida)."
Io, a parte il consiglio di mandare ul curriculm, non ho mai fatto attacchi personali.
Ecco qui (http://hwupgrade.it/forum/showpost.php?p=43745048&postcount=80):
"Qualcuno ha tirato fuori il discorso libri, ma la letteratura e' tutta un altra faccenda, come si da a paragonare un linguaggio di programmazione al risultato di un linguaggio e pensiero umano?"
Qualcuno chi? Il contesto mi sembra chiarissimo.
Ed è soltanto uno dei tanti che hai sparso nei vari thread che si sono susseguiti dopo gli scontri sulle console.
Semmai se te che scrivi, "Coda di paglia? Carbone bagnato?" per flammare.
Al contrario di te, le cose preferisco dirtele in faccia.
edit: lasciamo stare
Intanto scrivi, e poi vuoi lasciare stare. Se vuoi lasciare stare evita direttamente d'intervenire.
Visto che ami le dimostrazioni scientifiche matematiche per tutto.
Tua frase:
L'unica cosa in comune è che sono il frutto del pensiero umano, e da questo punto di vista non vedo cos'avrebbe di meno un linguaggio di programmazione rispetto a un'opera letteraria.
Un linguaggio di programmazione di meno avrebbe questo:
Semantica
La semantica è quella parte della linguistica che studia il significato delle parole (semantica lessicale), degli insiemi delle singole lettere (negli e degli alfabeti antichi) e delle frasi (semantica frasale) e dei testi.
La semantica è una scienza in stretto rapporto con altre discipline, come la semiologia, la logica, la psicologia, la teoria della comunicazione, la stilistica, la filosofia del linguaggio, la antropologia linguistica e la antropologia simbolica. Un insieme di termini che hanno in comune un fattore semantico viene detto campo semantico.
La posizione della semantica, studiata nell'ambito di una teoria generale dei segni, diventa più chiara se messa a confronto con la pragmatica e la sintassi.
[...]
Potevi riportare direttamente il link di Wikipedia, invece di scrivere un wall-of-text che lascia il tempo che trova.
Riguardo ai linguaggi di programmazione e alla programmazione in generale, ti riporto anch'io qualche link utile, visto che pure in questa branca della matematica (che è scienza anch'essa) non mancano certo discipline, teorie, e studi vari:
Teoria della calcolabilità (https://it.wikipedia.org/wiki/Teoria_della_calcolabilità)
Decidibilità (https://it.wikipedia.org/wiki/Decidibilità)
Problema della terminazione (https://it.wikipedia.org/wiki/Problema_della_terminazione)
Teoria della complessità (https://it.wikipedia.org/wiki/Teoria_della_complessità)
NP (complessità) (https://it.wikipedia.org/wiki/NP_(complessità))
Roba le cui implicazioni riguardo a linguaggi di programmazione e software sono estremamente profonde e importanti.
In particolare il problema dell'arresto è legato ai bug e alla "sicurezza" di un sistema.
Infine, ma non meno importante, avevo anche riportato un link a una lettura di Knuth riguardo alla programmazione e all'arte, che faceva pure un escursus storico sul significato di quest'ultima. Stranamente non hai avuto nulla dire, sebbene riguardasse proprio il tema dell'ultimo scontro... :rolleyes:
cdimauro
07-06-2016, 21:29
Quando pensi di smazzarti la lettura di Knuth? Perché altrimenti non ha senso proseguire, visto che tante risposte le trovi lì.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.