Подтвердить что ты не робот

Django -vs-Grails -vs-?

Мне интересно, есть ли такая вещь, как удобство создания веб-приложений, подобная Django, в сочетании с хорошим развертыванием, отладкой и другими инструментами?

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

Ruby имеет похожие проблемы, и хотя мне нравится Ruby намного лучше, чем мне нравится Python, у меня создается впечатление, что Rails находится примерно в одной лодке в Django, когда дело доходит до управления/поддержки приложения,

Кто-нибудь здесь попробовал как Django, так и Grails (или другие веб-фреймворки) для нетривиальных проектов? Как они сравнивались?

4b9b3361

Ответ 1

Вы попросили кого-то, кто использовал оба Grails и Django. Я работал над обоими проектами. Здесь мои мысли:

IDE, Django отлично работает в Eclipse, Grails отлично работает в Idea IntelliJ.

Debugging: Практически одинаково (если вы используете IntelliJ для Grails и Eclipse для Python). Отладка шага, проверка переменных и т.д.... никогда не требуется инструкция печати для обоих. Иногда сообщения об ошибках django могут быть бесполезными, но сообщения об ошибках Grails обычно довольно длинные и трудно разбираются.

Время запуска unit test: django: 2 секунды. Grails: 20 секунд (сами тесты выполняются в доли секунды, это часть загрузки загрузочного фреймворка, который занимает все остальное... как вы можете видеть, Grails с трудом медленно загружается).

Развертывание: Django: скопируйте и вставьте один файл в конфигурацию apache и передислоцируйте, просто измените код и перезагрузите apache. Grails: создайте файл .war, разверните его на tomcat, промойте и повторите для повторного развертывания.

Языки программирования: Groovy ПОЛНОСТЬЮ потрясающе. Мне это нравится, более того, чем Python. Но у меня нет никаких претензий.

Плагины: Grails: много сломанных плагинов (и может использовать каждый java lib когда-либо). Django: несколько стабильных плагинов, но достаточно, чтобы сделать большую часть того, что вам нужно.

База данных: Django: миграция схем с использованием Юга и, как правило, интуитивные отношения. Grails: нет миграции схем и по умолчанию удаляет базу данных при запуске... WTF

Применение: Django: стартапы (особенно в пространстве Gov 2.0), независимые веб-магазины. Grails: предприятие

Надеюсь, что это поможет!

Ответ 2

Однако он написан на Python, который означает небольшую реальную поддержку в способ развертывания/упаковки, отладки, профилировщики и другие инструменты которые создают и поддерживают приложений намного проще.

У Python есть:

Итак, ИМХО, вы не должны беспокоиться об этом, использовать Python и Django и жить счастливо: -)

К счастью для вас, самая новая версия Django запускается на Jython, поэтому вам не нужно оставлять всю экосистему Java.

Говоря о структурах, я оценил этот год:

Ни одна из этих фреймворков не приближается к силе Django или Ruby on Rails. Основываясь на моем коллеге, я мог бы рекомендовать вам kohana. Недостатком является то, что он написан на PHP и, насколько я знаю, PHP не имеет превосходных инструментов для отладки, профилирования и упаковки приложений.

Изменить: Вот очень хорошая статья о упаковке и развертывании приложений Python (в частности, приложения Django). Это горячая тема в сообществе Django.

Ответ 3

Grails.

Grails выглядит просто как Rails (Ruby), но использует groovy, который проще, чем java. Он использует технологию java, и вы можете без проблем использовать любую java-библиотеку.

Я также выбираю Grails по простоте, и есть много java lib (например, отчет о jasper, jawr и т.д.), и я рад, что теперь они присоединяются к SpringSource, что делает их базовыми.

Ответ 4

Утверждение, что grails удаляет базу данных при запуске, совершенно неверно. Это поведение при запуске полностью настраивается и легко настраивается. Обычно я использую create-drop при запуске приложения в режиме dev. Я использую обновление, когда я запускаю тестирование и производство.

Мне также нравится обработка бутстрапа, которая позволяет мне предварительно настроить тестовые пользователи, данные и т.д. в среде Grails.

Мне бы хотелось увидеть кого-то, кто действительно построил и развернул некоторые коммерческие проекты, комментируя плюсы и минусы. Будьте действительно интересны.

Ответ 5

У меня есть два друга, которые изначально начали писать приложение с использованием Ruby on Rails, но столкнулись с рядом проблем и ограничений. Примерно через 8 недель работы над ним они решили исследовать другие альтернативы.

Они установили Catalyst Framework и Perl. Это было около 4 месяцев назад, и они неоднократно говорили о том, насколько лучше работает приложение, и насколько они более гибки.

С Perl у вас есть все доступные CPAN, а также большое количество инструментов. Я бы предложил взглянуть на него, по крайней мере.

Ответ 6

Проблема "хорошего развертывания" - для Python - не имеет глубокого значения, которое она имеет для Java.

Развертывание Python для Django в основном "перемещает файлы". Если вы хотите, вы можете выполнить прямо из каталога соединительной линии subversion.

Вы можете, не нарушая пота, использовать Python distutils и создать себе дистрибутив, который помещает ваши приложения Django в Python сайт-пакеты. Я не большой поклонник этого, но это очень легко сделать.

Так как мои вещи работают в Linux, у меня есть простые сценарии "install.py", которые перемещают материал из каталогов Subversion в директории /opt/this и /opt/that. Я использую явные настройки пути в моей конфигурации Apache, чтобы назвать те каталоги, в которых живут приложения.

Патч может быть выполнен путем редактирования файлов на месте. (Плохая политика.) Я предпочитаю редактировать в местоположении SVN и повторять мою небольшую установку, чтобы убедиться, что у меня есть все файлы под контролем.

Ответ 7

cakephp.org

Cakephp действительно хорош, очень близко к рубину на рельсах (1.2). Он находится в php, отлично работает на общих хостах и ​​легко реализуется.

Единственным недостатком является то, что документация несколько не хватает, но вы быстро ее получите и быстро начнете делать классные вещи.

Я полностью рекомендую cakephp.

Ответ 8

Лично я сделал несколько довольно больших проектов с Django, но я могу сравнить только с упомянутыми "montrosities" (Spring, EJB) и действительно низкоуровневыми вещами, такими как Twisted.

Веб-структуры, использующие интерпретируемые языки, в основном находятся в зачаточном состоянии, и все они (активно поддерживаемые, то есть) улучшаются с каждым днем.

Ответ 9

Под "хорошим развертыванием" вы сравниваете его с файлами Java EAR, которые позволяют развертывать веб-приложения, загружая один файл на сервер J2EE? (И, в меньшей степени, файлы WAR, файлы EAR могут иметь файлы WAR для зависимых проектов)

Я не думаю, что Django или Rails добрались до этого момента, но я мог ошибаться... zuber указал на статью с более подробной информацией о стороне Python.

Capistrano может помочь на стороне Ruby.

К сожалению, я не очень много работал с Python или Ruby, поэтому я не могу помочь профайлерам или отладчикам.