Esta lista de lenguajes JVM comprende lenguajes de programación de computadoras notables que se utilizan para producir software de computadora que se ejecuta en la máquina virtual Java (JVM). Algunos de estos lenguajes son interpretados por un programa Java , y algunos se compilan en código byte de Java y se compilan con JIT durante la ejecución como programas regulares de Java para mejorar el rendimiento.
La JVM se diseñó inicialmente para admitir solo el lenguaje de programación Java. Sin embargo, con el paso del tiempo, se adaptaron o diseñaron incluso más lenguajes para ejecutarse en la plataforma Java .
Idiomas de JVM
Idiomas de alto perfil
A partir de mayo de 2021, según el índice TIOBE [1] de los 100 principales lenguajes de programación, los principales lenguajes de JVM son:
- Java (# 3), un estáticamente mecanografiada orientado a objetos lenguaje
- Groovy (# 14), un lenguaje de programación dinámico (también con escritura estática) y lenguaje de scripting [2]
- Scala (# 32), una orientada a objetos y estáticamente mecanografiada programación funcional idioma [3]
- Kotlin (n. ° 35), un lenguaje de tipo estático de JetBrains , los desarrolladores de IntelliJ IDEA [2] y el lenguaje preferido de Google para Android
- Clojure (entre # 51 a # 100), un dialecto moderno, dinámico y funcional del lenguaje de programación Lisp [2]
Implementaciones JVM de lenguajes existentes
Idioma | Implementaciones de Java |
---|---|
Sintaxis de Arden | Arden2ByteCode |
COBOL | Micro Focus Visual COBOL [4] |
Lenguaje de marcado ColdFusion (CFML) | Adobe ColdFusion Railo Lucee abierto BlueDragon |
Lisp común | Lisp común oso armado [6] |
Cifrar | Neo4j [7] |
Haskell | Eta (lenguaje de programación) |
JavaScript | Rhino Nashorn Graal.js [8] |
Código de bits LLVM | Sulong [9] |
Mercurio | Mercurio (grado Java) |
OCaml | OCaml-Java |
Componente Pascal | Jardines Punto Componente Pascal |
Pascal | MIDletPascal Oxygene |
Raku | Rakudo |
PHP | Quercus [10] [11] JPHP |
Prólogo | JIProlog TuProlog |
Pitón | Jython ZipPy [12] Graal.Python [8] |
R | Renjin FastR [13] |
Rexx | NetRexx |
Rubí | JRuby TruffleRuby [14] |
Esquema | Bigloo Kawa SISC JScheme |
Simula | Simula de código abierto |
Charla | Línea roja [15] |
ML estándar | MLj |
Tcl | Jacl |
Visual Basic | Jabaco [nota 1] |
Nuevos lenguajes con implementaciones de JVM
- Ateji PX , una extensión de Java para una fácil programación en paralelo en multinúcleo, GPU, Grid y Cloud [20]
- Ballerina , un lenguaje de programación para aplicaciones en la nube con tipificación estructural; objetos, servicios, funciones de recursos y oyentes del cliente de red; concurrencia paralela con los trabajadores; construcción de imágen; gestión de la configuración; y comprobación de las manchas. [21]
- BeanShell , un lenguaje de scripting cuya sintaxis es cercana a Java
- EPL (Event Processing Language), un lenguaje de manipulación de datos específico del dominio para analizar y detectar patrones en flujos de eventos cronometrados, que amplía SQL 92 con características orientadas a eventos. Está implementado por Esper : hasta la versión 6, EPL era principalmente un lenguaje interpretado por una biblioteca de Java; desde la versión 7, está compilado en código de bytes JVM.
- Concurnas , 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.
- Ceylon , un competidor de Java de Red Hat [2]
- CFML , ColdFusion Markup Language, más comúnmente conocido como CFML, es un lenguaje de secuencias de comandos para el desarrollo web que se ejecuta en JVM, .NET framework y Google App Engine. [22]
- Quark Framework (CAL), un lenguaje funcional inspirado en Haskell
- E -on-Java, lenguaje de programación orientado a objetos para una informática distribuida segura
- Eta, lenguaje de programación funcional puro, perezoso y fuertemente tipado en el espíritu de Haskell [23]
- Fantom , un lenguaje creado desde la base para ser portátil a través de JVM, .NET Common Language Runtime (CLR) y JavaScript [24] [2]
- Flix , un lenguaje de programación funcional, imperativo y lógico con restricciones de registro de datos de primera clase y un sistema de efectos polimórficos.
- Flujo de Java
- Fortress , un lenguaje diseñado por Sun como sucesor de Fortran, principalmente para computación científica paralela. Oracle se hizo cargo del desarrollo de productos cuando se compró Sun. Oracle luego detuvo el desarrollo en 2012 según el Dr. Dobb.
- Frege , un lenguaje de programación funcional puro y no estricto en el espíritu de Haskell [25]
- Golo , un lenguaje simple, dinámico y de tipado débil para la JVM desarrollado en el Institut national des sciences appliquées de Lyon , Francia, ahora es un proyecto de incubación en la Eclipse Software Foundation. [26] [27] [28]
- Gosu , un lenguaje de sistema de tipos extensible compilado en código de bytes de Java
- Haxe , un lenguaje multiplataforma de tipo estático que se dirige tanto a Java como a JVM.
- Ioke , un lenguaje basado en prototipos que recuerda algo a Io , con similitudes con Ruby , Lisp y Smalltalk
- Gelatina
- Únase a Java , un lenguaje que extiende Java con semántica de cálculo de combinación
- Alegría
- Judoscript
- Mirah , un lenguaje personalizable con inferencia de tipos y una sintaxis muy inspirada en Ruby [29] [30]
- NetLogo , un lenguaje multiagente
- Noop , un lenguaje construido con la capacidad de prueba como un enfoque principal
- Pizza , un superconjunto de Java con punteros de función y tipos de datos algebraicos
- Nueces
- Procesamiento , un lenguaje y marco de visualización y animación basado en Java con una sintaxis similar a Java
- Prompto , un lenguaje "diseñado para crear aplicaciones empresariales en la nube". Es parte de la plataforma homónima para diseñar aplicaciones comerciales directamente en la nube. El lenguaje Prompto incluye tres "dialectos": Engly, Monty y Objy. Engly "imita el inglés tanto como sea posible", Monty "intenta seguir en la mayor medida posible la sintaxis del lenguaje Python 3" y Objy "intenta seguir en la medida de lo posible la sintaxis de los lenguajes de programación orientada a objetos como C ++, Java o C # ". Los tres dialectos se traducen a la perfección entre sí. [31]
- RascalMPL , un metalenguaje de programación independiente (parametrizado) de origen y de destino
- Mientras
- X10 , un lenguaje diseñado por IBM, que presenta tipos restringidos y un enfoque en la concurrencia y la distribución [2]
- Xtend , un lenguaje de programación imperativo , funcional y orientado a objetos creado por la fundación Eclipse, que presenta una estrecha interoperabilidad de Java, con un enfoque en métodos de extensión y lambdas, y herramientas enriquecidas.
- Yeti , un lenguaje de programación funcional de estilo ML [32]
- Yirgacheffe , un lenguaje que tiene como objetivo simplificar y ampliar el paradigma orientado a objetos. [33]
- Yoix , lenguaje de programación dinámico interpretado de propósito general, no orientado a objetos
Comparación de estos idiomas
Idioma | Primer lanzamiento | Lanzamiento estable | Último lanzamiento |
---|---|---|---|
Bailarina | 2018 | 2019 | 2020 |
BeanShell | 1999 | 2013 | 2016 |
Eclipse Ceilán | 2011 | 2017 | 2017 |
CFML | 1995 | 2018 | 2018 |
Marco de Quark | 2011 | 2018 | |
mi | 1997 | ||
Fantom | 2011 | 2017 | |
Fortaleza | 2006 | 2011 | 2017 |
Frege | |||
Mirah | 2016 | ||
Xtend | 2011 | 2017 |
Ver también
- Máquina Da Vinci
- Máquina virtual Java # lenguajes JVM
- Lista de lenguajes CLI , siguiendo la especificación CLI, respuesta de Microsoft a JVM
Notas
- ^ [16] [17] [18] es un IDE de software gratuito en pruebas beta desde 2009, con untiempo de ejecución del framework Jabaco decódigo parcialmente abierto [19] . Jabaco compila la fuente de sintaxis de VB 6 en el código de bytes de Java.
Referencias
- ^ "Índice TIOBE para mayo de 2021 | TIOBE - La empresa de calidad de software" . www.tiobe.com . Consultado el 5 de mayo de 2021 .
- ^ a b c d e f Raoul-Gabriel Urma (1 de julio de 2014). "Idiomas alternativos para la JVM. Una mirada a ocho características de ocho idiomas de la JVM" . oracle.com . Consultado el 13 de marzo de 2019 .
- ^ Wampler, Dean (15 de enero de 2009). "Adopción de nuevos lenguajes JVM en la empresa (actualizado)" . objectmentor.com. Archivado desde el original el 22 de mayo de 2009 . Consultado el 18 de junio de 2009 .
- ^ "Folleto Visual COBOL" (PDF) . Consultado el 5 de abril de 2017 .
- ^ "Hoja de datos de isCOBOL Evolve" (PDF) . Consultado el 17 de mayo de 2019 .
- ^ Lisp común del oso armado
- ^ "Nuevo en Neo4j: el lanzamiento de Neo4j 2.3.0 Milestone 2 ya está aquí" . Consultado el 20 de febrero de 2017 .
- ^ a b "Oracle Labs GraalVM: lenguajes de programación y descripción general de tiempos de ejecución" . www.oracle.com . Consultado el 12 de abril de 2018 .
- ^ "graalvm / sulong" . GitHub . Consultado el 12 de abril de 2018 .
- ^ "Presentamos Quercus, un PHP basado en Java" . Consultado el 2 de julio de 2015 .
- ^ "Ejecución de PHP con Quercus en Sun Java System Web Server" . Consultado el 2 de julio de 2015 .
- ^ "ssllab / ZipPy - Bitbucket" . bitbucket.org . Consultado el 12 de abril de 2018 .
- ^ "oráculo / fastr" . GitHub . Consultado el 12 de abril de 2018 .
- ^ "oráculo / truffleruby" . GitHub . Consultado el 12 de abril de 2018 .
- ^ "Redline Smalltalk" . Consultado el 2 de septiembre de 2018 .
- ^ "Entrada de Jabaco en la sección Conceptos básicos de Mindteq.com" . Consultado el 2 de julio de 2015 .]
- ^ "Artículo sobre Jabaco en la publicación alemana Pro-Linux" . Consultado el 2 de julio de 2015 .]
- ^ "Basic conoce Java" . Consultado el 26 de febrero de 2015 .
- ^ "Marco" . Consultado el 26 de febrero de 2015 .
- ^ "Ateji PX: programación en paralelo Java simplificada" . Ateji . Archivado desde el original el 24 de febrero de 2014 . Consultado el 1 de marzo de 2014 .
- ^ "Anunciando a Ballerina 1.0" . La bailarina . Consultado el 8 de febrero de 2020 .
- ^ CFML , un lenguaje de secuencias de comandos compilado en Java, utilizado en losservidores de aplicaciones ColdFusion o Railo
- ^ "El lenguaje de programación Eta" . Consultado el 10 de mayo de 2017 .
- ^ "Lenguaje de programación Fantom" . Fantom . Consultado el 1 de marzo de 2014 .
- ^ "Frege" . Consultado el 1 de marzo de 2014 .
- ^ "Oracle.com - Golo - Un lenguaje dinámico ligero para la JVM" . Archivado desde el original el 3 de julio de 2015 . Consultado el 2 de julio de 2015 .]
- ^ "Golo nominado a los premios JAX 2014" . Consultado el 2 de julio de 2015 .]
- ^ "Entrada de Golo en los JAX Awards 2014" . Consultado el 2 de julio de 2015 .]
- ^ "El lenguaje de programación Mirah" . GitHub . Consultado el 1 de marzo de 2014 .
- ^ "Mirah" . Consultado el 1 de marzo de 2014 .
- ^ "La Plataforma Prompto" . Consultado el 14 de septiembre de 2019 .
- ^ "Lenguaje de programación Yeti" . Consultado el 5 de mayo de 2020 .
- ^ "Yirgacheffe" . Consultado el 9 de enero de 2020 .