Rails или Grails?

Grails vs Rails. У кого лучшая поддержка? И какой из них лучше подходит для разработки приложений среднего размера? Самое главное, у какого плагинов больше?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
27
0
17 468
13
Перейти к ответу Данный вопрос помечен как решенный

Ответы 13

Rails более распространен, но менее гибок. Grails все еще быстро меняется, у него нет той же экосистемы для разработчиков, и документация не так развита, но в некоторых ситуациях Rails не работает.

У Grails есть хорошая документация, для меня справочное руководство отличное grails.org/doc/1.0.x

dahernan 17.09.2008 15:09

За время моего непродолжительного опыта документация Grails несколько раз вводила в заблуждение и / или ошибалась. Кроме того, около 3 месяцев назад не было хороших текущих книг.

Hank Gay 17.09.2008 15:16

По своему опыту я обнаружил ошибку только в документации, я поднял проблему Jira в проекте grails, и она была исправлена ​​за 5 дней. Что касается книг, Grails в действии находится в стадии разработки blogs.bytecode.com.au/glen/2008/09/16/….

dahernan 17.09.2008 15:31

Я не спорю, что команда Grails активно улучшает документацию, но пока она далеко не на одном уровне с Rails. Я изменил свой комментарий, чтобы лучше отразить это.

Hank Gay 17.09.2008 15:42

Сказать, что Rails в чем-то «менее гибок», показывает непонимание экосистемы Ruby.

rfunduk 20.02.2009 22:58

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

Hank Gay 04.05.2010 20:34

Думаю, если вы разработчик Java и хотите иметь доступ ко всем существующим корпоративным библиотекам и функциям Java ... используйте Grails.

Вы можете запускать Rails в JRuby, поэтому я не думаю, что это веский аргумент.

chaostheory 27.12.2010 06:39

Rails более зрелый, имеет больше плагинов, большую базу пользователей, лучшую документацию и доступную поддержку. Он также может работать на JRuby, предоставляя при необходимости доступ к библиотекам Java.

Grails обладает некоторыми интересными качествами, но пока не может претендовать на звание лучшего с рельсами. Однако, если вы преимущественно Java-разработчик или отличный разработчик, вы можете предпочесть это. В противном случае я бы предложил использовать Rails для проектов среднего размера прямо сейчас.

Более зрелым? Язык? Может быть. Плагины? Наверное. ORM? Отнюдь не. 99% кода ORM Grails - это Hibernate, который, вероятно, имеет больше инженерных лет, чем весь код Rails вместе взятый. То же самое для движка IoC (Spring) и, конечно же, для среды выполнения (JVM).

Tomislav Nakic-Alfirevic 19.01.2012 17:18

С момента ответа tomafro на комментарий @Tomislav прошло 4 года. Может, сейчас баланс изменился?

chelder 12.06.2013 19:50

Вот несколько цифр (количество инженерных лет на проект, рассчитанное с использованием модели COCOMO): RoR: 44, Spring 320, Hibernate 300, OpenJDK 1700. Короче говоря, RoR только начинает отображаться в линейном масштабе ... и кстати, Grails: 79. (источник: ohloh.net) Короче говоря, интенсивность разработки RoR в настоящее время незначительна по сравнению со стеком технологий Grails.

Tomislav Nakic-Alfirevic 13.06.2013 11:36

COBOL: 15 миллионов инженерных лет. Вместо этого используйте COBOL, это будущее.

Jonas Byström 21.11.2013 14:23

Я не могу сказать, законен ли COBOL, но я проголосую за!

an earwig 13.11.2014 22:16

Это зависит от ваших навыков работы с Ruby и / или Groovy, от того, есть ли у вас устаревшие системы Java и где вы хотите развернуть свои приложения.

Изначально я был в восторге от Rails. В то время не было возможности развертывания на работающих серверах приложений, поскольку вся работа - это Java. Это изменилось. Я не мог отказаться от уже существующей инфраструктуры и приложений Java и перейти на Ruby, хотя я думал, что Rails - это круто. Grails работает, потому что мы можем смешивать и сопоставлять Groovy с существующими решениями Java.

