Lendo sobre o caso Google x Oracle, deparei-me com estas perguntas (aparentemente do juiz presidente)
...
Concorda-se que o seguinte seja verdade, pelo menos a partir de 1996?A seguir, foram apresentadas as principais interfaces de programação de aplicativos Java: java.lang, java.util e java.io.
A linguagem de programação Java se refere ou requer algum método, classe ou pacote fora dos três acima?
...
fonte: Groklaw
Obviamente, existem muitas ramificações legais, Google e Oracle provavelmente discordam em alguns pontos, e eu não me importo . Deixe a lei para os advogados.
No entanto, suspeito que haja um pouco de história interessante aqui.
A minha pergunta é (como alguém que fez primeiro qualquer codificação Java por volta de 2001 na versão 1.3), na versão 1.0 do Java foi nada requerida fora de java.lang, java.utile java.iopara compilar um programa Java válido?
Como exemplo (usando o C # 5.0), a awaitpalavra-chave depende (entre outras coisas). O compilador não poderia funcionar para especificar sem essa classe.Task<T>GetAwaiter()
Equivalentemente, havia algum recurso principal de tempo de execução (como ClassLoader *) que dependia de outros pacotes?
Admito que pergunto por curiosidade, exatamente o que é necessário para o Java minimamente viável (a linguagem, ignorando todos os bits legais em torno dela) é interessante.
* Suponho que o ClassLoader tenha sido um recurso do Java 1.0, ele faz parte das especificações do 7.0 e presumivelmente muitas versões anteriores.
awaitpalavra - chave não depende Task<T>. A Taskclasse só acontece para satisfazer as coisas que a awaitpalavra-chave que dependem (um método chamado GetAwaiter()etc).
yieldIEnumerator ou algo assim; tão animado para await.


