Al leer sobre el caso Google v Oracle, encontré estas preguntas (aparentemente del juez que las preside)
...
¿Se acuerda que lo siguiente es cierto, al menos a partir de 1996?Los siguientes fueron la interfaz 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 . Dejar la ley a los abogados.
Sin embargo, sospecho que hay un poco de historia interesante aquí.
Mi pregunta es (como alguien que hizo primero una codificación Java alrededor de 2001 en la versión 1.3), en la versión 1.0 de Java se requería algo fuera de java.lang
, java.util
y java.io
para compilar un programa Java válido ?
Como ejemplo (usando C # 5.0), await
la palabra clave depende de Task<T>
GetAwaiter()
(entre otras cosas). El compilador no podría funcionar a especificación sin esa clase.
De manera equivalente, hubo funciones de tiempo de ejecución principales (como ClassLoader *) que dependían de otros paquetes?
Admito que pregunto por curiosidad, exactamente lo que es necesario para una Java con un mínimo de viabilidad (el lenguaje, ignorando todos los bits legales que la rodean) es interesante.
* Supongo que ClassLoader era incluso una característica en Java 1.0, es parte de especificación en 7.0 y probablemente muchas versiones anteriores.