Вне работы на Ruby легче найти хостинг по более низкой цене. Поскольку Grails использует множество существующих проектов Java, файлы .war даже для небольшого приложения имеют тенденцию быть большими. Если у вас есть выделенный сервер, это не проблема, но попытка запуска на виртуальном хостинге со 128 МБ ОЗУ не работает.

2008 год - год книг по Groovy и Grails, но по-прежнему доступно гораздо больше ресурсов Rails.

Исходя из ваших конкретных критериев, Rails может быть лучшим фреймворком для изучения. Если у вас есть какие-то знания Java или багаж ;-), вам следует взглянуть на Grails.

Могу я предложить Мерб? Это модульная стойка, не зависящая от ORM, созданная Эзрой Зигмунтовичем для повышения скорости. Сейчас начинает накаляться ...

готовое решение.Я бы посмотрел на мерб

Ratn Deo--Dev 17.09.2008 18:21

Merb сейчас = Rails 3 rubyonrails.org/merb

Fletch 16.12.2010 12:43

Я говорю grails, потому что существует так много java-библиотек. Но я немного предвзят из-за того, что я исхожу из фона java.

Если приложение не будет большим, либо достаточно, и выбор должен зависеть от существующей инфраструктуры. Скажем, если у вас уже запущен сервер контейнера сервлетов Java, вы могли бы также придерживаться grails вместо того, чтобы предоставлять другой сервер для rails.

Ответ принят как подходящий

Еще одна вещь, о которой стоит упомянуть: философия дизайна обоих фреймворков несколько отличается, когда дело касается модели. Grails более «ориентирован на предметную область», тогда как Rails более «ориентирован на базы данных» .
В Rails вы, по сути, начинаете с определения ваших таблиц (с именами полей и их особенностями). Затем ActiveRecord сопоставит их с классами или моделями Ruby. В Grails все наоборот: вы начинаете с определения своих моделей (классов Groovy), и когда вы нажимаете кнопку «Выполнить», GORM (эквивалент Grails ActiveRecord) создает соответствующую базу данных и таблицы (или обновляет их). Возможно, именно поэтому у вас нет концепции «миграции» в Grails (хотя я думаю, что она появится в некоторых будущих версиях). Не знаю, лучше ли одно другое. Думаю, это зависит от вашего контекста.

При этом я все еще думаю, какой из них выбрать. Как говорил Том, если вы зависите от Java, вы все равно можете перейти на JRuby, поэтому повторное использование Java не должно быть вашим единственным критерием.

Есть как минимум два плагина Grails, которые выполняют миграцию БД.

Dónal 26.08.2009 21:55

Я не понимаю, как за это набралось столько голосов ... "домен-" против "ориентированного на базу данных"? Я не думаю, что он попадет в топ-100 самых важных отличий ...

Tomislav Nakic-Alfirevic 19.01.2012 17:15

Это основное отличие, если вы думаете о grails и rails, потому что все остальное настолько похоже, когда вы смотрите на grails (пока что лучшая концептуальная копия rails в мире java), что я не вижу большей разницы, чем domain vs ориентация на базу данных.

hasan 04.08.2014 01:25

Немного поработал с турбонаддувом и рельсами. Перед тем, как использовать rails, я пробовал использовать grails, потому что для написания скриптов я использовал Groovy. Grails был трудным опытом.

Стек вызовов Groovy трудно читать для небольшой программы, но когда вы добавляете несколько тяжелых фреймворков, простая ошибка может привести к сотням строк. В отличие от rails версия grails, которую я использовал, не имела инструментов, которые помогли бы мне определить, что было моим, а что принадлежало фреймворку.

В конце концов я переключился на использование набора инструментов Google Web, так как база данных мне действительно не нужна.

Я думаю, что Grails и Groovy являются многообещающими, но пользовательский опыт работы с ними в настоящее время затруднен (в настоящее время это было прошлой весной).

