En lisant l'affaire Google v Oracle, je suis tombé sur ces questions (apparemment du juge qui présidait)
...
Est-il convenu que ce qui suit est vrai, au moins à partir de 1996?Les éléments suivants constituaient l’interface de programmation d’application Java principale: java.lang, java.util et java.io.
Le langage de programmation Java fait-il référence ou nécessite-t-il une méthode, une classe ou un package en dehors des trois précédents?
...
source: Groklaw
Il y a évidemment beaucoup de ramifications juridiques, Google et Oracle sont probablement en désaccord sur certains points, et cela m'est égal . Laissez la loi aux avocats.
Cependant, je soupçonne qu'il y a un peu d'histoire intéressante ici.
Ma question est (comme quelqu'un qui a d' abord fait une Java de codage vers 2001 dans la version 1.3), dans la version 1.0 de Java a été quelque chose nécessaire en dehors de java.lang
, java.util
et java.io
de compiler un programme Java valide?
Par exemple (en utilisant C # 5.0), le await
mot-clé dépend (entre autres). Le compilateur ne pourrait pas fonctionner sans cette classe.Task<T>
GetAwaiter()
De manière équivalente, y a-t-il des fonctionnalités d'exécution principales (telles que ClassLoader *) qui dépendent d'autres packages?
J'admets que je demande par curiosité ce qui est nécessaire pour que Java soit viable au minimum (le langage, ignorant tous les éléments légaux qui l'entourent) est intéressant.
* Je suppose que ClassLoader était même une fonctionnalité de Java 1.0, qu'elle faisait partie des spécifications de la version 7.0 et probablement de nombreuses versions antérieures.
await
mot-clé ne dépend pas Task<T>
. La Task
classe arrive juste pour satisfaire les choses que le await
mot - clé ne dépend (une méthode appelée GetAwaiter()
etc.).
yield
et IEnumerator ou quelque chose; tellement excité pour await
.