Разработка Jython в Google App Engine - PullRequest
6 голосов
/ 02 мая 2009

Есть ли у кого-нибудь прямой опыт (хороший или плохой) использования Jython с Google App Engine?

Ответы [ 2 ]

4 голосов
/ 02 мая 2009

Чтобы задать очевидный вопрос: почему вы хотите? (C) Python изначально поддерживается Google App Engine, и к настоящему времени он достаточно развит и очень хорошо поддерживается.

Хотя, чтобы ответить на оригинальный вопрос: у меня нет личного опыта, но я могу дать вам общий обзор того, на что это будет похоже:

Самым простым способом в настоящее время будет использование поддержки Jython для вызова Java для использования App Engine Java SDK. Это означает, что, хотя вы будете писать Python, он будет очень похож на Java, и вам придется использовать документы на Java, а не на Python.

Тем не менее, теоретически возможно использовать Python SDK в Jython на App Engine. SDK - это чистый Python, и все взаимодействие между SDK и средой выполнения осуществляется с помощью RPC через модуль google.appengine.api.apiproxy_stub_map. У Java есть эквивалентный интерфейс в классе com.google.apphosting.api.ApiProxy - см. Статью о Модульном тестировании в GAE , чтобы узнать, как его настроить.

Учитывая все это, вот как вы можете использовать Python API в Jython:

  1. Напишите Python apiproxy_stub, который просто принимает все вызовы API и отправляет их в класс com.google.apphosting.api.ApiProxy.
  2. Объедините соответствующие части Python SDK с вашим приложением Jython (к сожалению, это большая часть).
  3. В своем коде инициализации установите подкласс apiproxy_stub, который вы написали в качестве обработчика для всех соответствующих служб - datastore_v3, memcache, user, urlfetch и images.

Если вы в конечном итоге сделаете это, пожалуйста, задокументируйте это и выпустите код - я знаю по крайней мере еще одного пользователя, который будет заинтересован. :)

2 голосов
/ 30 января 2011

Во-первых, есть люди, которые утверждают, что Jython, Querces и JRuby могут превзойти своих родных собратьев , когда дело касается скорости, используя мощь JVM.

Однако, есть некоторая противоречивая информация о скорости Jython. Пользователь Stack Overflow утверждает, что Jython - самый медленный из многих языков, задействованных в тесте скорости, который он провел .

Ни один из вопросов производительности на самом деле не затрагивает App Engine, только JVM в целом.

В этой статье, опубликованной коммиттером Jython , Алан Кеннеди утверждает, что Jython в App Engine сочетает в себе стремительную разработку Python с обильными библиотеками, доступными в JVM. Jython - это Python, но это Python, который имеет прямой доступ к классам Java.

У меня есть некоторый опыт работы с Querces PHP. Я перенес плагин JQuery Form Builder в Google App Engine. Это PHP-код, но PHP может напрямую обращаться к объектам DAO, написанным на Java. Аналогично, Jython может делать то же самое.

Алан Кеннеди также встретился с Challenge, выпущенным Ником Джонсоном , в котором он демонстрирует что-то, что можно сделать с помощью Jython в App Engine, что иначе было бы трудно выполнить в чистых преобразованиях XSLT на Python. Он отвечает на зачеркнутый вопрос в ответе Ника: зачем тебе это?

...