Question

Quelqu'un at-il une expérience directe (bonne ou mauvaise) de l'utilisation de Jython avec Google App Engine?

Était-ce utile?

La solution

Pour poser la question évidente: pourquoi voudriez-vous? (C) Python est pris en charge de manière native par Google App Engine. Il est à présent assez mature et très bien pris en charge.

Pour répondre à la question initiale, cependant: je n’ai pas d’expérience personnelle, mais je peux vous donner un aperçu général de ce à quoi cela ressemblera:

À l’heure actuelle, le moyen le plus simple consiste à utiliser la prise en charge par Jython pour appeler en Java l’utilisation du SDK Java d’App Engine. Cela signifie que même si vous écrivez en Python, cela ressemblera beaucoup à Java et vous devrez utiliser la documentation Java plutôt que celle en Python.

Il est toutefois théoriquement possible d’utiliser le SDK Python dans Jython sur App Engine. Le SDK est du pur Python et toutes les interactions entre le SDK et le runtime se font via des RPC via le module google.appengine.api.apiproxy_stub_map. Java a une interface équivalente dans la classe com.google.apphosting.api.ApiProxy - voir l'article sur Test unitaire dans GAE pour plus de détails sur sa configuration.

Etant donné tout cela, voici comment utiliser l'API Python dans Jython:

  1. Ecrivez un apiproxy_stub Python qui prend simplement tous les appels d'API et les envoie à la classe com.google.apphosting.api.ApiProxy.
  2. Associez les applications pertinentes du SDK Python à votre application Jython (malheureusement, c'est l'essentiel).
  3. Dans votre code d'initialisation, installez la sous-classe apiproxy_stub que vous avez écrite en tant que gestionnaire pour tous les services pertinents: datastore_v3, memcache, utilisateur, urlfetch et images.

Si vous finissez par le faire, veuillez le documenter et publier le code - je connais au moins un autre utilisateur qui serait intéressé. :)

Autres conseils

Tout d'abord, certaines personnes affirment que Jython, Querces et JRuby peuvent battre leurs homologues natifs en termes de rapidité, en utilisant la puissance de la machine virtuelle.

Cependant, il existe des informations contradictoires sur la vitesse de Jython. Un utilisateur de Stack Overflow affirme que Jython est la plus lente des langues impliquées dans un test de vitesse qu'il a mené .

Aucune des questions de performances ne concerne réellement App Engine, mais uniquement la machine virtuelle Java.

Dans cet article posté par un auteur Jython Alan Kennedy affirme que Jython sur App Engine combine la nature à développement rapide de Python avec les librairies abondantes disponibles dans la JVM. Jython est Python, mais c'est Python qui a un accès direct aux classes Java.

J'ai quelques expériences avec Querces PHP. J'ai porté le plug-in JQuery Form Builder dans Google App Engine. C'est du code PHP, mais ce dernier peut accéder directement aux objets DAO écrits en Java. De même, Jython est capable de faire de même.

Alan Kennedy a également rencontré un Défi lancé par Nick Johnson , dans lequel il montre quelque chose qui peut être fait avec Jython sur App Engine et qui serait autrement difficile à réaliser avec des transformations XSLT Python pures. Dans sa réponse, Nick répond à la question relative au barré: pourquoi voudriez-vous?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top