Al leer sobre el caso de Google v Oracle, me encontré con estas preguntas (aparentemente del juez presidente)
...
¿Está de acuerdo en que lo siguiente es cierto, al menos a partir de 1996?Las siguientes fueron las principales interfaces de programación de aplicaciones Java: java.lang, java.util y java.io.
¿El lenguaje de programación Java se refiere o requiere algún método, clase o paquete fuera de los tres anteriores?
...
fuente: Groklaw
Obviamente, hay muchas ramificaciones legales, Google y Oracle probablemente no estén de acuerdo en algunos puntos, y no me importa . Deje la ley a los abogados.
Sin embargo, sospecho que hay un poco de historia interesante aquí.
Mi pregunta es (como alguien que primero hizo ninguna Java codificación de alrededor de 2001 en la versión 1.3), en la versión 1.0 de Java fue nada fuera necesario de java.lang, java.utily java.iopara compilar un programa Java válido?
Como ejemplo (usando C # 5.0), la awaitpalabra clave depende (entre otras cosas). El compilador no podría funcionar según las especificaciones sin esa clase.Task<T>GetAwaiter()
De manera equivalente, ¿hubo alguna característica principal de tiempo de ejecución (como ClassLoader *) que dependiera de otros paquetes?
Admito que pregunto por curiosidad, lo que es exactamente necesario para Java mínimamente viable (el lenguaje, ignorando todas las partes legales que lo rodean) es interesante.
* Supongo que ClassLoader era incluso una característica en Java 1.0, es parte de la especificación en 7.0 y presumiblemente muchas versiones anteriores.
awaitpalabra clave no depende Task<T>. La Taskclase simplemente satisface las cosas de las que depende la awaitpalabra clave (un método llamado etc.). GetAwaiter()
yieldIEnumerator o algo así; tan excitado para await.


