A JVM será estendida para lidar com genéricos?
-
13-09-2020 - |
Pergunta
O que você acha? A JVM receberá suporte para genéricos?
Muito provavelmente exigiria alterações substanciais na JVM, mas também para o formato de arquivo de classe, Mas línguas que funcionam na VM se beneficiaria muito disso.
edição: A linguagem Java realmente suporta algum tipo de genéricos como um recurso de tempo de compilação, que adiciona algumas lançadas ao bytecode, que as pessoas tiveram que adicionar manualmente antes.
A decisão de não introduzir alterações na JVM ou a especificação do arquivo de classe foi bem compreendida nesses momentos, porque eles não queriam quebrar a compatibilidade com o atraso e o Java foi a única linguagem significativa para a JVM nos dias de hoje. .
Embora esta decisão tenha sido apropriada para a linguagem Java, reduziu significativamente a quantidade de liberdade que outras linguagens precisam escolher como elas querem implementar os genéricos na VM.
Considerando que o Sol / Oracle proclamou fazer a JVM um lugar mais amigável para idiomas alternativos, eles realmente farão o que prometeram ou consideram que a baixa adição de custo de "invocamedynamic" é suficiente?
Solução
Na minha opinião, é improvável.
seria simplesmente perturbador demais para aplicar essas alterações na linguagem Java. A compatibilidade com lingüística e tempo de execução com dois modelos diferentes de genéricos seria um pesadelo para os designers.
e sem java para conduzir mudanças para a JVM, é difícil ver como a Oracle poderia justificar fazer o trabalho necessário.
As únicas possibilidades que vejo são:
-
Oracle decide desenvolver uma linguagem sucessora para Java (que não é compatível com os genéricos, os fechamentos e um monte de coisas melhores. Que seria uma decisão de negócios realmente corajosa, e eu não acho que a Oracle é capaz de fazê-lo.
-
Um monte de outras pessoas / empresas recebe junto e garfo a especificação JVM e a faixa de código. Isso também é um movimento corajoso para fazer.
Eu não acho que é provável que o Oracle recursos uma mudança importante para a JVM apenas para apoiar os idiomas que eles não tinham interesse comercial. Estamos falando daqui oracle ... onde os tipos de negócios têm um maior desempenho controle sobre o que os tipos de engenharia chegam a fazer do que nos dias de sol moribundos. (Ei ... Poderíamos começar um tema de Jack Vance aqui: -)