BeanShell
BeanShell è un linguaggio di scripting dinamico per Java - VM di Pat Niemeyer . Consente a un interprete di eseguire codice Java praticamente invariato . Come con Python o Perl , il codice viene prima tradotto in un Abstract Syntax Tree (AST). BeanShell viene spesso utilizzato come linguaggio per le macro , ad esempio nell'editor di testo jEdit , in Apache JMeter e in Apache ANT .
Oltre alla classica sintassi Java , BeanShell offre alcune delle semplificazioni tipiche dei linguaggi di scripting, come la digitazione dinamica invece della digitazione statica , le variabili e le funzioni globali, l' accesso riflessivo (limitato) al programma stesso e simili. La sintassi è molto simile a quella del Java originale, il che rende facile per i programmatori Java passare da una lingua all'altra o tradurre. Poiché BeanShell è in grado di ereditare da classi Java esistenti o di implementare qualsiasi interfaccia , può essere utilizzato bene insieme a framework e applicazioni esistenti .
BeanShell estende la sintassi Java soprattutto nei seguenti due punti, per cui si vuole ottenere una maggiore produttività.
-
Metodi (funzioni) possono essi stessi contenere metodi e aumentare stessi come chiusura tramite il ritorno di
thisal dell'oggetto . - Un'altra caratteristica speciale è l' orientamento agli oggetti basato su prototipi che è disponibile in aggiunta a quello basato su classi .
Il codice è stato trasferito alla Fondazione Apache, ma lì non ha raggiunto lo stato del progetto.
Dalla versione 2.0b6 del 5 febbraio 2016, non è stata rilasciata alcuna versione. Tuttavia, la lingua è stabile. Finora, BeanShell supporta solo alcune delle innovazioni sintattiche in Java 1.5.
Uno spin-off con il nome BeanShell2 ha avuto luogo nel maggio 2007 su Google Code . Il progetto ha rilasciato una serie di correzioni e miglioramenti a BeanShell. Ci sono sforzi per riunire di nuovo le due versioni.
Le alternative a BeanShell sono Groovy , Jacl per Tcl , Rhino per JavaScript , Jython per Python e JRuby per Ruby , dove Groovy, Jython e JRuby, a differenza di BeanShell, sono entrambi linguaggi di uso generale e linguaggi di scripting. La sintassi Groovy, come BeanShell, è compatibile con Java, ma offre anche estensioni come l' interpolazione di stringhe o il supporto DSL .
link internet
- Homepage (inglese)
- Codice sorgente su GitHub
- JSR 274 vuole standardizzare BeanShell
- BeanShell2 si è diviso dopo che il lavoro sul progetto principale è stato interrotto oppure Beanshell2 supporta solo l'accesso in lettura a partire da Google Code
- JEP 222: jshell (inglese)