Los idiomas modernos y la JVM [duplicado]

7

Muchos lenguajes de programación modernos (Scala, Erlang, Clojure, etc.) están dirigidos a la JVM. ¿Cuáles son las principales razones detrás de esa decisión?

  • ¿La madurez de JVM?
  • ¿Portabilidad?
  • ¿Porque JVM simplemente existe y los diseñadores de idiomas no estaban dispuestos a escribir una nueva máquina virtual / intérprete?
pregunta sakisk 05.10.2011 - 20:01

5 respuestas

9

Erlang es un lenguaje independiente, pero se está trabajando en Erjang que está dirigido a la JVM. Tienes razón en que Scala y Clojure apuntan a la JVM, y también hay versiones de Ruby y Python que apuntan a la JVM (JRuby, Jython).

Sí, la JVM es una plataforma muy madura y las JVM modernas son capaces de optimizar el código y compilarlo a pedido al código nativo del host para un mayor rendimiento.

Sí, portabilidad. Scala, Clojure, etc. compilados pueden empaquetarse utilizando herramientas estándar y distribuirse a cualquier sistema que tenga una JVM (de un nivel de versión adecuado).

Sí, la JVM significa que los nuevos idiomas "solo" tienen que escribir un compilador a bytecode (y cualquier biblioteca de soporte que quieran proporcionar). No tienen que escribir un nuevo tiempo de ejecución (que es lo que Erlang, Ruby, Python, JavaScript, etc. han hecho en el pasado).

Pero creo que se ha perdido uno de los mayores beneficios de la JVM: el enorme ecosistema de bibliotecas: tanto la biblioteca estándar de Java como la amplia gama de bibliotecas de terceros son accesibles a cualquier idioma que se dirige a la JVM.

    
respondido por el Sean Corfield 05.10.2011 - 20:25
9

Yo diría que es la opción del 10% (a), la opción del 70% (b) y la opción del 20% (c).

Escribir una máquina virtual confiable es difícil . Es una gran parte de la razón por la que Perl6 llegó 10 años tarde, se ejecuta en una máquina virtual basada en registro, a diferencia de las comunes, y tuvo que escribirse esencialmente desde cero. Además, puede aprovechar no solo la máquina virtual, sino también las bibliotecas estándar, que son enormes en Java.

Pero el factor más importante es que probablemente ya se encuentra en todas las plataformas concebibles: el competidor directo .NET es, en la práctica, solo para Windows. Y cuando ya ha decidido no hacer su propia máquina virtual, reutilizar la que está más disponible es una obviedad.

    
respondido por el Kilian Foth 05.10.2011 - 20:20
2

Una nota histórica interesante es que Martin Odersky, el creador de Scala, también fue el creador de un lenguaje de corta duración llamado Pizza, que fue uno de los primeros lenguajes no Java en apuntar a la JVM. Su implementación de genéricos se incorporó finalmente en Java 5. Puede leer su entrevista en los orígenes de scala para obtener una idea de por qué le gusta apuntar a la JVM.

    
respondido por el jiggy 05.10.2011 - 20:44
0

Olvidaste agregar otra razón:

  • Es lo que saben los diseñadores de idiomas.

Se están realizando en Java partes significativas de la educación (y, como resultado, una experiencia laboral temprana) para los posibles diseñadores de idiomas. Consulte, por ejemplo, el historial de Wikipedia para Scala . A medida que más y más desarrolladores se están moviendo hacia el uso de Javascript y su VM, verá que en esa máquina virtual se ejecutan nuevos lenguajes.

    
respondido por el blueberryfields 05.10.2011 - 20:26
0

Mis estimaciones:

  • 20% de vencimiento de JVM
  • 50% de portabilidad, especialmente de todas las bibliotecas Java ya disponibles para la JVM
  • 30% Porque JVM simplemente existe, y los diseñadores de lenguaje no estaban dispuestos no tuvieron tiempo para escribir una nueva VM / intérprete.
respondido por el DaveFar 05.10.2011 - 23:21

Lea otras preguntas en las etiquetas