Groovy / Grails :: Ruby / Rails :: 2011 Состояние фреймворка - PullRequest
43 голосов
/ 03 февраля 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, похоже, набирает скорость самостоятельно.

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

Ответы [ 6 ]

56 голосов
/ 07 февраля 2011

Rails и Grails - отличные фреймворки с их текущими выпусками.Вы действительно не можете пойти не так, как надо.Вот некоторые вещи, которые мне интересны:

Rails

  • 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 taglibs лучше, чем <=% ...%> в представлении
  • Плагины Grails хорошо документированы и четко указывают, поддерживают ли они SpringSource или нет
  • SpringSource вкладывает большие средства в Grails
  • В Grails будет гораздо больше корпоративных рабочих мест, чем в Rails.будущее, но все больше стартапов используют Rails (где вы хотите работать?)

Моя перспектива

  • Я использовал Rails пару лет назад, я работаю надПроект Grails сейчас
  • Мне они оба нравятся больше, чем Django (Python) или Zend Framework (PHP)
  • Я планирую изучать Lift (Scala) в следующем

MyРекомендация

  • Если вы никогда не занимались Java-разработкой и работали над сайтом для небольшого и среднего веб-сайта, используйте Rails
  • Если вы работаете в большой компании, использующей Java, попробуйте передать Grails своему руководству.как «следующий Java-фреймворк» они должны инвестировать в
  • Если вы работаете над «следующим твиттером или квадратом», то вы достаточно умны, чтобы ответить на этот вопрос самостоятельно!:)
9 голосов
/ 05 января 2012

Когда я впервые начал проект с Rails, я был очень удивлен:

  • Как я могу отделить «хранилище» от «Сервиса»?Боже мой: я должен поместить бизнес-логику в контроллеры ... Я не могу представить себе действительно большой проект с Ruby on Rails: есть ли кто-то на 37signals, помнящий основы разделения Business и Domain / Repository.Структура папок / классов Rails не заботится об этом.

  • Второй носок: "Активная запись".Попробуйте спроектировать действительно сложный объектно-ориентированный бизнес-слой и отобразить его, используя Rails Models (Active Record) ... действительно: не надо.

  • 6 месяцев спустя, когда наш проект запущен: R & R потребляет 80% ЦП (и памяти ...), используя apache + passanger на четырехъядерном сервере ... и базу данных Postgresqlв отпуске (3-4% процессорного времени) ... Боже мой (недавно)

    Мои старые приложения ASP / VB6, в которых можно обслуживать страницы до 300 одновременно работающих пользователей в реальном административном контексте с реальными сложными базами данных.и сложный бизнес, установленный на автономной машине (годовой сервер с 1 ЦП 2001 года).

Конечно, соглашения и синтаксис Ruby прекрасны ... и никому не нужен компилятор (хорошо... модульные тесты используются для этих компонентов 90% времени ... просто для решения исчезнувшего набора текста каждый раз, когда я меняю какой-то код ... "Пожалуйста, программист, позаботься об ошибках моих пальцев")

Первое знакомство с Grails:

  • «Классный» стек, созданный на Rails с профессиональной мощью на основе среды Spring (IoC, Hibernate, ...)

И да!!!

  • Существует чистое разделение Домен / Сервис.СЛАВНЫЙ !!!
  • Вы можете, в конце концов, забыть о Java.
5 голосов
/ 03 февраля 2011

Rails достаточно развит, имеет ОГРОМНУЮ экосистему.Я не знаком с Grails или его поддержкой онлайн, но красный флажок, который я вижу в вашем посте, заключается в том, что вы признали, что Grails играет в догонялки с Rails.и это происходит от старого взлома C ++ ... почему-то, когда я раньше программировал только с шестигранной клавиатурой, молодой whippersnapper ... теперь ПОЛУЧИ МОЙ ЗАКОН!).

В ruby ​​есть вещи, из-за которых иногда трудно следовать (method_missing Я смотрю на ВАС), но я уверен, что это можно сказать о любом языке.

Я?Я бы пошел с рубином и рельсами.

3 голосов
/ 04 февраля 2011

Ну что касается Грааля, я все еще думаю, что даже догоняя, у него есть 2 главных вещи, которые рельсы не получат простым способом:

  • увеличение
  • тонн зрелых java-библиотек на кончиках ваших пальцев (лично геотрусы среди прочих)
2 голосов
/ 01 сентября 2011

Ruby on Rails выдающийся - как Pink Floyd веб-разработчика.

Groovy on Grails - достойная его копия - вроде австралийского шоу Pink Floyd ...

Кстати, мы оба работаем - и я видел, как многие разработчики Grails в конечном итоге изучают Rails и придерживаются его.

Я также видел, как разработчики Rails изучают Grails, но ни один из них не предпочел его.

Примерно в половине случаев наши Java-разработчики изучают Grails и просто избегают Ruby.

ИМХО - Если вы действительно хорошо знаете оба, вы почти всегда предпочитаете Ruby и Rails.

1 голос
/ 05 января 2012

Вы также должны учитывать вашу IDE. Когда я начинал с рельсов, было довольно больно. Rubymine был очень медленным и зависал, все, кого я знаю, использовали textmate. Grails имеет STS (на основе затмения) и предоставляет вам все необходимые функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...