BeanShell
BeanShell es un lenguaje de scripting dinámico para Java - VM de Pat Niemeyer . Permite que un intérprete ejecute código Java prácticamente sin cambios . Al igual que con Python o Perl , el código se traduce de antemano a un árbol de sintaxis abstracta (AST). BeanShell se usa a menudo como lenguaje para macros , por ejemplo, en el editor de texto jEdit , en Apache JMeter y en Apache ANT .
Además de la sintaxis clásica de Java , BeanShell ofrece algunas de las simplificaciones típicas de los lenguajes de scripting, como la escritura dinámica en lugar de la escritura estática , variables y funciones globales , acceso reflexivo (limitado) al programa en sí y similares. La sintaxis es muy similar a la del Java original, lo que facilita a los programadores de Java cambiar entre los dos lenguajes o traducir. Dado que BeanShell puede heredar de clases Java existentes o implementar cualquier interfaz , puede usarse bien junto con marcos y aplicaciones existentes .
BeanShell extiende la sintaxis de Java especialmente en los dos puntos siguientes, por lo que se debe lograr una mayor productividad.
-
Los métodos (funciones) pueden contener métodos por sí mismos y presentarse como cierre mediante el retorno
thisal objeto . - Otra característica especial es la orientación a objetos basada en prototipos que está disponible además de la basada en clases .
El código se transfirió a la Fundación Apache, pero no alcanzó el estado de proyecto allí.
Desde la versión 2.0b6 del 5 de febrero de 2016, no se lanzó ninguna versión. Sin embargo, el idioma es estable. Hasta ahora, BeanShell admite solo algunas de las innovaciones sintácticas en Java 1.5.
Un spin-off con el nombre BeanShell2 tuvo lugar en mayo de 2007 en Google Code . El proyecto ha lanzado una serie de correcciones y mejoras a BeanShell. Hay esfuerzos para unir las dos versiones nuevamente.
Las alternativas a BeanShell son Groovy , Jacl para Tcl , Rhino para JavaScript , Jython para Python y JRuby para Ruby , donde Groovy, Jython y JRuby, en contraste con BeanShell, son lenguajes de propósito general y lenguajes de scripting. La sintaxis Groovy, como BeanShell, es compatible con Java, pero también ofrece extensiones como interpolación de cadenas o soporte DSL .
enlaces web
- Página de inicio (inglés)
- Código fuente en Github
- JSR 274 quiere estandarizar BeanShell
- BeanShell2 se dividió después de que se detuviera el trabajo en el proyecto principal, o Beanshell2 solo admite acceso de lectura desde Google Code
- JEP 222: jshell (inglés)