Leggendo del caso Google contro Oracle, mi sono imbattuto in queste domande (apparentemente dal Giudice presidenziale)
...
Is it agreed that the following is true, at least as of 1996?The following were the core Java Application Programming Interface: java.lang, java.util and java.io.
Does the Java programming language refer to or require any method, class or package outside the above three?
...
fonte: Groklaw
Ci sono ovviamente molte implicazioni legali, Google e Oracle probabilmente non sono d'accordo su alcuni punti, e non mi interessa . Lascia la legge agli avvocati.
Tuttavia, sospetto che qui ci sia un po 'di storia interessante.
La mia domanda è (come qualcuno che per prima ha fatto una codifica Java intorno al 2001 nella versione 1.3), nella versione 1.0 di Java era tutto richiesto al di fuori di java.lang
, java.util
e java.io
per compilare un programma Java valido ?
Ad esempio (utilizzando C # 5.0), await
la parola chiave dipende da Task<T>
GetAwaiter()
(tra le altre cose). Il compilatore non può funzionare con le specifiche senza quella classe.
Equivalentemente, esistevano funzionalità di runtime di base (come ClassLoader *) che dipendevano da altri pacchetti?
Devo ammettere che lo chiedo per curiosità, esattamente ciò che è necessario per Java minimo vitale (il linguaggio, ignorando tutti i bit legali che lo circondano) è interessante.
* Suppongo che ClassLoader fosse persino una funzionalità in Java 1.0, fa parte di specifica in 7.0 e presumibilmente molte versioni precedenti.