Изучение Ruby on Rails полезно для Grails?

Моя компания находится в процессе перехода по пути Grails . Причина этого в том, что нынешние разработчики сильно увлечены Java, но чувствовали потребность в языке в стиле MVC для некоторых будущих проектов веб-разработки. Лично я пришел из мира дизайна / юзабилити, но по мере того, как я беру на себя все больше «интерфейсных» обязанностей, я начинаю чувствовать потребность в более интенсивном изучении языка, чтобы я мог кодировать некоторую логику, но особенно интерфейс. код для моих интерфейсов и прочего.

Я пытался лично познакомиться с Python / Django , но никогда не тратил на это слишком много времени. Теперь, когда моя компания «прыгает» в Grails, я купил Agile Web Development with Rails (3rd Ed - Beta) » и начинаю разбираться в RoR . Я все еще хотел бы изучать Python в будущем или на стороне, но мой самый большой вопрос:

  • Должен ли я изучать RoR и иметь более универсальный язык в моем «портфолио», зная, что мои знания RoR будут полезны и для моих нужд Grails ??

-ИЛИ-

  • Должен ли я просто пропустить RoR и сосредоточиться на изучении Grails, которое мне скоро понадобится для работы, а позже поработать над изучением RoR / Django (Ruby / Python)?

В основном вопрос вращается вокруг полезности Grails в некорпоративной среде и сходства между Rails и Grails. (и это, пытаясь избежать столетнего обсуждения Python vs Ruby (on Rails) :))

Ответов (15)

Решение

Ммм, я не знаю, как это сказать. Некоторые люди могут меня за это вышибить.

Язык (Groovy и Ruby)

Я считаю, что Ruby более интересный язык по сравнению с Groovy. Groovy существует только для того, чтобы облегчить Java-программисту, поскольку вам не нужно изучать слишком много нового синтаксиса. Но в целом я считаю, что он не такой классный, как Ruby. Groovy не был бы языком JVM, который стоит изучить на основе голосования участников на JavaOne в этом году, но вместо этого Scala - это то, что нужно. Кроме того, сам изначальный создатель Groovy не верит в язык, который создал сам .

Сообщество и вакансии

Что касается сообщества, то сообщество Grails не такое большое, как Rails, хотя с момента приобретения Spring все больше и больше людей используют его в серьезных приложениях. В Rails больше вакансий на рынке по сравнению с Grails (если вы хотите вложить деньги в поиск новой работы).

Фреймворк (Grails и Rails)

Но как фреймворк, если вы действительно заботитесь о ремонтопригодности и вам нужен доступ к фреймворку Java и устаревшей системе Java, Grails - это то, что вам нужно, поскольку он обеспечивает более чистый доступ к Java. Сам Grails построен на нескольких популярных фреймворках Java (Spring и Hibernate). Сам Rails, IMHO, напуган, как и сам Ruby, но его напуганность стоит вам ремонтопригодности. Сам Мац предпочитает Merb Rails 2, потому что Rails создает DSL поверх Ruby, что действительно противоречит философии Ruby. И я считаю, потому что сам Rails является общепризнанным, что, в свою очередь, если у вас нет того же мнения, что и у создателя, это может не соответствовать вашим потребностям.

Заключение

Так что в вашем случае изучите Grails, поскольку это консенсус компании (вы должны уважать консенсус) и если вы все еще хотите сохранить свою работу. Но потратьте некоторое время на изучение Rails и Ruby, если вы хотите получить шанс получить новую работу в будущем.

Просто пропустите RoR. Подобных вещей действительно не так много (кроме названия)

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

Сравнение только представлений (библиотеки тегов в Grails, RHTML в RoR) и постоянства (GORM и ActiveRecord) слишком сильно различается в ядре, чтобы тратить время на изучение мельчайших деталей RoR. Просто погрузитесь в Grails, не пожалеете.

Изменить: исправлена ​​опечатка.

Вам следует просто пропустить RoR и сосредоточиться на изучении Grails, которое вам понадобится в работе.

