Как стать автором
Обновить

Комментарии 57

Поднял уже 3 проекта на Rails 3 RC и не жалею! Процесс разработки еще быстрее, удобнее и приятней.
Более того, у меня ощущение, приложения, написанные на Rails 3 у меня занимают в разы меньше времени на поддержку и диагностику возможных проблем.
Выход релиза очень радует.
Тоже уже запустили несколько проектов в продакшине на RC.
Bundler облегчил работу :)
Спасибо всем разработчикам!
Про правку форматирования: может лучше часть введения над хабракатом, а оглавление под ним.
Ура! Надеюсь перейдем гладко ;)
блин. немного не вовремя.теперь придётся многое переделывать.
Не обязательно же хвататься за голову и бежать переписывать все текущие проекты. Проблем не оберетесь. Это нужно(и то, если существует необходимость) делать размеренно в отдельном бранче.
Я только один проект перевел с Rails 2.
хочется спросить мнение у людей которые имели опыт работы на ZendFramework: ну как вам RoR?

в целом меня ZF устраивает, но вот PHP после C# немного раздражает. Хотелось бы узнать насколько RoR мощнее\продуманней\удобней чем ZF или наоборот.
Создатели Ruby – опытные программисты со всего мира, а создатели PHP – опытные программисты из Zend. Zend нацелены на получение прибыли с PHP (дорогущая ZendStudio и т.д., странно, как это ZendFramework не стал платным, но думаю, это дело времени), разработчики Ruby – безумные фанатики занятые разработкой оружия порабощения всего мира!=)
спасибо за ответ, но вопрос был именно о ZF vs RoR, а не PHP vs Ruby

ZF очень удобен, иногда диву даешься, когда узнаешь как некоторые вещи просто и изящно реализованы.
Так вот хотелось бы узнать мнение о RoR людей которые имели дело с ZF
Проще самому попробовать чтобы понять разницу. Я как то видел фразу в учебнике по Ruby, что «Ruby — это ваш последний язык программирования, так писать на чём либо другом вы уже никогда не захотите». Я после того как попробовал использовать рельсы два-три года назад (кстати тогда это была версия 1.2) больше ничего другого для веб приложений не использую.
Меня пока останавливают 3 вещи:
1. трудности с хостингом
2. просматривая видеокасты я понял что и в рельсах есть минусы незначительные(а где их нет?) после чего возникло ощущение что поменяю шило на мыло (зф на рор)
3. единственный язык на котором бы я хотел программировать — C# но к сожалению для массового сайтостроения он малопригоден(много расходов на хостинг итп)

определнно попробую как только закончу текущие проекты на ЗФ и высвободится время. Но хочется заранее услышать мнение тех кто перешел или попробовал и не понравилось)
> единственный язык на котором бы я хотел программировать — C#

просто вы не знакомы с Ruby

а хостинг — для испытаний heriku.com идеален
Дид ю мин heroku.com?
Да, опечатался, извиняюсь =(
А зачем вам нужно заниматься массовым сайтостроением? Большинство серьезных сайтов работает на своих серверах и стоит там то, что нужно программистам.

Нравится C# — найдите работу на C#.
у меня есть работа на C#, основная)
а фриланс у меня на PHP. отчасти изза того, что часть сайтов существующих уже на пыхе, да и с хостингом на python\ruby в зоне kz некоторые проблемы)
Ruby — magick, magick!
Rails — magick, magick, magick!
magic?
Пытаюсь писать на rails3 после ZF, пока ощущения очень разные. От «ой как круто» до «да чёрт возьми, какого ...»

Первое, что очень непривычно — перенос всей валидации в модель, отсутствие понятия «формы» (и сопутствующего — «фильтры») и, на мой взгляд, меньшая гибкость rails3 приложения.

Далее скопипастю небольшую запись из своего блога, написанную в «порывах гнева» (ни в коем случае не хочу разводить холивар, просто моё личное мнение как человека, долгое время писавшего на zf и пытающего понять всю красоту rails).

— «Programming with a pleasure» – девиз одной из лучших IDE для Ruby и Rails – RubyMine.

Действительно, написание простых приложений в rails доставляет неимоверное удовольствие: тут скаффолд, там скаффолд, тут плагин, там плагин, а если приложение не простое или требует создание гибкого интерфейса для пользователя – можно вешаться.

Для начала, про магию.

