java oracle vs google

Ho qualche anno e ricordo Java (TM) come una tecnologia creata da Sun Microsystem in modo aperto e collaborativo nei confronti di altre aziende software, in particolare MS e Apple a quel tempo.

Il modo aperto era implementato appunto diffondendo l’uso di una API a cui gli implementatori dovevano aderire affinché ricevessero l’attestazione di compatibilità Java. La API definiva classi, metodi e proprietà (e regole di accessibilità di metodi e proprietà) dettagliatamente descrivendo i comportamenti di questi metodi e classi.

Ora Oracle pensa che Java sia una tecnologia proprietaria e non copiabile, che quella sia una fuga di informazioni, o almeno crede di poter farla passare per tale. La tecnologia Java si è diffusa proprio perché aveva quei termini di utilizzo.

Oracle ha torto sotto tutti gli aspetti riguardo la questione specifica. È una pratica scorretta quella di mettere i concorrenti nelle condizioni di illegalità cambiando le regole che prima erano state garantite e assicurate.

È legalmente una svista. Il copyright sulle api dice che le specifiche non possono essere distribuite e non possono essere modificate da altri se non da Sun. Questo non vuol dire che queste specifiche non possano essere usate una volta che uno le ha ottenute, proprio da Sun o da Oracle, per implementare una sua versione. Né vuol dire che l’implementarle in modo giusto o sbagliato ponga il programmatore in uno stato di illegalità.

L’acrobazia legale è posta in questi termini:
1. Oracle rilascia le specifiche delle API Java
2. Oracle pone il divieto di diffusione (distribuzione) non autorizzato delle specifiche.
3. Google documenta il proprio sistema che implementa le API Java rilasciate da Oracle.
4. Google è colpevole di aver distribuito qualcosa senza il permesso di Oracle

È quasi convincente, no?

Ma il punto 2. è sbagliato. I termini non sono di divieto di copia come opera d’autore sulla definizione delle api, ma riguardano l’uso di Java(TM), e questa limitazione è decaduta col tempo (causa Sun-MS) definendo Java come linguaggio e non tecnologia.