Frage

Ich schreibe eine Grafikanwendung in Java. Schließlich würde Ich mag in einer Skriptsprache bauen, damit die Dinge programmierbar sind. Welche Sprache Bibliothek empfehlen Sie?

Wahrscheinlich Verdächtigen sind:

Weniger wahrscheinlich Kandidaten sind:

Die Zielgruppe ist wahrscheinlich nicht Hardcore-Programmierer, so dass weniger obskure Sprache bevorzugt. Meine Vermutung ist, dass JavaScript akzeptabler von ihnen ist sogar mit seinen Macken, nur weil sie es gesehen haben.

Lua scheint in C / C ++, populär zu sein, aber zumindest LuaJava erfordert zusätzliche DLL / .so, die Bereitstellung kompliziert macht.

EDIT: PhiLho schrieb, dass es eine Java-Implementierung von Lua genannt kahlua .


Verwandte Fragen:

War es hilfreich?

Lösung 6

Ich habe gerade gelesen Steve Yegge das Universal Design Pattern . Der Artikel ist auf viel breitere Thema als nur eingebettete Scripting in Java-Anwendung, aber da der Autor eine Java-Anwendung schreibt das Scripting (mit Jython) ermöglicht, gibt es interessante Punkte, die ich interessant fand.

  

Und JavaScript ist einer der beiden besten   Skriptsprachen auf dem Planeten, in   die korrekteste Sinne des Wortes   „Skriptsprache“: nämlich,   Sprachen, die entworfen wurden,   Insbesondere in größeren eingebettet werden   Host-Systeme und dann verwendet, um   manipulieren oder „Skript“ Objekte in der   Host-System. Dies ist, was JavaScript   zu tun, wurde entwickelt. Es ist vernünftig   klein mit einigen optionalen Erweiterungen,   es hat eine ziemlich enge informelle   Spezifikation, und es hat eine sorgfältig   gestaltete Schnittstelle zum Abrichten   Host-System-Objekte transparent   JavaScript.

     

Im Gegensatz, Perl, Python und Ruby ist   riesige Agglomerationen, die alle versuchen (wie C ++ und   Java) zu sein, die beste Sprache für   jede Aufgabe. Der einzige andere Mainstream   Sprache gibt, die mit konkurriert   JavaScript für Scripting beliebigen   Host-Systeme ist Lua, berühmt für   die Scripting-Sprache der Wahl für   die Spiele-Industrie.

ich mit ihm einverstanden zu JavaScript und Lua auf Eingrenzung.

  

Ohne die Beispiele praktisch, alle kann ich   Sie ist sagen, dass JavaScript / Rhino mit   (Oder Lua, einmal wurde es auf   die JVM) könnte mein Leben gemacht haben   einfacher.

Ich persönlich bevor JavaScript auf Java-Plattform. Die Bevölkerung der Nutzerbasis ist größer. Wie Yegge es ausdrückt, ist es „das am meisten missverstandenen Programmiersprache der Welt“, aber die Menge der Ressource auf der Sprache verfügbar ist ein Plus. Rhino zu einem gereiften Tiere scheint.

Andere Tipps

, wenn die Zielgruppe ist „keine Programmierkenntnisse ....“ wählen jython (Python) ist es leicht zu erlernen ist. (Meine 7-jährige Tochter lernte sie sehr schnell)

Bruce Eckel ein Kapitel mit jython in "in Java-Denken" gemacht.

auf die Gefahr einer "down-Abstimmung" bekommen Python ist einfacher als BASIC: -)

Lua wird geschätzt, unter anderem durch die Einfachheit der Sprache, es leicht zu erlernen machen. LuaJava verwendet die ursprüngliche Implementierung Lua, es komplett zu machen, aber wie Sie es zeigen, vielleicht empfindlich zu installieren. Ich weiß, dass zumindest eine reine Java-Implementierung von Lua: Kahlua . Es ist nicht vollständig (fehlt Koroutine Unterstützung unter anderem, aber man kann ohne sie viel zu tun), aber vielleicht schon verwendbar für Ihr Ziel.
Im Gegensatz zu, sagen, Groovy, sollte es nicht viel Aufwand in Ihre Anwendung ...

Wenn Sie wollten alle gehen Sie Scripting für die Java-Plattform als Script-Engine

Es gibt auch Beanshell, das den Vorteil, dass eine voll genehmigten JSR hat, und so vielleicht eher bleiben, um.

http://www.beanshell.org/

Java 6 bereits Javascript verfügbar als JSR 223 Skriptsprache, aus dem Kasten heraus.

Ich bin derzeit auf der Suche für eine Bibliothek, die ich erlauben, Java-Objekte und Methoden von Lua-Skripten zu verwenden.

Meine erste Idee war LuaJava zu verwenden, aber als ich das auf Linux, Mac und Windows arbeiten will, war ich von der Tatsache abschrecken, dass es eine kompilierte lib neben den Java Sachen verwendet. Nur Windows-vorkompilierte Binaries zur Verfügung steht, und ich bin kein Experte auf dem Mac, so dass ich versuchte, etwas in reinem Java zu finden, und ich fand diese: http://sourceforge.net/projects/luaj

Es scheint, den C-API in der Lua doc beschrieben zu implementieren, sowie die API von LuaJava.

Das Projekt scheint wirklich fortgeschritten, gibt es Beispiele für Swing-Anrufe von Lua (!), Und sie arbeiteten auf meiner Linux-Box. Aber seltsam, Mailinglisten, Foren und Dokumentation sind wirklich spärlich.

Ich werde versuchen, dies auf Windows und Mac auch. Hoffe, dass es funktioniert.

Kahlua erwähnt worden ist, aber es ist nur bei J2ME gezielt, das ist, warum es einige Teile von Lua fehlt. Ich denke, es gibt ein Projekt namens Mochalua, die die gleichen Ziele haben.

LuaJ, auf der anderen Seite, gibt es in zwei Versionen, eine in J2SE gezielt die alles implementiert (Koroutinen, auch), und eine bei J2ME gezielt, die 2 oder 3 Libs fehlt Ich denke, (einschließlich der LuaJava Sachen, die benötigt Reflexion).

Sie sollten erwägen Jacl . Es basiert auf Tcl wurde ursprünglich entwickelt, um eine integrierbare Skriptsprache zu sein. So könnte man argumentieren, es viel besser geeignet ist für diesen Zweck als andere Skriptsprachen, die die Fähigkeit hatten zu gehefteten-on eingebettet werden.

Insbesondere dann, wenn die Zielgruppe „nicht Hardcore-Programmierer“ ist, macht Jacl eine gute Wahl. Intelligente Menschen (und vor allem jene ohne festverdrahtet Programmierung Vorurteile) können leicht die Tcl-Syntax in einem Morgen abholen.

Sie können mit RelProxy - Java, sondern bietet echte und reine Java als Skriptsprache, einschließlich gemacht Skripte mit Java, dank seiner Kompilation on the fly shell. Da das Java "Script" ausgeführt wird, um den Launcher Classloader teilen, die Integration ist einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top