www.wikidata.de-de.nina.az
BeanShell ist eine dynamische Skriptsprache fur die Java VM von Pat Niemeyer Sie erlaubt es nahezu unveranderten Java Code durch einen Interpreter auszufuhren Wie bei Python oder Perl wird der Code dabei vorher in einen Abstract Syntax Tree AST ubersetzt BeanShell wird gerne als Sprache fur Makros eingesetzt beispielsweise im Texteditor jEdit in Apache JMeter und in Apache ANT Neben klassischer Java Syntax bietet BeanShell einige der fur Skriptsprachen typischen Vereinfachungen wie dynamische Typisierung statt statischer Typisierung globale Variablen und Funktionen eingeschrankten reflexiven Zugriff auf das Programm selbst und Ahnliches Die Syntax ist allerdings stark an die des originalen Java angelehnt was es fur Java Programmierer leicht macht zwischen beiden Sprachen zu wechseln oder zu ubersetzen Da BeanShell in der Lage ist von bestehenden Java Klassen zu erben oder beliebige Schnittstellen zu implementieren lasst sie sich gut zusammen mit bestehenden Frameworks und Anwendungen einsetzen BeanShell erweitert die Java Syntax besonders in folgenden zwei Punkten wodurch eine hohere Produktivitat erreicht werden soll Methoden Funktionen konnen selbst wieder Methoden enthalten und sich selbst als Closure uber die Ruckgabe von this zum Objekt erheben Eine weitere Besonderheit ist die zusatzlich zur klassenbasierten zur Verfugung stehende Prototyp basierte Objektorientierung Der Code wurde an die Apache Foundation ubertragen erreichte dort aber nicht den Projekt Status Nach Version 2 0b6 vom 5 Februar 2016 wurde am 22 Dezember 2020 Version 2 1 0 veroffentlicht Die Sprache ist jedoch stabil Bisher unterstutzt BeanShell nur wenige der syntaktischen Neuerungen in Java 1 5 Eine Abspaltung mit dem Namen BeanShell2 erfolgte im Mai 2007 auf Google Code Das Projekt hat eine Reihe von Korrekturen und Verbesserungen an BeanShell veroffentlicht Es gibt Bestrebungen die beiden Versionen wieder zusammenzufuhren Alternativen zu BeanShell sind Groovy Jacl fur Tcl Rhino fur JavaScript Jython fur Python und JRuby fur Ruby wobei Groovy Jython und JRuby im Unterschied zu BeanShell sowohl General Purpose Sprachen als auch Skriptsprachen sind Die Groovy Syntax ist dabei wie BeanShell Java kompatibel bietet daruber hinaus aber Erweiterungen wie String Interpolation oder DSL Unterstutzung Weblinks BearbeitenHomepage englisch Sourcecode auf Github JSR 274 will BeanShell standardisieren englisch BeanShell2 Abspaltung nachdem die Arbeit am Hauptprojekt eingestellt wurde bzw Beanshell2 seit Google Code nur noch lesenden Zugriff unterstutzt JEP 222 jshell englisch Abgerufen von https de wikipedia org w index php title BeanShell amp oldid 224870157