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.util
e java.io
para compilar um programa Java válido?
Como exemplo (usando o C # 5.0), a await
palavra-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.
await
palavra - chave não depende Task<T>
. A Task
classe só acontece para satisfazer as coisas que a await
palavra-chave que dependem (um método chamado GetAwaiter()
etc).
yield
IEnumerator ou algo assim; tão animado para await
.