Pregunta

¿Qué piensas? ¿Recibirá el JVM alguna vez para los genéricos?

Es probable que no solo requiera cambios sustanciales en el JVM, sino también al formato de archivo de clase, Pero las lenguas que se ejecutan en la VM se beneficiarían enormemente de ella.

Editar: El idioma Java en realidad admite algún tipo de genéricos como una función de tiempo de compilación, que agrega algunos moldes al código byteCode, que las personas tuvieron que agregar manualmente antes.

La decisión de no introducir cambios en el JVM o la especificación del archivo de clase se entendió bien en estos momentos, ya que no querían romper la compatibilidad hacia atrás y Java era el único idioma significativo para el JVM en estos días.

Si bien esta decisión podría haber sido apropiada para el idioma de Java, ha reducido significativamente la cantidad de libertad que otros idiomas tienen que elegir cómo quieren implementar los genéricos en la máquina virtual.

Considerando que Sun / Oracle ha proclamado hacer que el JVM sea un lugar más amigable para los idiomas alternativos, ¿realmente harán lo que prometieron o considerar que la adición de bajo costo de "invocante" es suficiente?

¿Fue útil?

Solución

En mi opinión, es poco probable.

Simplemente sería demasiado perturbador para aplicar estos cambios en el idioma Java. La compatibilidad lingüística y del tiempo de ejecución hacia atrás con dos modelos diferentes de genéricos serían una pesadilla para los diseñadores.

y sin, Java para conducir cambios en el JVM, es difícil ver cómo podría Oráculo o podría justificar hacer el trabajo requerido.

Las únicas posibilidades que veo son:

  • Oracle decide desarrollar un lenguaje sucesor a Java (que no es compatible con el revés) que hace mejor los genéricos, los cierres y un montón de cosas. Esa sería una decisión de negocios realmente valiente, y no creo que Oracle sea capaz de hacerlo.

  • Un montón de otras personas / compañías se reúnen y tenga la especificación JVM y la base de código. Eso también es un movimiento valiente para hacer.

No creo que sea probable que Oracle sea un cambio importante en el JVM solo para apoyar los idiomas en los que no tenían un interés comercial. Estamos hablando de aquí Oracle ... donde los tipos de negocios tienen mucho más apretado Control sobre lo que los tipos de ingeniería pueden hacer que en los días del Sol moribundo. (Oye ... Podríamos comenzar todo un tema de Jack Vance yendo aquí: -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top