Domanda

Qualcuno ha un'esperienza diretta (buona o cattiva) utilizzando Jython con Google App Engine?

È stato utile?

Soluzione

Per porre la domanda ovvia: perché dovresti farlo? (C) Python è supportato nativamente da Google App Engine e ormai è abbastanza maturo e molto ben supportato.

Per rispondere alla domanda originale, però: non ho esperienza personale, ma posso darti una panoramica generale di come sarà:

Al momento il modo più semplice sarà utilizzare il supporto di Jython per chiamare in Java per utilizzare l'SDK Java di App Engine. Ciò significa che sebbene tu scriva Python, assomiglierà molto a Java e dovrai usare i documenti Java, piuttosto che quello di Python.

In teoria, tuttavia, è possibile utilizzare Python SDK in Jython su App Engine. L'SDK è Python puro e tutta l'interazione tra l'SDK e il runtime avviene tramite RPC tramite il modulo google.appengine.api.apiproxy_stub_map. Java ha un'interfaccia equivalente nella classe com.google.apphosting.api.ApiProxy - vedi l'articolo su Unit Testing in GAE per alcuni dettagli su come configurarlo.

Detto questo, ecco come è possibile utilizzare l'API Python in Jython:

  1. Scrivi un apiproxy_stub Python che prende semplicemente tutte le chiamate API e le invia alla classe com.google.apphosting.api.ApiProxy.
  2. Raggruppa le parti pertinenti di Python SDK con la tua app Jython (purtroppo è la maggior parte di essa).
  3. Nel codice di inizializzazione, installa la sottoclasse apiproxy_stub che hai scritto come gestore per tutti i servizi pertinenti: datastore_v3, memcache, utente, urlfetch e immagini.

Se finisci per farlo, ti preghiamo di documentarlo e rilasciare il codice: conosco almeno un altro utente che sarebbe interessato. :)

Altri suggerimenti

In primo luogo, ci sono persone che sostengono che Jython, Querces e JRuby possono battere le loro controparti native quando si tratta di velocità, sfruttando il potere della JVM.

Tuttavia, ci sono alcune informazioni contrastanti sulla velocità di Jython. Un utente Stack Overflow afferma che Jython è il più lento di molte delle lingue coinvolte in un test di velocità che ha condotto .

Nessuna delle domande relative alle prestazioni riguarda davvero App Engine, solo la JVM in generale.

In questo articolo pubblicato da un committer Jython , Alan Kennedy afferma che Jython su App Engine combina la natura in rapido sviluppo di Python con le numerose librerie disponibili in JVM. Jython è Python, ma è Python che ha accesso diretto alle classi Java.

Ho una certa esperienza con questo con Querces PHP. Ho portato il plug-in JQuery Form Builder su Google App Engine. È il codice PHP, ma PHP è in grado di accedere direttamente agli oggetti DAO scritti in Java. Allo stesso modo, Jython è in grado di fare lo stesso.

Alan Kennedy ha anche incontrato una sfida lanciata da Nick Johnson con cui dimostra qualcosa che può essere fatto con Jython su App Engine che altrimenti sarebbe difficile da realizzare con trasformazioni Python, XSLT pure. Risponde alla domanda barrata nella risposta di Nick: perché dovresti farlo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top