Un lenguaje de programación dependiente de la JVM es aquel que permite:
- Ejecución en la JVM.
- Independencia de la plataforma.
- Gestión automática de memoria.
- Soporte para múltiples paradigmas.
- Interoperabilidad.
- Amplia biblioteca estándar.
- Compilación a bytecode.
- Soporte para concurrencia.
Es decir, un programa escrito en un lenguaje de programación dependiente de la JVM podrá ser:
- Ejecutado en cualquier sistema operativo que cuente con una JVM, sin la necesidad de ser modificado.
- Su memoria se autogestionará gracias a un recolector de basura.
- Se ejecutará en un entorno seguro, gracias a su modelo de seguridad.
- Podrá implementar múltiples paradigmas de programación (estructurada, funcional orientada a objetos, etc.).
- Puede emplear librerías creadas en otros lenguajes dependientes, lo que se se conoce como interoperabilidad.
- El bytecode generado por la compilación es un código optimizado (optimización JIT), lo que mejora su ejecución y rendimiento.
- Permitir el uso de hilos.
- Etc.
He aquí una lista de los lenguajes de programación dependientes de la JVM más conocidos, sin tomar en cuenta a Java.
Ballerina
Es un lenguaje de programación de código abierto diseñado por WSO2, enfocado en aplicaciones nativas de la nube y la integración de servicios distribuidos.
https://ballerina.io/Ceylon
Fue un lenguaje de programación de propósito general con una sintaxis similar a la de Java y C#. Imperativo, estático, estructurado en bloques, orientado a objetos y de orden superior.
https://projects.eclipse.org/projects/technology.ceylonActualmente se encuentra congelado. Una lástima, se esperaba mucho de este lenguaje. Al punto de que se creyó, realmente, como el verdadero sucesor de Java.
Concurnas
Es un lenguaje de programación JVM de código abierto diseñado para construir sistemas concurrentes, distribuidos y paralelos confiables, escalables y de alto rendimiento.
https://concurnas.com/Clojure
Es un lenguaje de programación robusto, práctico y rápido con un conjunto de características útiles que juntas forman una herramienta simple, coherente y poderosa. Se basa en Lisp.
https://clojure.org/Gosu
Un lenguaje JVM simple, muy simple.
https://gosu-lang.github.io/Groovy
Es un lenguaje multifacético para la JVM. Su objetivo es proporcionar una experiencia y sintaxis similares a las de Java, pero con funciones de productividad adicionales.
https://groovy-lang.org/Haxe
Es un lenguaje de programación estrictamente tipado, de alto nivel y código abierto con un compilador cruzado de rápida optimización.
https://haxe.org/Jabaco
Es un lenguaje de programación dependiente de la JVM que usa como base a Visual Basic.
https://www.jabaco.org/JRuby
Es una implementación de Ruby en Java.
https://www.jruby.org/Jython
Se considera como una implementación de Python en Java.
https://www.jython.org/Kotlin
Es un lenguaje de programación orientado a objetos multiplataforma, estáticamente tipado, de alto nivel y propósito general con inferencia de tipos. Actualmente muy usado para REST APIs y desarrollo de aplicaciones para móviles.
https://kotlinlang.org/Scala
Es un lenguaje de programación multi-paradigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros.
https://www.scala-lang.org/Existen más lenguajes, sin embargo la lista anterior solo incluye los más conocidos.
Enlaces:
https://web.mit.edu/ceylon_v1.3.3/ceylon-1.3.3/doc/en/spec/html_single/https://codemonkeyjunior.blogspot.com/2024/12/concurnas-un-lenguaje-de-programacion.html
https://alquimistadecodigo.blogspot.com/2024/11/lenguajes-jvm-clojure-groovy.html