2010-08-29 15 views
6

Recentemente ho iniziato a imparare Python. Non ancora avventurato nella codifica. Durante una delle mie sessioni di apprendimento, mi sono imbattuto nel termine Jython.Applicazioni Jython real-world

ho cercato con Google & ottenuto alcune informazioni.

vorrei sapere se qualcuno ha messo in atto un programma di mondo reale utilizzando Jython.

+1

+1 perché ho visto il tuo rappresentante era 'int (1000 * 2/3)' e stavo cercando di salvare la tua anima ;-) –

risposta

10

La maggior parte delle volte, Jython non viene utilizzato direttamente per scrivere programmi completi di lettura del mondo, ma molti programmi incorporano effettivamente Jython per usarlo come linguaggio di scripting.

Il sito ufficiale Jython dà un elenco di progetti, alcuni scritti in Jython, altri usando Jython per lo scripting: http://wiki.python.org/jython/JythonUsers

+1

Grazie. Era solo curioso di sapere se ne hai implementato qualcuno? – ykombinator

+1

Non ho scritto programmi Jython da solo, ma ho avuto la possibilità di parlare con alcune persone che usano Jython come linguaggio di scripting in applicazioni basate su Java. –

+0

Probabilmente è vero che è usato principalmente per lo scripting in ambiente Java, ma non credo che ci siano molte ragioni per non usare Jython su Java per qualsiasi scopo. Ovviamente dipende dal progetto, ma direi che è una preferenza in gran parte personale. –

5

sto scrivendo un applicazione completa in Jython al momento, e lo consigliamo vivamente. Avere tutte le librerie Java a tua disposizione è molto utile, e le funzionalità di sintassi e linguaggio di Python rendono effettivamente l'utilizzo di alcuni di essi più semplice di quanto non sia in Java (sto parlando principalmente di Swing qui).

Partenza the chapter on GUI Applications from the Jython book. Fa paragoni come 'Guarda tutto questo codice Java, e ora guardalo ridotto al codice Python di metà lunghezza!'.

Le uniche caveat che ho trovato sono:

  • sviluppo Jython tende a correre leggermente dietro Python, che può essere fastidioso se si trova un modo fresco di fare qualcosa in Python, solo per scoprire che non è supportato nella versione corrente di Jython.
  • Occasionalmente potresti avere problemi con l'interfaccia tra Python e Java (ho un paio di problemi non risolti here e here, sebbene ci siano sempre soluzioni alternative per questo genere di cose).
  • La distribuzione non è così semplice come potrebbe essere, anche se una volta capito come farlo, è abbastanza indolore. Raccomando di seguire il metodo here. Essenzialmente è costituito da:
    1. Exploding jython.jar e aggiungendo i propri moduli in esso.
    2. Scrittura e compilazione di una piccola classe Java che crea un interprete Python e carica i moduli Python.
    3. Creazione di un file eseguibile .jar composto dai moduli jython.jar, i propri moduli Python, e la classe Java.
+0

Solo per curiosità: hai fatto qualcosa di speciale sul requisito di memoria di Jython (ad esempio come ridurre)? Per me, un'applicazione super-semplice "Hello World" che utilizza Swing (vedi il link Applicazioni della GUI) richiede> 80 megabyte ... Trovo che sia abbastanza estremo. – FriendFX

+0

@FriendFX Per essere onesto, non ho mai controllato la memoria che era in uso, quindi non posso davvero commentare. Potresti scoprire che la stragrande maggioranza degli 80MB è solo sopra la testa di Java/Jython e che non aumenterà molto man mano che il tuo programma diventerà più grande. A seconda delle macchine/piattaforme/utenti di destinazione, potrebbe non essere un problema. –

2

WebSphere e WebLogic lo usano come loro motore di script predefinito per scopi amministrativi.

Un sacco di altri prodotti Oracle nave come parte del loro modulo "oracle_commons" (Oracle Universal Installer, Oracle HTTP Server, ecc). Per lo più viene distribuita la versione 2.2, che è un po 'vecchia e goffa.

2

Jython brilla davvero per l'iniezione di dipendenza.

Sai quelle variabili fastidiosi dovete dare il vostro programma, come percorsi di sistema

  • di file i nomi dei server
  • porte

Jython fornisce davvero un bel modo di iniettare quelli variabili inserendole in uno script. Funziona altrettanto bene anche per l'iniezione di dipendenze Java.

+0

interessante. potresti approfondire l'integrazione delle dipendenze tramite Jython? – trinth