Моя компания находится в процессе перехода по пути Грааль. Причина этого в том, что нынешние разработчики сильно любят Ява, но чувствовали необходимость в Язык в стиле MVC для некоторых будущих проектов веб-разработки. Лично я пришел из мира дизайна / юзабилити, но по мере того, как я беру на себя все больше «интерфейсных» обязанностей, я начинаю чувствовать потребность в более интенсивном изучении языка, чтобы я мог кодировать некоторую логику, но особенно интерфейс. код для моих интерфейсов и прочего.
Я пытался попасть в Python / Django лично, но никогда не тратил на это слишком много времени. Теперь, когда моя компания «прыгает» на Grails, я купил «Гибкая веб-разработка с Rails (3-е изд. - бета)» и начинаю вникать в RoR. Я все еще хотел бы изучить Python в будущем или на стороне, но мой самый большой вопрос:
-ИЛИ ЖЕ-
В основном вопрос вращается вокруг полезности Grails в некорпоративной среде и сходства между Rails и Grails. (и это, пытаясь избежать столетнего обсуждения Python vs Ruby (on Rails) :))
Может кто-нибудь это обновить? Я хочу убедиться, что люди могут получить по крайней мере самое последнее мнение по этому поводу.





Вам следует просто пропустить RoR и сосредоточиться на изучении Grails, которое вам понадобится в работе.
Просто пропустите RoR. Подобных вещей действительно не так много (кроме названия)
Я определенно считаю, что достаточного знания Java и некоторого опыта программирования на динамическом языке более чем достаточно, если вы планируете серьезно заниматься разработкой с помощью Grails.
Сравнение только представлений (библиотеки тегов в Grails, RHTML в RoR) и постоянства (GORM и ActiveRecord) слишком сильно различается в ядре, чтобы тратить время на изучение мельчайших деталей 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 полный рабочий день и ведет блог с некоторыми советами:
На первый взгляд может показаться, что это совершенно разные истории, поскольку они основаны на совершенно разных языках (Ruby и Groovy).
Затем, после прочтения пары руководств, вы поймете, что они разделяют одни и те же принципы, строительные леса, утиную типизацию ... и, наконец, одну и ту же цель: сделать гибкое программирование возможным.
Если вы уже знакомы с такими терминами, как IoC и MVC, вам будет легко и интересно изучить любой из этих вариантов.
Я бы выучил и то, и другое. Это одновременно развивающиеся технологии. Изучение программирования на RESTful - настоящее преимущество на любом языке.
Я использую GRAILS на работе и RoR для сторонних проектов. Я могу сказать, что сообщество RoR намного больше (я говорю о RoR против Grails, а не о RoR против Java) и очень полезно.
Краткий ответ: они похожи .... что может болеть?
@Levi Figueira
Во-первых, Grails гораздо более гибок, чем Rails. Rails сложно использовать с унаследованной БД, потому что ActiveRecord имеет слишком много конструктивных ограничений, которым не следуют многие унаследованные БД. Grails, в других случаях, может использовать стандартные сопоставления Hibernate, которые могут соответствовать гораздо более широкому диапазону конструкций БД.
Сообщество Rails очень активно пропагандировало RoR, в результате чего были установлены высокие ожидания, которые не всегда оправдывались (производительность программистов хорошая, но обеспечить хорошую производительность после развертывания не так-то просто).
Grails был разработан как преемник Java со сценариями, тогда как интеграция Ruby-Java, используемая, например, в JRuby on Rails, должна быть модифицирована.
Я бы посоветовал вам придерживаться Grails; Возможно, он не такой блестящий, как RoR, но это прагматичный выбор; вы получаете повышенную производительность и возможность многократного использования существующих библиотек Java.
Прыгайте прямо в Grails. Я уверен, что Ruby / Rails хорош, но так же и с Groovy / Grails. Я рекомендую эту книгу.
http://beginninggroovyandgrails.com
Помните, что список опечаток в сети. В книге есть пара ошибок.
http://beginninggroovyandgrails.com/site/content/errata
Также посмотрите трехминутную 30-секундную демонстрацию создания вашего первого приложения Grails.
http://grails.org/Grails+Screencasts
Этот учебник покажет вам основы.
Да, 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 - идеальный выбор.
Ммм, я не знаю, как это сказать. Некоторые люди могут меня за это вышибить.
Я считаю, что Ruby более интересный язык по сравнению с Groovy. Groovy существует только для того, чтобы облегчить Java-программисту, поскольку вам не нужно изучать слишком много нового синтаксиса. Но в целом я считаю, что он не такой классный, как Ruby. Groovy не был бы языком JVM, который стоит изучить на основе голосования участников на JavaOne в этом году, но вместо этого Scala - это то, что нужно. Кроме того, в первую очередь сам изначальный создатель Groovy не верит в язык, который создал сам.
Что касается сообщества, то сообщество Grails не такое большое, как Rails, хотя с момента приобретения Spring все больше и больше людей используют его в серьезных приложениях. В Rails больше вакансий на рынке по сравнению с Grails (если вы хотите вложить деньги в поиск новой работы).
Но как фреймворк, если вы действительно заботитесь о ремонтопригодности и вам нужен доступ к инфраструктуре Java и устаревшей системе Java, Grails - это то, что вам нужно, поскольку он обеспечивает более чистый доступ к Java. Сам Grails построен на нескольких популярных фреймворках Java (Spring и Hibernate). Сам Rails, IMHO, напуган, как и сам Ruby, но его напуганность стоит вам ремонтопригодности. Сам Мац предпочитает Merb Rails 2, потому что Rails создает DSL поверх Ruby, что действительно противоречит философии Ruby. И я считаю, потому что сам Rails является общепринятым, что, в свою очередь, если у вас нет того же мнения, что и создатель, он может не соответствовать вашим потребностям.
Вывод
Итак, в вашем случае изучите Grails, поскольку это консенсус компании (вы должны уважать консенсус) и если вы все еще хотите обеспечить свою работу. Но потратьте некоторое время на изучение Rails и Ruby, если вы хотите получить шанс получить новую работу в будущем.
Хорошие моменты! Я слежу за Scala и, возможно, буду использовать его в будущем. На данный момент Rails достаточно! :) Кроме того, концепция Groovy / Grails никогда не казалась мне долгосрочной. Я не знал об этих комментариях создателя Groovy, но они подтверждают мои первоначальные мысли. Grails не является согласованным. Это был «выход» для нашего Java-парня, когда он столкнулся с неизбежным для наших новых вещей: Rails! :) Пока что я люблю Ruby / Rails и не могу дождаться версии 3.0! Я научился Rails и теперь медленно осваиваю более продвинутый Ruby! Вполне доволен тем путем, который я / мы пошли. ;)
Довольно страшно использовать технологию, в которую сам создатель уже не верит.
Отличный ответ! Вы сравнивали сообщество плагинов (Gems vs Plugins)? Rails кажется победителем в этой области.
Вы также можете взглянуть на Clojure, язык JVM, который только начинает набирать популярность. Это может быть хорошим выбором для компании, основанной на Java, поскольку он совместим с вашей старой кодовой базой и содержит множество современных инноваций. Появляется несколько хороших веб-фреймворков, включая Compojure.
Ладно: есть разработка. Я начал с Rails для наших внешних веб-приложений, в то время как другой (Java) программист пошел дальше с Grails для интранет-вещей. Я считаю, что в будущем эти две стороны наших приложений объединятся, и Rails возьмет на себя инициативу. Основная причина, по которой он использует Grails, заключается в том, что он Java и знает все о Hibernate. :) Пока что я вполне доволен тем, что отказался от поддержки Grails и опередил Rails. Это будет намного полезнее лично мне и нашей компании в долгосрочной перспективе. Спасибо за ваши ответы! Люблю это сообщество! : D