*Иногда про неё можно не знать и в итоге понять «что же тут блять происходит» можно только потратив минимум 30 минут на чтение кода самих Rails.
*Очевидное не всегда реализовано. Если вам кажется, что будет именно так, как вы хотите – придётся сто раз проверить. И это касается даже самых простых мелочей, расписаных в гайдах.
*Чтобы решить проблему придётся рыть и рыть в глубь – Rails на столько разбросан по файлам, на столько наполнен алиасами и псевдо-алиасами, что откопать проблему может быть очень сложно. Конечно, можно сразу писать в багтрекер, но если время не ждёт, то придётся рыть и рыть.

А теперь про написание кода
*Необходимость постоянно перегружать rails-сервер при изменениях в конфигах, либах и плагинах (во время разработки) неимоверно доставляет, особенно когда с полчаса правишь код, а потом понимаешь что он не работал…потому что rails и не думал, что ты его изменил.
*Автоподгрузка. При кажущейся красоте настройки оной, подключить для автоподгрузки lib/* практически нереально
*Неочевидность. Для того, что бы что-то заработало, нужно что-то сказать магическое. Про последнее может быть написано 100 страниц в api, но в них не скажут, что необходимо это магическое заюзать, чтобы что-то другое магическое заработало.
*Документация. Найти как сделать что-то можно только зная, куда копать.

И немного про скорость написания кода.

То, что я сейчас пишу уже в течение 2х дней и, видимо, буду писать ещё завтра, на «всеми любимых» php+zf я бы реализовал часа за 2-3.

Накипело.

Извините, любители рельсов, но накипело, может это не моё, может я такой нуб и идиот…я ещё побьюсь конечно, но чую я, что либо откажусь от них и вернусь полностью на php+zf или буду искать что-то другое, может на других языках.
----
Спасибо за мнение! Сам уже давно задумал побег с ZF, как только будет релиз третьей рельсы.

Я думаю, низкая скорость разработки, первое время, это естественный overhead знакомства с новым фреймворком. В конечном итоге, полагаю, стройность рельсы и синтаксический сахар Ruby дадут явное преимущество. Такие вещи, как например, named scopes, хоть и вполне реализуемы в PHP+ZF, выглядят в последнем инопланетными костылями, когда в Rails это нечто изящное и естественное.
Добавлю, что вижу проблему Zend Framework не в самом ZF, а в PHP. К сожалению, для ZF ещё не случилось The Great Decoupling, тем не менее, приближаясь к ZF2, он становится заметно стройнее и логичнее.

А вообще, если бы у разработчиков ZF был Ruby, то они бы написали Rails.
Дада… побег хочется совершить в основном изза морального устаревания PHP. ни тебе enumerables, ни нормального неймспейсинга.
после пхп меня в рельсах только магия смущает. В пхп все голое
Ну так магией надо просто научиться пользоваться и тогда она будет экономить вам кучу времени.

Для ярых ненавистников магии существует Python и Django.
все тру — у меня те же самые ощущения — простый сайты по книжки создаются на ура, но как встречаешь проблему, magic рельсов просто начинает выносить мозг.

сейчас в качестве прототипа делаю один очень сложный проект на expressjs — пока все очень и очень нравится (ну, единственное что не хватает, это нормальный debug + IDE).
RubyMine не достаточно хорош? Учитывая что он построен на IDEA так же как и PHPStorm то лучшего IDE не бывает
эээ вы этот комментарий мне? я вроде не жаловался на RubyMine, хотя мне больше нравится Netbeans. может вы про вторую часть комментария? expressjs это фреймворк для nodejs — а там пока ни IDE (кроме Notepad/TextMate), ни debug (кроме кривого плагина).
ааа… пардон, невнимательно читал
Что самое интересное, всё как раз с точностью до наоборот:
RoR превосходно подходит для создания сложных веб-приложений, а для создания простеньких сайтов подойдут скорее php-шные CMS'ки.
Согласен. Для простых вещей иногда проще за 15 минут развернутьк акую-нибудь cmsку. А под конкретное ТЗ быстрее, проще, эффективней и качественней выйдет на RoR(в контесте данного треда). Просто нужно понять, как там все работает, экспериментировать.
спасибо, наконец-то неофтопиковый коммент. хоть и негативный:)
вот тоже пока от поверхностного рассмотрения рельсов двоякое ощущение: от восхищения до отторжения.

Ну а что можете сказать теперь о минусах ZF относительно RoR?
Я не могу сравнивать непосредственно zf с ror, скорее zf+php с rails+ruby…
Вообще даже такое сравнение достаточно сложно для меня, по скольку к zf я уже привязался.

Но всё же… после написания rails кода в zf сильно не хватает перегрузки. Так чтобы взять и расширить некий класс, заменить его поведение, добавить примесь и т.д., не создавая новый класс. Динамическая модель в ruby просто великолепна.

Не хватает фильтров в контроллере (да, фильтры есть, но их гибкость достигается засчёт ручной реализации того, что в rails уже есть).

ORM модель в zf, хоть и реализует другой паттерн (не activeRecord), всё же имеет много внутренних нелогичностей.
Простой пример. Берём объект, пытаемся сделать выборку с join и… приходится руками указывать текущую таблицу.

Работа с сигнатурами файлов… ZF пытается определить всё сам (где находится база сигнатур), определяет не правильно, после этого при деплое приходится руками на сервере править zf, чтобы он не занимался самодурством.

В общем, если подвести итог — негибкость кода и, иногда, нелогичность, неоднообразность решений. Последнее потихоньку исправляется и я жду не дождусь ZF2.
Главный минус ZF — это PHP.
Сначала писал 5 лет на perl. Потом 6 лет на php (ох как я его ненавидел).
Сейчас перехожу с ZF на Rails, пока еще многое дается с трудом, но от одной генерации ресурсов и работы с формами просто кончаю) Теперь работа с формами стала по настоящему легкой. Все больше ненавижу ZF и PHP в часности. Или взять те же mixin'ы, блоки, итераторы — это круто. Раньше мой любимый язык был Перл, теперь — сами догадайтесь какой)
А если б вы ещё видели formtastic… :-)
Использую и его)
Часто меняемый код лучше помещать в модели и в хелперы, при этом в deve перезагрузка классов автоматическая.

Но вообще странно, я, к примеру, на Рельсах код пишу намного быстрее, чем в Zend Framework.

Для маленьких штучек предпочитаю Sinatra и Node.JS/Express.
мы с вами схожи — вообще если руби, я пытаюсь делать на sinatra — как то понятнее для меня, продуктивность на старте может и страдает, зато окупается сопровождение.
Имхо, там основное различие как раз в мощности языков. Страшное $a = array( «key» => «value»); превращается в a = [ :key => «value» ] и т.д. типа method chaining: News.active.by_author(«Smith»).limit(5).
Rails сильнее ZF как раз из-за использования Ruby.
Да, в этом я соглашусь, очень часто в голове возникает «вот бы ZF, да на ruby»
получается Rail на руби вас устраивал бы меньше чем ZF на руби? )
Я бы больше сравнивал Рельсы с Симфони. Первая версия очень много переняла от рельсов. Но сейчас оба продукта развиваются в сторону децентрализации.

Зенд же изначально был децентрализован, из-за этого терялось много времени при первоначальной сборке проекта (подключение и настройка когнтроллеров, логгеров, дебаггеров и т.п.) Рельсы и симфони включают всё из коробки.

Думаю, Рельсы будут можщнее и удобнее Зенда. А вот к Руби привыкать придется некоторое время.
кстате, я считаю что симфони лучший фреймворк для php
>Рельсы и симфони включают всё из коробки.
ZF включает из коробки всё и даже больше, но его компоненты разработаны и очень удобны для использования в не-ZF проектах.
Многое, что включено в бандл ZF в том же Rails достигается плагинами, даже не знаю что лучше, но несомненный плюс такого подхода в ZF в том, что не приходится выбирать между десятком плагинов и смотреть на совместимость — «если идёт вместе с ZF, значит точно работает».
Впечатления только хорошие. Быстрее, приятней, логичней.
спасибо за перевод, большую работу сделали
а мне кажется за Rails будущее web :)
Будущее Web за Javascript.
Какое удачное для меня совпадение — начал изучать RoR сразу с 3 беты и к релизу уже буду в силах создать свой первый RoR-сайт!
Поправьте пожалуйста опечатки: Resourse > Resource
Глаз режет.
кстати, работаю с рельсами в циклах, как и с ООП.
ух ты крутатень
ипать как тут все закручено, они там с ума сошли чтоли?
а впринципе… клевая вещь
мама мия, и как мен сделать эту штуку???
вот как… создатели гениальны
и по кургу… ООП я тожек сначала отрицал, потом понимал, потом опять…
Господа, написали бы ещё как запустить рельсы 3, руби 1.9.2 с mysql — было бы отлично. Ну никак не получается справиться с встроенным mysql2. всё время вылазиет pastie.org/1130112
А у меня не получилось переехать на Rails 3, уткнулся в это:
https://rails.lighthouseapp.com/projects/8994/tickets/5557-rails-300-yield-wont-show-block-contents-in-render-layout-if-it-is-placed-after-render-partial
Надеюсь, скоро починят…
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.