|
p:abstract
|
-
BeanShell is a Java scripting language, invented by Patrick Niemeyer. It runs in the Java Runtime Environment (JRE) and utilizes Java's own syntax, in addition to scripting commands and syntax. While BeanShell allows its users to define functions that can be called from within a script, its underpinning philosophy has been to not pollute its syntax with too many extensions and "syntactic sugar", thereby ensuring that code written for a Java compiler can almost always be executed interpretively by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a popular testing and debugging tool.
BeanShell supports scripted objects as simple method closures like those in Perl and JavaScript.
BeanShell is an open source project and has been incorporated into many applications, such as OpenOffice.org, Apache Ant, BEA WebLogic Application Server, jEdit, and many others. BeanShell provides an easy to integrate API. It can also be run in command-line mode or within its own graphical environment. The Java Community Process approved JSR 274, which means BeanShell will eventually become part of the Java platform.
(en)
-
BeanShell is a Java scripting language, invented by Patrick Niemeyer. It runs in the Java Runtime Environment (JRE) and utilizes Java's own syntax, in addition to scripting commands and syntax. While BeanShell allows its users to define functions that can be called from within a script, its underpinning philosophy has been to not pollute its syntax with too many extensions and "syntactic sugar", thereby ensuring that code written for a Java compiler can almost always be executed interpretively by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a popular testing and debugging tool.
BeanShell supports scripted objects as simple method closures like those in Perl and JavaScript.
BeanShell is an open source project and has been incorporated into many applications, such as OpenOffice.org, Apache Ant, BEA WebLogic Application Server, jEdit, and many others. BeanShell provides an easy to integrate API. It can also be run in command-line mode or within its own graphical environment. The Java Community Process approved JSR 274, which means BeanShell will eventually become part of the Java platform."
(en)
-
BeanShell ist eine dynamische Skriptsprache für die Java-VM von Pat Niemeyer. Sie erlaubt es, nahezu unveränderten Java-Code durch einen Interpreter auszuführen. Wie bei Python oder Perl wird der Code dabei vorher in einen Abstract Syntax Tree (AST) übersetzt. BeanShell wird gerne als Sprache für Makros eingesetzt, beispielsweise im Texteditor jEdit.
Neben klassischer Java-Syntax bietet BeanShell einige der für Skriptsprachen typischen Vereinfachungen wie dynamische Typisierung statt statischer Typisierung, globale Variablen und Funktionen, (eingeschränkten) reflexiven Zugriff auf das Programm selbst und ähnliches. Die Syntax ist allerdings stark an die des originalen Java angelehnt, was es für Java-Programmierer leicht macht, zwischen beiden Sprachen zu wechseln oder zu übersetzen. Da BeanShell in der Lage ist, von bestehenden Java-Klassen zu erben oder beliebige Schnittstellen zu implementieren, lässt sie sich gut zusammen mit bestehenden Frameworks und Anwendungen einsetzen.
BeanShell erweitert die Java-Syntax besonders in folgenden zwei Punkten, wodurch eine höhere Produktivität erreicht werden soll.
* Methoden (Funktionen) können selbst wieder Methoden enthalten, und sich selbst als Closure über die Rückgabe von this zum Objekt erheben.
* Eine weitere Besonderheit ist die zusätzlich zur klassenbasierten zur Verfügung stehende Prototyp-basierte Objektorientierung.
Aktuell (28. Mai 2005) ist Version 2.0 beta 4, die Entwicklung geht relativ langsam voran, die Sprache ist daher stabil und ohne größere Fehler. Bisher unterstützt BeanShell nur wenige der syntaktischen Neuerungen in Java 1.5, die Entwickler arbeiten daran, volle Kompatibilität herzustellen.
Ähnliche Ansätze verfolgen die Skriptsprachen Groovy, Jacl für TCL, Rhino für JavaScript, Jython für Python und JRuby für Ruby."
(de)
|