Grails - Lift: Какая структура лучше подходит для каких приложений?
Я использую Grails в течение последних нескольких месяцев, и мне это очень нравится, особенно GORM. Однако меня интересует Scala Lift. Поэтому я хотел бы узнать ваше мнение о том, какие веб-приложения лучше подходят для какой из этих двух фреймворков, или это просто вопрос вкуса, какие рамки использовать?
Наконец, какая из этих структур, по вашему мнению, будет более использоваться в будущем?
У меня такое чувство, что Grails далеко не достигает критической массы, и она по-прежнему остается очень неясной (за последние несколько месяцев у меня была возможность работать с компаниями среднего размера и ИТ-стартапами, работающими в основном со штатом JVM, и только один человек знал и использовал Grails), и я даже не уверен, может ли он стать "RoR" в мире Java (действительно, сообщает о снижении роста за последние несколько месяцев, даже если другие структуры имеют положительный рост). И мне нравится Groovy, это действительно легко узнать, но я заметил, как медленно это может быть для некоторых задач.
С другой стороны, Scala кажется более популярным (индекс Tiobe), и тот факт, что Twitter использует его, теперь придавал ему еще больше присутствия в блогосфере с большим количеством любителей и ненавистников, создающих шум. Он славится быстрым и масштабируемым. Тем не менее, язык кажется несколько трудным для понимания и обучения для многих разработчиков (возможно, он никогда не получит статус основного). Лифт мало известен, и я прочитал несколько отчетов о том, что он лучше подходит для небольших приложений (менее 20 классов домена).
Увидев количество опубликованных книг Groovy -Grails доминируют прямо сейчас, но у многих издателей есть книги Scala на произведениях, поэтому я думаю, что это преимущество не будет длиться долго.
Наконец, проблема состоит в том, что у обоих языков и фреймворков по-прежнему есть плохая поддержка IDE (с каждым днем становится лучше, чем в Java-магазинах).
Я не хочу начинать пламенные войны, но мне было бы очень интересно услышать мнения других пользователей.
Ответы
Ответ 1
Grails - хорошая идея (но только "украденная" из рельсов), но тот факт, что ребята groovy не заинтересованы в получении надлежащей поддержки Eclipse, мешает ей добиться успеха. Я даже видел, что вопросы Eclipse не отвечают вообще в списках grails.
Я согласен с Тимом в том, что Netbeans 6.7 наконец-то предоставит поддержку Open Source IDE с поддержкой Open Source для groovy/grails - и, в конечном итоге, SpringIDE также будет лучше поддерживать groovy/grails.
Причина, по которой многие люди Java любят Java, - это статическая типизация, которая позволяет инструментам много помогать вам во многих вещах. Это потеряется с помощью языка groovy.
Да, я мог бы написать каждый действительно важный фрагмент кода на Java и по-прежнему использовать Grails - но тогда почему я должен просто сохранить кучу строк кода клея, не так ли научиться эффективно использовать структуру Java?
Чтобы подойти к концу: я еще не взглянул на scala, но создал некоторые простые приложения с grails - и я, как правило, возвращаюсь к java, даже переопределяя каждое приложение, которое нуждается в дальнейшей разработке в простой Java-среде - Я думаю, калитка и Шим.
Я также посмотрю на Scala/Lift, я слышал много хорошего об этом!
BTW: Я бы сравнил сообщества и посмотрел списки рассылки - сколько людей там, они получают хорошие ответы на свои важные вопросы?
Похоже, что у Grails нет ответа с почти 50%, что я чувствую плохо.
Ответ 2
Принятый ответ здесь имеет действительно неосведомленный взгляд на Groovy - это современный динамический язык (динамический или статический - это огромная дискуссия сама по себе и не особенно актуальная здесь). Это по дизайну, и поэтому не является недостатком, просто разница. В нем много современных языковых функций, которые Java не имеет таких, как замыкания, native regexp, полиморфная итерация, некоторые необязательные статические типизации (вопрос дебатов, а также посмотрите на groovy ++), собственный синтаксис списков и карт, и т.д., вы можете увидеть сравнение здесь http://groovy.codehaus.org/Differences+from+Java
Чтобы ответить на фактический вопрос о Грейле или Лифте, я бы сказал, что Грэйлс спрятал трубку. У него есть SpringSource, и просто посмотрите страницу плагинов http://www.grails.org/plugin/category/all - я даже не могу найти, какие плагины или эквивалент доступны для Lift. Grails также находится на вершине новейших технологий, обладающих облачным дизайном, с такими функциями, как поддержка сообщений RabbitMQ и поддержка GORM под ключ для MongoDB и Redis.
Ответ 3
Поддержка Grails в netbeans 6.7 действительно хороша, а также поддержка идеи в Maia.
Eclipse все еще довольно сочный.
Я посмотрел на лифт, но был обеспокоен имеющимися сейчас ресурсами; это изменится в будущем, но мои проекты не могут ждать.
Ответ 4
Я хотел бы конкретно ответить на вопрос "для каких приложений". Основное различие между философией Grails and Lift, по-видимому, заключается в том, что Grails применяет MVC, тогда как лифт кажется более либеральным, то есть он не обеспечивает MVC, но предоставляет достаточно возможностей для использования MVC, если вы хотите.
Также Lift отлично подходит для "приложений с одной страницей", особенно если вам нужно реализовать функциональность серверного нажатия, используя технологию Comet (что, очевидно, не означает, что она не подходит для других типов приложений). С другой стороны, Grails кажется лучше для приложений "Enterprisy", особенно если вы уже знакомы с Spring и Hibernate, но хотите, чтобы ваше приложение было намного более кратким (с использованием соглашения по конфигурации), чем то, что неграмотные приложение будет использовать эти технологии.
Ссылки:
Отказ от ответственности:
Я только что начал изучать Lift и создал некоторые простые приложения, используя Grails.
Ответ 5
Благодаря всем улучшениям и улучшениям производительности Grails2.0, с большой поддержкой, предоставляемой IntelliJ 11 для платформы, появилась возможность плагировать практически любые передовые веб-технологии в вашем приложении grails, да и вес VMware за ним - Я действительно не вижу, как Lift может быть преимуществом или хорошим выбором. Просто подумайте о том, чтобы использовать два разных языка в одном приложении, потребность в двойном опыте в команде и т.д.
Оригинальный вопрос был опубликован, как 2+ года назад, и я думаю, что время показало, на какой стороне выбор сообщества разработчиков;)