Molti programmatori Linux sono impegnati nel produrre software liberamente ridistribuibile (FRS), e cercano di evitare di dedicare un mucchio di tempo a strumenti i cui sorgenti non siano generalmente disponibili. In questa sezione discutiamo il rapporto tra la Sun e Java ed il mondo FRS.
(Attenzione: non sono un avvocato. Non sono neppure impiegato, nè agente, nè distributore della Sun Microsystems. Questa sezione è basata sulla mia interpretazione delle attuali leggi sul copyright ed il linguaggio della licenza della Sun. Tenetela come una introduzione; la licenza della Sun, http://www.blackdown.org/Java/licensing.html, è definitiva. Se avete seri dubbi sul suo significato, consultate un avvocato.)
Lo sono se li scrivete voi e scegliete di renderli FRS attraverso qualche metodo (quale la licenza GPL, o una tipo-BSD, o dichiarandoli di pubblico dominio).
La pagina della licenza della Sun ha questo da dire:
Gli eseguibili binari non-modificati di Java e HotJava rilasciati possono essere ridistribuiti senza oneri sia in applicazioni commerciali che non-commerciali.Inoltre:
Società o individui che desiderino creare un nuovo sbarco del linguaggio Java in base a codesto contratto hanno il diritto di pubblicare su Internet gli eseguibili binari di questo sbarco per farli usare da altri, purchè questi eseguibili siano liberi da oneri e superino le suite di test pubblicamente disponibili. (Le suite di test saranno disponibili in qualche momento nella prima metà del 1996.) Le differenze -- con i sorgenti rilasciati (NdT) -- potranno essere pubblicate sul Web puchè il codice sorgente originale non venga pubblicato. Il codice sorgente di Java è ...Così se avete gli ese guibili funzionanti di Java o HotJava, potete darli ai vostri amici. O metterli in un CD-ROM. O qualunque altra cosa eccetto modificarli e chiamare ancora Java la versione modificata. (Questo è ragionevole. La Sun ovviamente non vuole restare senza risorse contro ''Cavalli di Troia'' che viaggino sotto la bandiera di Java.) Gli eseguibili binari sono FRS.
In base alla licenza della Sun, nulla di questi lo è. Ma ciò suona più severo di quanto sia. In pratica, ogniuno può ottenere i sorgenti di Java e HotJava per scopi educativi, di sbarco, e non-commerciali compilando una form sul Web che obbliga a non ridistribuire i sorgenti. Ed il contratto permette la ridistribuzione di differenze sui sorgenti.
La sola circostanza che vi richiede di firmare una licenza commerciale con la Sun e di pagar loro denaro è se volete usare i sorgenti in un prodotto commerciale. In particolare, per il modo in cui è scritto, è nella lettera e nello spirito del contratto che voi firmiate la licenza dei sorgenti della Sun per uso non-commerciale, arraffiate il sorgente, lo sbarchiate altrove e diate via gli eseguibili binari ottenuti come freeware completamente libero da ipoteche!
La Sun dice che il suo scopo primario nel mentenere tanto controllo quanto ne ha, è per impedire che il linguaggio muti in dialetti incompatibili. Il linguaggio della licenza lo sostiene: sembra essere stata progettata per permettere agli smanettoni di giocarci liberamente.
La pagina della licenza Sun dice:
Le specifiche per il Linguaggio Java w la Macchina Virtuale Java sono aperte (OPEN) e sono coperte da copyright dalla Sun Microsystems Inc.
Reimplementazioni del Compilatore java e dell'Interprete a Runtime di Java sono permesse senza necessità di licenza dalla Sun a patto che tali implementazioni siano create direttamente dalle specifiche pubblicate e senza l'uso diretto o indiretto dell'implementazione della Sun o altri diritti di proprietà intellettuale, inclusi i marchi commerciali.Così se volete fare lo sforzo di creare un clone FRS di Java partendo dalle specifiche pubblicate , la Sun non vi fermerà.
La gente alla Sun usa il termine ''rogue port'' (sbarco briccone) per implementazioni di Java che a) siano eseguite fuori dalla Sun, o b) non si basino su codice concesso in licenza dalla Sun (alcune volte il termine sembra avere uno dei significati, altre volte l'altro). Loro sembrano ritenere che già ne esistano, ma noi non sappiamo dove siano, nè se siano FRS. Sono piuttosto tranquilli sulla situazione.
La Sun ha una suite di validazione. Hanno detto che certificheranno qualunque sbarco che la superi.(non è noto se questa validazione sarà onerosa, ma la Sun dice per iscritto che la suite sarà ''pubblicamente disponibile'' nel 1996, il che almeno suggerisce che non sarà onerosa.) Sono pronti a certificare sbarchi bricconi, benchè apparentemente questo non sia ancora successo.
Esiste un clone del compilatore di Java in fase iniziale di sviluppo. E` chiamato guavac. Potete trovare più informazioni a http://http.cs.berkeley.edu/~engberg/guavac
Circolavano voci che il progetto GROW della Cygnus Software avesse piani per un interprete del byte-code Java da porre sotto GPL. Questo è falso; quello su cui stanno lavorando è un traslatore da Java a Scheme che non passi attraverso il J-code. Potete avere dettagli sul progetto GROW a http://www.cygnus.com/tiemann/grow/.
EriK Troan della Red Hat ed il vostro umile redattore stanno cercando di mettere insieme un gruppo di sviluppo per fare il resto del lavoro. Per il momento sembra che useremo guavac come compilatore, Erik preparerà la libreria di classi mentre il vostro umile redattore preparerà l'interprete di byte-code (se Cygnus non arriverà prima). Questo progetto era sperimentalmente denominato ''Mr. Coffee'', ma ora probabilmente sarà JOE (per Java Open to Everyone = Java Aperto a Tutti).
C'è una modalità GNU Emacs per editare Java. Potete ottenerlo da ftp://java.sun.com/pub/java/contrib/emacs. Notate: questa modalità presume stiate usando c++mode.el, e non funziona con cc-mode.el distribuito con Emacs 19.