Существуют ли проблемы с разработкой Django на Jython?

Фон

Я создаю веб-приложение с хорошим размером с моим другом в свое время, и мы решили пойти с картой Django на Python. Django предоставляет нам множество функций, которые нам понадобятся, поэтому, пожалуйста, не предлагайте альтернативные рамки.

Единственное решение, с которым я столкнулся, заключается в том, используем ли мы Python или Jython для разработки нашего приложения. Теперь я хорошо знаком с Java и, возможно, получаю выгоду от библиотек в JDK. Я знаю минимальный Python, но я использую этот проект как возможность изучить новый язык, поэтому большая часть работы будет написана на Python.

Привлекательность Jython - это, конечно же, JVM. Количество веб-хостов с поддержкой python/django крайне минимально - в то время как я предполагаю, что могу отказаться от приложения jython/django на огромном множестве хостов. Это не масштабное дизайнерское решение, но все же я думаю, что нужно решить. Я бы предпочел jython над python только для доступности jvm.

Вопросы

Есть ли у Jython множество ограничений по сравнению с обычным python? Будет ли запущено django на jython вызвать проблемы? Как быстро команда Jython выпускает обновления вместе с Python? Будет ли Django работать как рекламируемый на Jython (с минимальной предварительной конфигурацией)?

Решение

Спасибо за полезные комментарии. Я думаю, что я собираюсь сделать это в Jython для поддержки JVM, но попытаться использовать только код/​​библиотеки Python. Переносимость не является серьезной проблемой, поэтому, если мне нужна библиотека в JDK (она не доступна на python), я буду использовать ее. Пока Django полностью поддерживается, я счастлив.

4 ответа

Django делает работать с Jython, хотя вам нужно будет использовать выпуск Jython для разработки, поскольку технически Jython 2.5 все еще находится в стадии бета-тестирования, Однако Django 1.0 и up должны работать без изменений.

Что касается того, следует ли использовать обычную реализацию Python или Jython, я бы сказал, что вам нужно иметь все доступные библиотеки Java или все библиотеки Python. На данный момент вы можете ожидать почти все в стандартной библиотеке Python для работы с Jython, но по-прежнему существует множество сторонних пакетов, которые не будут работать, особенно в C-модулях расширения. Я бы рекомендовал регулярно использовать Python, но если у вас есть тонна опыта JVM и вы хотите придерживаться того, что знаете, я могу это уважать.

Что касается поиска хостинга Python, эта страница может быть полезна.


Я бы сказал, что если вам нравится Django, вам также понравится Python. Не делайте (слишком распространенную) ошибку смешивания прошлого опыта языка, когда вы изучаете новый. Только после освоения Python у вас будет опыт, чтобы судить, лучше ли гибридный язык, чем любой.

Правда, очень немногие дешевые хостинги предлагают предустановленную Django; но вполне вероятно, что это изменится, учитывая, что это самая схожая среда для движка Google. (и большинство проектов GAE могут быть запущены на Django)


Недавно я начал работать над проектом с открытым исходным кодом в свободное время. Таким образом, это может не распространяться. Я пришел к тому же вопросу. Я решил, что должен писать как можно больше кода в python (и Django) и нацеливать все платформы CPython, Jython и IronPython.

Затем я решил, что буду писать плагины, которые будут взаимодействовать с библиотеками в разных реализациях (например, разные библиотеки GUI).

Почему? Я решил на раннем этапе, что долговечность моего кода может зависеть от таргетинга не только CPython, но и виртуальных машин. На сегодняшний день CPython - это путь к успеху, но кто знает о завтрашнем дне. Если код достаточно гибкий, вам, возможно, не придется выбирать таргетинг на него.

Недостатком этого подхода является то, что у вас будет больше кода для создания и поддержки.


Django должен быть совместимым с jython sinc версии 1.0.

Этот учебник немного устарел, но оттуда вы можете увидеть, что особых проблем нет.

licensed under cc by-sa 3.0 with attribution.