BeanShell
BeanShell é uma linguagem de script dinâmica para Java - VM de Pat Niemeyer . Ele permite que o código Java praticamente inalterado seja executado por um interpretador . Tal como acontece com Python ou Perl , o código é traduzido em uma árvore de sintaxe abstrata (AST) de antemão . BeanShell é frequentemente usado como uma linguagem para macros , por exemplo, no editor de texto jEdit , no Apache JMeter e no Apache ANT .
Além da sintaxe Java clássica , BeanShell oferece algumas das simplificações típicas de linguagens de script, como tipagem dinâmica em vez de tipagem estática , variáveis e funções globais , acesso (limitado) reflexivo ao próprio programa e similares. A sintaxe é muito semelhante à do Java original, o que torna mais fácil para os programadores Java alternar entre as duas linguagens ou traduzir. Como o BeanShell é capaz de herdar de classes Java existentes ou implementar qualquer interface , ele pode ser bem usado junto com estruturas e aplicativos existentes .
BeanShell estende a sintaxe Java especialmente nos dois pontos a seguir, por meio dos quais uma maior produtividade deve ser alcançada.
-
Os próprios métodos (funções) podem conter métodos e se apresentar como um fechamento por meio do retorno de
thispara o objeto . - Outro recurso especial é a orientação a objetos baseada em protótipo , que está disponível além da baseada em classes .
O código foi transferido para a Fundação Apache, mas não atingiu o status de projeto lá.
Da versão 2.0b6 em 5 de fevereiro de 2016, nenhuma versão foi lançada. No entanto, a linguagem é estável. Até agora, o BeanShell suporta apenas algumas das inovações sintáticas em Java 1.5.
Um spin-off com o nome BeanShell2 ocorreu em maio de 2007 no Google Code . O projeto lançou uma série de correções e melhorias para o BeanShell. Há esforços para reunir as duas versões novamente.
Alternativas para BeanShell são Groovy , Jacl para Tcl , Rhino para JavaScript , Jython para Python e JRuby para Ruby , em que Groovy, Jython e JRuby, em contraste com BeanShell, são linguagens de propósito geral e linguagens de script. Como o BeanShell, a sintaxe Groovy é compatível com Java, mas também oferece extensões como interpolação de string ou suporte DSL .
Links da web
- Página inicial (inglês)
- Código fonte no Github
- JSR 274 quer padronizar BeanShell
- BeanShell2 se dividiu depois que o trabalho no projeto principal foi interrompido, ou Beanshell2 só suporta acesso de leitura desde o Google Code
- JEP 222: jshell (inglês)