Leggendo il caso Google v Oracle, mi sono imbattuto in queste domande (apparentemente dal giudice presiedente)
...
È concordato che quanto segue sia vero, almeno a partire dal 1996?Quelli che seguono erano l'interfaccia di programmazione dell'applicazione Java principale: java.lang, java.util e java.io.
Il linguaggio di programmazione Java fa riferimento o richiede alcun metodo, classe o pacchetto al di fuori dei tre precedenti?
...
fonte: Groklaw
Ci sono ovviamente molte conseguenze legali, Google e Oracle probabilmente non sono d'accordo su alcuni punti, e non mi interessa . Lascia la legge agli avvocati.
Tuttavia, sospetto che ci sia un po 'di storia interessante qui.
La mia domanda è (come qualcuno che per primo ha fatto qualsiasi Java codifica intorno al 2001 nella versione 1.3), nella versione 1.0 di Java è stato qualcosa di necessario al di fuori di java.lang, java.utile java.ioper compilare un programma Java valida?
Ad esempio (usando C # 5.0), la awaitparola chiave dipende (tra le altre cose). Il compilatore non potrebbe funzionare secondo le specifiche senza quella classe.Task<T>GetAwaiter()
Equivalentemente, c'erano delle funzionalità di runtime di base (come ClassLoader *) che dipendevano da altri pacchetti?
Devo ammettere che chiedo per curiosità, esattamente cosa è necessario per Java minimamente praticabile (il linguaggio, ignorando tutti i bit legali che lo circondano) è interessante.
* Suppongo che ClassLoader fosse persino una funzionalità di Java 1.0, fa parte delle specifiche in 7.0 e presumibilmente molte versioni precedenti.
awaitparola chiave non dipende Task<T>. La Taskclasse succede solo a soddisfare le cose che la awaitparola chiave non dipende (un metodo chiamato GetAwaiter(), ecc).
yieldIEnumerator o qualcosa del genere; così eccitato per await.


