Почему Ruby on Rails – идеальный инструмент для построения следующего поколения промышленных приложений
Несмотря на то, что Joel хотел сказать в этом топике, Я думаю Rails уже готов к использованию на предприятии. И компании, занимающиеся созданием приложений для предприятия, должны внимательно присмотреться к Rails. Расскажу почему …
Работая с PeopleSoft больше десяти лет, у меня была возможность прочувствовать удовольствие, создавая приложения с помощью быстрой и продуктивной среды разработки, называемой PeopleTools. Хотя PeopleTools теперь уже устарел в сравнении с более современными технологиями, он был (и остается) самой продуктивной средой для разработчика, из тех, с которыми мне приходилось иметь дело (в смысле для построения приложений уровня предприятия).
В течение последних лет, я старался не отставать от жизни, изучая новые языки программирования, среду разработки и платформы, и познакомился с кучей новшеств в различных областях. Некоторые из них относились к программному обеспечению уровня предприятия, некоторые нет. В последнее десятилетие наибольшее влияние на индустрию разработки ПО для предприятия оказали те идеи и продукты, которые приносили успех в веб. PeopleSoft и их партнеры портировали свои клиент-серверные приложения для работы в Интернет, потому что они таким образом позиционировали себя перед клиентами: более дешевое и легкое развертывание приложений. Сегодня веб продолжает оставаться одним из ключевых факторов, оказывающих наиболее сильное влияние на предприятия.
Однако предприятие является довольно жестким ландшафтом. Невозможно сделать масштабные изменения в этом ландшафте, если это не принесет абсолютную выгоду до самого нижнего звена организации. Сегодня (и на продолжении последних десяти лет) Java, XML, WS-*, SOA, и другие непонятные аббревиатуры были разрекламированы как золотой стандарт для предприятия. Вся индустрия описывает круги вокруг этого золотого стандарта, пытаясь оправдать надежды на улучшение эффективности и производительности в реальности. По моему мнению, этот золотой стандарт нуждается в замене.
Может показаться, что я опоздал на вечеринку, но я фактически столкнулся с Rails и его версией 1.0, но, так же, как с любой другой новоявленной технологией, нужно проверить, так ли оно приятно на вкус, как привлекательно пахнет … особенно когда думаешь, как это повлияет на предприятие. Вещи движутся медленно на предприятии, и повсюду развешены красные ленточки, чтобы быть уверенным, что шестеренки в механизме предприятия вращаются должным образом и плотно подогнаны друг к другу. Большинство решений выполнялось комитетом, и если не согласна была одна его часть, то всё шоу заканчивалось. Поэтому, внедрение Rails на предприятии – это не простая вещь. Вы, наверное, удивлены, почему я считаю, что Rails – ключевой вопрос для приложений предприятия, по крайней мере, для людей, чьей обязанностью является писать эти приложения. Я не собираюсь писать о том, почему Rails является важной технологией. Это уже делали, опять, и снова. Что важно знать: противником чего явился Ruby - это золотой стандарт, Java. Существует вражда между лагерями разработчиков Java и Rails последние несколько лет, и большинство недоразумений просто детские. Очевидно, что Rails прозвучал новым аккордом для многих разработчиков Java. Некоторые решили перейти в лагерь Ruby, а некоторые воздержались, думая, что это еще одна модная причуда. Но я не думаю, что это причуда. Вот мои аргументы:
-
Ruby on Rails – супер производительная среда для разработки приложений. На Rails можно быстро без особых усилий создать приложение, быстрее, чем на Java или .Net.
-
Ruby – мощный, легкий для изучения, полностью объектно-ориентированный язык. Rails не представляет собой ничего без Ruby.
-
Все проблемы с производительностью, с которыми встречался Twitter (самое популярное приложение Rails, которое известно всем), не играют большой роли для приложения уровня предприятия. Назовите мне хоть одно установленное приложение на предприятии, которое должно выполнять 11 тысяч запросов в
минутусекунду? Согласно Тиму Брэю, "Сейчас стандартный Ruby and Rails, без большой переделки, достаточно быстр для многих приложений. Я имел в виду действительно многих из приложений". -
JRuby. Платформа Java не собирается исчезать. Она есть и продолжит оставаться неотъемлемой частью предприятия. JRuby позволяет Rails быть пригодным к этой платформе и исключить все проблемы, которые в ней присутствуют.
-
Сообщество Ruby растет не по дням, а по часам каждый день: и также растет их богатство (библиотеки, плагины и т.д.).
Я создал много приложений с помощью PeopleTools, которые имеют много общего с Rails (что касается производительности для разработчиков). Это все еще хороший пакет для разработки приложений (наверное, лучший в своем классе), но он отстал от времени. Я вижу Rails как следующий логический шаг в бизнесе приложений предприятия. Хотя, это может оказаться всего лишь мечтами с моей стороны.
Некоторые комментарии (выборочно):
* Raimonds
Много лет я занимался внедрением проектов Oracle E-Business Suite для наших клиентов. И недавно я начал изучать Ruby on Rails и он мне действительно понравился.
Поэтому я могу сравнить существующие технологии PL/SQL и Java в EBS с RoR, я обнаружил, что RoR мог бы стать более производительной средой для разработки приложений предприятия.
Но насколько я знаю, Oracle продолжает строить приложения Fusion только с использованием технологии Java, и в текущий момент я не вижу, чтобы Oracle обсуждал использование более производительных динамических языков для этого.
Нет ли у вас какой-нибудь инсайдерской информации, обсуждается ли в Oracle Ruby или другие динамические языки для их платформы приложений Fusion (или хотя бы для части этой платформы)?
* Robert Dempsey * Stevo * Eelco Hillenius * Rich Manalang * Rich Manalang * rick
Rich,
Спасибо за великолепную статью. Я согласен с большинством сказанным, и тоже думаю, что война языков бессмысленна. В ADS мы видим много вещей в JRuby, и я также написал руководство об этом на блоге ADS. Я вижу дальнейшее широкое объединение языков и распространение Rails на предприятии.
- Robert Dempsey
Намного легче создать производительное приложение так, как это делал PeopleTools / PeopleSoft, когда вы контролируете весь стек технологий! Сравните с этим построение веб приложения предприятия, когда используется по крайней мере 5 различных технологий (html, css, javascript, xml, json) на стороне клиента, это все равно, что сравнивать яблоки и слона.
Я согласен, что для Rails есть место, и я могу привести кучу мест, где он может быть использован для корпоративных приложений внутри предприятия. Но должен ли я использовать его для построения публичного, высоко критичного приложения, доступного всему миру 24 часа в день, семь дней в неделю? Нет.
Я долгое время имел дело с rails, django и java. По моему мнению, если вы делаете пустяковое приложение, то же самое можно легко сделать с помощью java, особенно если вы опираетесь на такой стек, как appfuse или используете hibernate / ibatis для создания персистентного слоя. Большинство времени разработчика отнимает создание интерфейса пользователя.
Правильно. Rails уже готов к использованию на предприятии, так же, как и PHP.
Однако, является ли Rails "совершенным" инструментом для предприятия? Ок, только если вы предпочитаете набивать код ручками (вам не нужны преимущества, которые дают IDE и вы думаете, что тестирование модулей является идеальной заменой компилятора), если вы не привержены идеям строгого разделения логики и презентационного слоя (вы не работаете с веб-дизайнером и/или только воспроизводите страницы из шаблонов photoshop), вы не придаете значения объектно-ориентированному подходу в презентационном слое (вы лучше напишите код для модели без сохранения состояния), вы не доверяете компонентам, инкапсулирующим свои свойства (важнее повторное использование), и т.д., тогда, я полагаю, да, Rails будет идеальным инструментом для вас.
Lars, ты прав: Мне нужно было обозначить, что я имел ввиду, говоря о "приложениях предприятия". В этом случае, я имел ввиду приложения типа "ERP". Такие поставщики как мы, SAP и другие поставляют эти приложения построенные на стеке, собственные они или открытые. Это что то типа пакетированных приложений, которые я указал в моей статье.
Rich
Tim, re: О трафике Twitter. Я наверное был навеселе. Я хотел написать 11 000 запросов в СЕКУНДУ. Вот здесь много написано.
http://www.google.com/search?q=twitter+11k+per+second
Rich
Re: Joel и его "пункты". Joel потратил около тысячи слов, рассказывая нам, почему нам нужно делать критические задачи с помощью одного из N + 0.5 языков программирования, и затем признался без тени иронии, что они доверились клону BASIC с закрытым кодом.
В любом случае, Java не уйдет в никуда, PHP не уйдет в никуда, .NET не уйдет в никуда, Python не уйдет в никуда, и Ruby только становится более-менее популярным. Что бы я хотел видеть, это то, чтобы люди, работающие с этими языками, прилагали больше усилий для совместной работы. Как мощный пользователь Ruby в команде, использующей Oracle, я хотел бы, чтобы Oracle в действительности способствовал развитию Ruby, не только комментариями в блогах - т.е. чтобы занялись, например, адаптером OCI для Ruby, адаптером Oracle для Rails, или даже выпустили проклятую библиотеку Intel Mac Instant Client, так как значительная доля разработчиков Rails работают на Mac и большинство из них на Intel Mac.
Спасибо,
Rick
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