Учитывая, что парни, которые создают Grails, вчера были выкуплены источником Spring, я бы сказал, что Grails.

Кроме того, поскольку Groovy представляет собой надмножество Java, вы можете сразу приступить к использованию уже знакомой вам Java, не изучая Ruby. Теперь вы также узнаете много динамических вещей и в конечном итоге напишете код Groovy вместо кода Java, но это снизит барьер для входа.

Grails полностью!

Я бы выбрал Grails, поскольку мне нравится его подход (укажите классы домена и пусть Grails сгенерирует все остальное) лучше, чем Rails (создать таблицы базы данных и заставить Rails генерировать все остальное). Если вы Java-разработчик, вам также понравится, что код Java - это действительный код Groovy, а класс Groovy - это класс Java, поэтому интеграция является бесшовной в обоих направлениях.

Как разработчику Grails, пришедшему с Java, мне он понравился с самого первого раза.

Теперь я начинаю копаться в Rails и у меня проблемы с gem. Хотя установка MySQL-соединения с Grails была довольно простой, я все еще пытаюсь заставить ее работать с Rails.

Команда gem install mysql не работает, по-видимому, потому, что у меня не установлен XCode.

Если бы не проблема с потреблением памяти, я бы сказал, что Grails идеален.

Я думаю, это в некоторой степени зависит от среды, в которой вы работаете.

Похоже, что Grails получил большее признание на корпоративном уровне.

Rails имеет стиль Koolaid и очень подходит для стартапов без устаревших систем.

Лично я использую оба. Хотя на самом деле только начинаю в мире Grails - мне нравится, что аутентификация / авторизация проще в Grails-one simple plugin; Широ. Мне нравится, что Rails не зависит от JVM и не требует минуты или около того для запуска.

Я считаю, что настроить BDD / Cucumber в Rails было намного проще, но это могло быть просто потому, что мне это удобно! В мире Grails определенно есть усилия (cuke4duke и т. д.), Чтобы сделать это проще, и активное сообщество, разрабатывающее Grails.

Просто мой 2р ·

Попробуйте оба :)

Раньше я использовал рельсы, и они мне очень понравились. Однако в моей нынешней компании было много устаревшего java-кода, поэтому естественным выбором был grails.

Когда я начинал с rails, очень немногие сайты использовали его, а документация была ужасной. Был отличный railscast и railsforum.com, но что бы то ни было необычное, вы сами по себе. Развертывание было кошмаром, а использование mongrel-cluster не было на самом деле готово к производству. Сейчас это совсем другое, как все могут видеть, гораздо более зрелое и развернутое повсюду.

Более года назад мне пришлось выучить Grails по причине, которую я цитировал выше. Переход на grails был очень легким, поскольку он очень похож на Rails. Опять же, это было очень похоже на ранние этапы рельсов с одной огромной разницей. Поскольку вы можете легко импортировать Java-код, пользователи grails могут использовать почти все доступные Java-библиотеки, протестированные в производственной среде. Мне удалось успешно интегрировать наши унаследованные java-проекты в проекты grails, и мне потребовалось совсем немного доработки. Вы также заметите, что разработка плагинов была быстрой, в основном потому, что разработчики просто пишут «хуки» grails, а базовый код - это старые библиотеки java. Развертывание grails - это также просто развертывание файла WAR.

Еще одна вещь, на которую вам нужно обратить внимание, - это IDE. Если вам комфортно с eclipse, тогда eclipse-STS for grails даст вам все навороты. Я до сих пор вижу, как многие разработчики рельсов используют textmate, хотя rubymine добился больших успехов (ранняя версия rubymine использовалась для остановки моего Ubuntu).

В итоге оба являются отличными фреймворками MVC. RoR намного более зрелый и имеет намного больше разработчиков. Grails - это то место, где был RoR 3-4 года назад, но я вижу прогресс намного быстрее. Надеюсь это поможет.

Другие вопросы по теме