Groovy/Grails:: Ruby/Rails:: 2011 Состояние структуры
Да, существует несколько подобных потоков, но мы сейчас в 2011 году, и многое изменилось.
Grails 1.3.6 значительно улучшился по сравнению с v1.3, когда я сначала попытался изучить структуру (и отказался от медленного времени компиляции и других событий, вызывающих стон).
Проведя пару месяцев с последней версией, я впечатлен тем, что добавление приложения - это абсолютный ветерок (GORM отлично!). В режиме разработки больше не нужно перезапускать, запрещая изменения в классах домена. Groovy.lang является фантастическим (в виду, это сравнивается с моей повседневной работой в PHP).
Теперь, с другой стороны, есть Ruby/Rails, и у меня мало опыта в том, что вы не просматриваете документы Ruby и не изучаете Active Record (для сравнения с GORM). Исходя из PHP/Jquery, синтаксис groovy - это торт, рубин не так много, хотя и доступен.
Ruby/Rails - это все ярость, в то время как Groovy/Grails, по-видимому, быстро набирает скорость.
Я хотел бы услышать, что должны сказать оба лагеря (пламя, побуждающее к войне на войне) re: плюсы/минусы как langs/framework теперь в 2011 году. При выборе структуры важно знать, что вы получаете, так что есть у него, новички будут полезны, а эксперты могут выпустить; -)
Ответы
Ответ 1
Rails и Grails - отличные рамки с их текущими выпусками. Вы тоже не ошибетесь. Вот некоторые вещи, которые мне интересны, хотя:
Рельсы
- Rails (Ruby) не масштабируется, как и Grails (Groovy). Вам понадобится больше лошадиных сил для запуска вашего приложения. Это не большая проблема с параметрами PaaS, такими как EngineYard (и, надеюсь, опция AWS BeanStalk Rails в будущем), но это может стоить немного больше, чтобы запустить приложение Rails и приложение Grails (очевидно, JRuby также является вариант, хотя).
- Rails немного лучше с альтернативами NoSQL в настоящее время, но Grails быстро догоняет
- В Rails есть много плагинов, но это может привести к проблемам, если вы используете некоторые из них, которые не поддерживаются (многие из них в настоящее время не работают с Rails 3).
- Rails более зрелый и имеет больше возможностей в этот момент времени, потому что он был длиннее
- Поддержка Rails REST удивительна.
- Есть еще много "больших" Rails-сайтов, чем Grails
- Ruby гораздо более популярен, чем Groovy - TIOBE
- Никакая зависимость от Oracle, ха! (Очевидно, что Grails нуждается в JVM)
Grails
- Grails интегрируется с JVM лучше, чем JRuby
- Grails GORM лучше, чем ActiveRecord (IMHO), хотя Rails 3 немного открыл дверь для других параметров сохранения, но все книги, учебники и т.д. используют ActiveRecord
- Grails View taglib лучше, чем < =%...% > в поле зрения
- Плагины Grails хорошо документированы и четко указывают, поддерживаются ли они SpringSource или нет.
- SpringSource вкладывает значительные средства в Grails
- В будущем будет еще больше корпоративных заданий для Grails, чем Rails, но больше запусков использует Rails (где вы хотите работать?)
Моя перспектива
- Я использовал Rails пару лет назад, сейчас я работаю над проектом Grails.
- Мне нравятся они лучше, чем Django (Python) или Zend Framework (PHP)
- Я планирую изучить Lift (Scala) next
Моя рекомендация
- Если вы никогда не занимались разработкой Java и не работаете над побочным проектом для малого и среднего веб-сайта, перейдите с Rails
- Если вы работаете в крупной компании, использующей Java, попробуйте передать Grails вашему руководству в качестве "следующей платформы Java", которую они должны инвестировать в
- Если вы работаете над "очередным твиттером или четырьмя квадратами", хорошо, тогда вы достаточно умны, чтобы сами ответить на этот вопрос!:)
Ответ 2
В первый раз, когда я начал проект с Rails, я был очень удивлен:
-
Как я могу отделить "репозиторий" от "Сервис"? Боже мой: мне нужно поставить бизнес-логику на контроллеры... Я не могу представить себе настоящий большой проект с Ruby on Rails: есть ли кто-то из 37-х, которые помнят основы разделения Business and Domain/Repository. Структура папок/классов Rails не заботится об этом.
-
Второй носок: "Активная запись". Попробуйте создать реальный сложный объектно-ориентированный бизнес-уровень и сопоставить его с использованием моделей Rails (Active Record)... на самом деле: не надо.
-
6 месяцев спустя, с нашим проектом: R & R потребляет 80% CPU (и память...), используя apache + passanger на четырехъядерном сервере... и база данных Postgresql находится в отпуске ( 3-4% процессора)... О, боже (недавно)
Мои старые приложения ASP/VB6, способные обслуживать страницы до 300 одновременных пользователей в реальном контексте backoffice с реальными сложными базами данных и сложным бизнесом, установленным на автономной машине (один год ядра ядра 1 2001 года).
Конечно, условности и синтаксис Ruby прекрасны... и никто не нуждается в компиляторе (ну... единичные тесты используются для этой porpouses в 90% случаев... просто для решения проблемы отмены ввода каждый раз, когда я изменить какой-то код... "Пожалуйста, бог программирования, позаботьтесь о моих пальцах" )
Первое погружение в Grails:
- Стек "Cool", вдохновленный Rails с профессиональной мощью, основанный на структуре Spring (IoC, Hibernate,...)
И ДА!!!
- Существует чистое разделение домена/службы. NICE!!!
- Вы можете, в конце концов, забыть Java.
Ответ 3
Рельсы довольно зрелые, у них есть ОГРОМНАЯ экосистема. Я не знаком с Grails или он поддерживает онлайн, но красный флаг, который я вижу в вашем посте, - это то, что вы признали, что Grails играет догнать Rails.
Ruby - это абсолютная радость для работы (и это происходит из старого взлома С++... почему, в тот же день, когда я использовал программу с шестнадцатеричной клавиатурой, молодой whippersnapper... теперь ПОЛУЧИТЕ МОЙ ЗАКОН!).
Есть вещи, связанные с рубином, из-за которых трудно следовать порой (method_missing, я смотрю на ВАС), но я уверен, что это можно сказать о любом языке.
Me? Я бы пошел с рубинами и рельсами.
Ответ 4
Хорошо для grails, я все еще думаю, что даже догнать, у него есть две основные вещи, которые рельсы не будут иметь в простой форме:
- масштабирование
- тонны зрелых библиотек java на кончиках ваших пальцев (лично геотестующие среди других)
Ответ 5
Ruby on Rails выдающийся - как Pink Floyd веб-разработчика.
Groovy на Grails это достойная копия - вроде как австралийское шоу Pink Floyd...
BTW - У нас есть и на работе, и я видел, как многие разработчики Grails в конечном итоге изучают Rails и придерживаются этого.
Я также видел, как разработчики Rails изучают Grails, но ни один из них не предпочел его.
Примерно в половине случаев наши разработчики Java изучают Grails и просто держатся подальше от Ruby.
ИМХО. Если вы действительно хорошо знаете, вы почти всегда будете любить Ruby и Rails.
Ответ 6
Вам также необходимо рассмотреть вашу среду IDE. Когда я начал с рельсов, это было довольно болезненно. Рубимин был очень медленным и рушился, все, кого я знаю, использовали textmate. Grails имеет STS (основанное на затмении) и предоставляет вам все необходимые функции.