2010-08-29 14 views
6

Ich habe vor kurzem begonnen, Python zu lernen. Noch nicht gewagt in Codierung. Während einer meiner Lernsitzungen kam ich über den Begriff Jython.Real-World-Jython-Anwendungen

Ich googelte es & bekam einige Informationen.

Ich würde gerne wissen, ob jemand ein Real-World-Programm mit Jython implementiert hat.

+1

+1 weil ich gesehen habe, dass dein Rep war 'int (1000 * 2/3)' und ich habe versucht, deine Seele zu retten ;-) –

Antwort

10

Die meiste Zeit wird Jython nicht direkt verwendet, um vollständige read-world-Programme zu schreiben, aber viele Programme binden Jython tatsächlich ein, um es als Skriptsprache zu verwenden.

Die offizielle Jython Website eine Liste von Projekten gibt, einige in Jython geschrieben, andere Jython für Scripting: http://wiki.python.org/jython/JythonUsers

+1

Danke. War nur neugierig zu wissen, ob Sie irgendwelche implementiert haben? – ykombinator

+1

Ich habe Jython-Programme nicht selbst geschrieben, aber ich hatte die Möglichkeit, mit einigen Leuten zu sprechen, die Jython als Skriptsprache in Java-basierten Anwendungen benutzten. –

+0

Wahrscheinlich stimmt es, dass es hauptsächlich für das Skripting in einer Java-Umgebung verwendet wird, aber ich glaube nicht, dass es viel Grund gibt, Jython nicht über Java für irgendeinen Zweck zu verwenden. Natürlich kommt es auf das Projekt an, aber ich würde sagen, es ist weitgehend persönliche Präferenz. –

5

Ich schreibe ein verwendet vollständige Anwendung in Jython im Moment und würde es sehr empfehlen. Es ist sehr praktisch, alle Java-Bibliotheken zur Verfügung zu haben, und die Syntax- und Sprachfunktionen von Python machen tatsächlich die Verwendung einiger von ihnen einfacher als in Java (ich spreche hier hauptsächlich von Swing).

Auschecken the chapter on GUI Applications from the Jython book. Es werden viele Vergleiche wie "Sieh dir all diesen Java-Code an, und schaue es dir jetzt an, reduziert auf Python-Code der halben Länge!".

Die einzigen Einschränkungen ich gefunden habe, sind:

  • Jython Entwicklung leicht hinter Python laufen neigt, die lästig sein kann, wenn Sie eine coole Art, etwas zu tun, in Python finden, nur zu entdecken, es nicht unterstützt wird in der aktuellen Jython-Version.
  • Gelegentlich haben Sie möglicherweise Schluckauf mit der Schnittstelle zwischen Python und Java (ich habe ein paar ungelöste Probleme here und here, obwohl es immer Umgehungslösungen für diese Art von Sache gibt).
  • Die Verteilung ist nicht so einfach wie es sein könnte, aber sobald Sie herausfinden, wie es geht, ist es ziemlich schmerzlos. Ich empfehle die Methode here. Es besteht im Wesentlichen aus:
    1. Explodieren Sie jython.jar und fügen Sie Ihre eigenen Module hinzu.
    2. Schreiben und kompilieren einer kleinen Java-Klasse, die einen Python-Interpreter erstellt und Ihre Python-Module lädt.
    3. Erstellen einer ausführbaren .jar-Datei, bestehend aus den Modulen jython.jar, Ihren eigenen Python-Modulen und der Java-Klasse.
+0

Nur aus Neugierde: Haben Sie etwas Besonderes an Jythons Speicherbedarf (d. H. Wie man reduziert) gemacht? Für mich erfordert eine super-einfache "Hello World" -Anwendung mit Swing (siehe den Link GUI-Anwendungen)> 80 Megabyte ... Das finde ich ziemlich extrem. – FriendFX

+0

@FriendFX Um ehrlich zu sein, habe ich nie die Speicher überprüft, die verwendet wurde, also kann ich nicht wirklich kommentieren. Sie können feststellen, dass die überwiegende Mehrheit der 80 MB nur von Java/Jython verursacht wird, und dass es nicht viel zunimmt, wenn Ihr Programm größer wird. Abhängig von Ihren Zielmaschinen/Plattformen/Benutzern ist dies möglicherweise kein Problem. –

2

WebSphere und WebLogic verwenden Sie es als Standard-Scripting-Engine für administrative Zwecke.

Viele andere Oracle-Produkte liefern es als Teil ihres "oracle_commons" -Moduls (Oracle Universal Installer, Oracle HTTP Server usw.). Es wird hauptsächlich Version 2.2 verwendet, die etwas alt und klobig ist.

2

Jython scheint wirklich für Abhängigkeitsinjektion.

Sie kennen die lästigen Variablen Sie Ihr Programm geben, wie

  • Dateisystempfade
  • Servernamen
  • Ports

Jython bietet eine sehr schöne Art und Weise die der Injektion Variablen, indem Sie sie in ein Skript einfügen. Es funktioniert genauso gut für das Injizieren von Java-Abhängigkeiten.

+0

interessant. Könnten Sie mehr über die Abhängigkeitsinjektion über Jython herausfinden? – trinth