Небольшой вопрос: почему они выбрали Grails, потому что Groovy по синтаксису ближе к Java, чем Ruby, или потому, что им нужен доступ к Java?

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

Раньше я никогда не использовал Grails или Rails, но раньше я использовал Groovy и Ruby, и как язык, я считаю, что Ruby намного чище и согласованнее, и команда могла бы получить больше удовольствия от производства. Как платформа, Rails существует дольше и привлекает к себе много внимания, поэтому я могу представить, что это более стабильная платформа для использования с более конкретными функциями.

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

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

Я изучаю RoR и Grails, и последний намного легче выучить.

Обе структуры используют одни и те же принципы (agile, kiss, dry, duck typing и т. Д.), Но синтаксис Groovy ... ну, это просто великолепно, то, что вы можете изучить и использовать в мгновение ока.

Я действительно чувствую, что у Grails более светлое будущее, чем у RoR.

PD: На всякий случай, если вы сочтете это полезным, мой колледж работает с Grails полный рабочий день и ведет блог с некоторыми советами:

http://dahernan.net/search/label/grails

На первый взгляд может показаться, что это совершенно разные истории, поскольку они основаны на совершенно разных языках (Ruby и Groovy).

Затем, после прочтения пары руководств, вы поймете, что они разделяют одни и те же принципы, строительные леса, утиную типизацию ... и, наконец, одну и ту же цель: сделать гибкое программирование возможным .

Если вы уже чувствуете себя комфортно с такими терминами, как IoC и MVC, вы найдете любой из этих вариантов легким и интересным для изучения.

Я бы выучил и то, и другое. Это одновременно новые и перспективные технологии. Изучение программирования на RESTful - настоящее преимущество на любом языке.

Я использую GRAILS на работе и RoR для сторонних проектов. Я могу сказать, что сообщество RoR намного больше (я говорю о RoR против Grails, а не о RoR против Java) и очень полезно.

Короткий ответ: они похожи .... что может болеть?

@Levi Figueira

Во-первых, Grails гораздо более гибок, чем Rails. Rails трудно использовать с унаследованной БД, потому что ActiveRecord имеет слишком много конструктивных ограничений, которым не следуют многие унаследованные БД. Grails, в других случаях, может использовать стандартные сопоставления Hibernate, которые могут соответствовать гораздо более широкому диапазону конструкций БД.

Прыгайте прямо в Grails. Я уверен, что Ruby / Rails хорош, но так же и с Groovy / Grails. Я рекомендую эту книгу.

http://beginninggroovyandgrails.com

Помните, что список опечаток в сети. В книге есть пара ошибок.

http://beginninggroovyandgrails.com/site/content/errata

Также посмотрите трехминутную 30-секундную демонстрацию создания вашего первого приложения Grails.

http://grails.org/Grails+Screencasts

Этот учебник покажет вам основы.

http://grails.org/Quick+Start

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

Grails был разработан как преемник Java со сценариями, в то время как интеграция Ruby-Java, используемая, например, в JRuby on Rails, должна быть модифицирована.

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

Да, Grails - это то, что вам нужно. RoR хорош, но он привязывает вас к экосистеме Ruby. Часть усилий по изучению новой структуры или языка - это изучение библиотек классов, а также синтаксиса языка. Если все ваши сотрудники принадлежат к типу Java, вам будет гораздо легче получать помощь и поддержку, поскольку все они будут говорить на одном языке с вами.

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

Также есть по крайней мере одна хостинговая компания, предлагающая бесплатный хостинг приложений Grails ( http://www.mor.ph/ ), что означает, что вы можете создавать прототипы сайтов с небольшими объемами данных до того, как придется платить.

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

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

Да, если мы сравним grails и rails, я бы выбрал grails (я разработал некоторые приложения для интрасети в grails).

Но Django превосходит оба - так как python - идеальный выбор.

Вы также можете взглянуть на Clojure , язык JVM, который только начинает набирать популярность. Это может быть хорошим выбором для компании, основанной на Java, поскольку он совместим с вашей старой кодовой базой и содержит множество современных инноваций. Появляется несколько хороших веб-фреймворков, включая Compojure .