Ruby on Rails. Итоги первого месяца

    Чуть больше месяца назад я пересел с PHP на Ruby. Теперь хочу как-то резюмировать этот небольшой опыт и попытаться сформулировать плюсы и минусы.

    Все начинается со знакомства


    Первое, что пришлось прочитать — это Agile Web Development with Rails. Книжка почитается за библию, но на мой вкус она показалась не самой удачной. Хотя, пожалуй, главной ее проблемой является устарелость. Основная учебная задача книги — создание магазина. В основе лежат какие-то рельсы из серии 1.X.X (точно не помню), что во времена 2.X.X достаточно неактуально. И дело ведь не в том, что мне трудно откатиться на старую версию, а скорее в том, что мне абсолютно не хотелось разбираться в устарелом подходе.
    К счастью, все желающие могут посмотреть скринкасты Бала Паранжа на тему создания учебного магазина Depot на рельсах 2.1.1. Кроме того у него неплохие скринкасты и на многие другие рельсовые актуальные темы.

    Собственно с руби я знакомился по двум вещам:
    — прекрасная штука TryRuby, о которой тут уже писали
    — увлекательный комикс Why's — неоднозначно принимаемая сообществом книга, которая мне очень понравилась.

    Ну и на десерт — самое главное пособие (для меня) по руби и рельсам — это скринкасты Райана Бэйтса. Пожалуй одних этих скринкастов (для начала хватит и 20) хватит чтобы оценить и понять рельсы.

    К сожалению все вышеперечисленное (кроме AWDR, которое существует в переводе) на английском. Но мне кажется это только к лучшему — отличная ежедневная практика никому не помешает.

    Сообщество


    С этим оказалось все очень хорошо. Гугл группа RubyOnRails to russian — прекрасное место для решения любого вопроса [там мне давали ответы на все даже самые нубские вопросы не повышая тона, спасибо Max Lapshin ;) ]. В целом его приятно читать — много полезного узнаешь читая соседние топики. Утро понедельника у меня начинается с просмотра нового скринкаста Райана Бейтса, в остальные дни с чтения гугл группы ). В целом в гугл группах насчитывается более 1000 участников. При этом самые маститые гуру там не кичатса отвечать чуть ли не на все вопросы.

    Язык Ruby


    Сам язык произвел на меня впечатление, словно я пересел с жигулей на что-то с автоматической корбкой, комфортным салоном и все в таком духе. Руби оказался невероятно эротичным ;) языком. Параллельно мне приходилось закругляться с одним ПХП проектом и с каждым днем я все чувствительнее чувствовал провал между ПХП и Руби. Julik давно еще писал: PHP-код никогда не будет таким элегантным (просто потому что дизайн отсутствует).

    Всегда можно написать на PHP то же, что и на Ruby — возможно даже за то же количество строк :), но вряд ли это будет столь же изящно.

    Rails


    Я никогда не работал с фреймворками в ПХП — поэтому мне и не с чем сравнивать. В любом случае, с рельсами очень приятно работать. Особенно я писаю кипятком от организации отношений вроде has_many и прочих. Ну и работа с базой данных тоже вызывает бурю эмоций первое время.

    Что тревожит:
    — та кипа файлов, которая уже имеется в проекте (и это только начало).
    — хочется как-то проще перемещаться по структуре приложения. Это, конечно, проблема IDE, но хотелось бы нажатием пары клавиш очутиться в соответствующем контроллере из модели, или из метода контроллера в его представление. В TextMate и E этого нету =(
    — все твердят о тормозах рельсов — я пока не смог оценить, но подсознательно ожидаю.

    Ну а в целом MVC шаблон сам по себе очень организует работу и очень четко соответствует заявленной гибкости разработки. Сколько я не пытался проектировать приложения по типу MVC (как на actionscript, так и на ПХП), то в итоге из-за лени и из-за каких-то ошибок получалась вполне себе каша отдаленно напоминающая упомянутый шаблон. Он, конечно, не панацея — но определенно лучше хаотичного подхода.

    Кроме того, в рельсах есть большой набор плагинов (ну и возможность заворачивать свои) — этот подход меня вдохновляет много больше, чем стандартная библиотека ПХП, которую я все время писал дописывал и инклюдил =). Кроме того набор готовых плагинов достаточно обширен и спасает много времени.

    Холивар


    Git лучше subversion *)

    На конец


    Не то, чтобы Ruby лучше всех — просто на нем приятнее разговаривать
    Поделиться публикацией

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

      +5
      Основная учебная задача книги — создание магазина. В основе лежат какие-то рельсы из серии 1.X.X (точно не помню), что во времена 2.X.X достаточно неактуально.


      Есть бета версия третьего издания этой книги, там речь идет как раз о 2.x.x.
      Рекомендую.
        0
        Подскажите, где смотреть? Что-то туплю — не могу найти.
            0
            так она там за деньги…
              +25
              При Путине такого не было! ©
                +4
                Не такие уж и большие деньги, на самом деле, за такую книгу.
                650р., PDF-формат. Купил, доволен, читаю, чего и вам рекомендую. :)
                • НЛО прилетело и опубликовало эту надпись здесь
                  +6
                  Есть на демоноиде.
                    0
                    Поясните, пожалуйста, чем так плох этот коммент? Товарищ дал ссылку на книгу, другого не устроило то, что книга платная. Я указал ресурс, на котором она есть бесплатно.
                    Просто интересно ;)
              –7
              Уау! Это круто =), но уже не актуально
                +1
                Бета мне совсем не понравилась. Это не бета, а альфа максимум. Там очень мало изменений. Ждём полноценной версии.
                +9
                >Чуть больше месяца назад я пересел с PHP на Ruby.
                > я все чувствительнее чувствовал провал между ПХП и Руби

                >Я никогда не работал с фреймворками в ПХП — поэтому мне и не с чем сравнивать
                > этот подход меня вдохновляет много больше, чем стандартная библиотека ПХП

                вам не кажется, что вы сравниваете теплое с мягким?
                как можно сравнивать чистый ПХП с тяжелым MVC фреймворком?

                сначала вы говорите о Ruby, но я почему-то уверен, что вы писали только именно на рельсах, а не на чистом руби.
                  +2
                  да, я работаю в Рельсах. Но где кончается руби и начинаются релься? 80% кода ведь — это чистый руби. Сравнивая ПХП и Руби я сравниваю только стиль, эстетику, лаконичность яыка. мощность пхп и руби сравнивать глупо. также как сравнивать рельсы и пхп (хотя, можно провести анализ Симфонии или чего другого с Рельсами)
                    0
                    если уж сравнивать то Рельсы надо с печенькой (CakePHP) сравнивать.
                      0
                      не, не, не. С кейком не надо, ибо он с оглядкой на рельсы создовался ))
                        0
                        ну симфони с его автоматизацией — с еще бОльшей оглядкой =)
                  +9
                  у меня очень схожие ощущения были, когда я с PHP перешел на Django
                    +5
                    Кстати, один из минусов моего пхп прошлого было нежелание ничего слышать о других языках. Ведь я мог «все что угодно слепить на пхп»! А теперь у меня активно проснулся интерес к питону, лиспу и прочим языкам
                      +2
                      согласен, хотя у меня немного другая история — я «не хотел слышать» про другие «скриптовые» языки (перл, руби, питон) — Ведь я мог «все что угодно слепить на пхп»! даже не то что не хотел слышать — я в общем-то подозревал, что пхп не идеал — просто было тупо лень
                    +2
                    Я тоже в восторге от Ruby и Ruby On Rails.
                    Хотел бы порекомендовать очень хорошее руководство на самОм офф-сайте: guides.rubyonrails.org/
                    Я начинал с него + Agile Web Development (естественно, адаптируя его на ходу под 2.1).

                    «тревожит та кипа файлов, которая уже имеется в проекте (и это только начало).»
                    1. Это вполне естественно для фреймворка.
                    2. Увеличиваться это количество будет только вашими усилиями.
                    3. Лучше больше лаконичных файлов, чем всё в одну кучу.

                    Кстати, если бы вы поработали с каким-либо PHP-фреймворком, думаю, Rails всё равно вас впечатлил бы. По крайней мере, так было со мной.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Правда умеет? Это круто. Надо будет попробовать, спасибо за наводку.
                        • НЛО прилетело и опубликовало эту надпись здесь
                          0
                          Хотя в принципе лично я вполне комфортно чувствую себя с обычной навигацией по файлам (по Cmd+T): учитывая «convention over configuration» всегда знаешь, где что лежит и как что называется.
                            0
                            кмд+Т для view — не выход
                              +1
                              Вполне выход. Он же показывает, в каком месте в иерархии каталогов находится найденный по названию файл. Хотя не спору, автоматизировать это ещё больше было бы лучше. Посмотрим на обновлённый бандл.
                                0
                                когда у тебя на каждый из 20 контроллеров индекс — то надо потратить времени на выборку +)
                            0
                            wow!
                            большое спасибо!
                            это сейчас очень актуально
                            0
                            для меня руби рельс был первым. Вряд ли захотеться на что-то менять. RoR уже предустановлен на леопарде, Coda и Texmate его прекрасно поддерживают. Запустил коммерческий проект на отечественном хостере, в общем полет очень даже нормальный.
                              0
                              BHost?
                                +2
                                ваша неправда. Пробовал их, ушел. Щас на 1gb
                              +2
                              Начал изучать RoR, после изучения Zend Framework'a — ROR идет на ура, основная трудность — нет знаний и опыта в Ruby как таковом…

                              Поскольку мне есть с чем сравнивать — то могу сказать, что и сам ZF скоро догонит RoR — и разница будет лишь в синтаксисе языка, так что не парьтесь холиварами…
                                +1
                                Насчет изящности языков — достаточно написать пару классов для PHP — и получишь объекты для всего :)
                                Напишу — выложу — похоливарим :)
                                  +1
                                  Не — никаких холиваров. )
                                    0
                                    Холиварить не рекомендуется.
                                    Трезво, аргументированно обсудить интересные аспекты — всегда пожалуйста. Но холиварить… Мы же не дети, право.
                                      +1
                                      Я думаю нет смысла из ПХП делать Руби :) Это глупо, разные парадигмы разработки, при этом также глупо говорить, что Руби изящнее. Изящество относительно, а точнее субъективно (ну а это я автору статьи).
                                        +3
                                        да. это субъективно. а по вашему пхп изящнее руби?
                                          –1
                                          Нет, по мне и руби не изящен :)
                                            0
                                            Да, если что, то изящным считаю язык Форт. Если именно про изящество языка говорить. А еще более изящна его виртуальная машина )
                                            0
                                            Что Вы подразумеваете под изяществом? Что Вы вкладываете в это понятие относительно языка программирования? Или Вы просто поддакиваете мэйн-стриму, где каждый второй скрипт-кидис считает своим долгом сказать: «после знакомства с Ruby / Python я возненавидел PHP»? Между прочим, Python был до PHP, а Ruby появился всего лишь через год после PHP — так почему Вы пришли к PHP?

                                            Как по-Вашему, например, JavaScript — это изящный язык? Если да, насколько он изящней PHP и почему? А насколько Ruby?

                                            .ps: мне очень нравятся JavaScript, Python, Ruby — они идеологически похожи, и, действительно, — красивые языки. Но, вместе с тем, я вполне адекватно отношусь в PHP.

                                            Мне просто реально интересно — почему каждый второй в статье о Руби или Питон пишет — «я возненавидел PHP»? При этом, мне, почему-то, кажется, что сам Ruby эти люди знают поверхностно; ведь в 97% их прельстили Рельсы, а не Рубин.
                                              0
                                              1) Где я написал, что возненавидел ПХП?
                                              2) Если мейнстрим говорит, что Руби более изящен, чем ПХП, то наверное он это не рандомная рефлексия.
                                              3) Если я счел Руби, более изящным, чем ПХП, то мое мнение тут же становится результатом заговора против ПХП, а не моим мнением?
                                              4) В рельсовых проектах 90% кода — это руби. И я не сравнивал рельсы с ПХП.
                                              5) Под изяществом я понимаю ясность выражения языка, его читаемость и простоту выражения.
                                              6) JavaScript я предпочитаю ActionScript несмотря на их братские узы =) (я понимаю, что они взаимонезаменяемы). Скорее всего это связано скорее с историческими моментами моей жизни, чем с языком. Я с большим удовольствием пишу на AS, но при этом в нем ничего эстетского не нахожу.

                                              А. Ну и на ПХП я писал как на самом доступным для меня в то время языком.
                                                0
                                                2) А мейнстрим — кто?
                                                  0
                                                  > 1) Где я написал, что возненавидел ПХП?

                                                  а, черт, простите, я Вас спутал с неким Julik, о котором Вы упоминали; я сходил по ссылке — live.julik.nl/2005/11/php-is-so-90s и увидел третий пункт.

                                                  > то наверное он это не рандомная рефлексия.

                                                  конечно не рандомная, а цепная реакция;

                                                  При этом и Руби и Пайтон, повторю, действительно, изящны, меня просто умиляют фразы типа «я возненавидел PHP» — т.е. восхваляется продукт через сравнительное унижение другого продукта. Стало быть, к Вам это не относится, прошу извинить.
                                                    +1
                                                    Чуть ниже я описал одну из причин ненавидеть, или, по крайней мере, «не любить» PHP — habrahabr.ru/blogs/ruby/45063/#comment_1138445

                                                    Казалось бы, мелочь, но с них всё и начинается. Одна, две, десять. Мелочи накапливаются, накапливаются, и перерастают в нечто большее. В отвращение, что ли…

                                                    Нет, конечно, писать на PHP можно. Но… неприятно (не так приятно).
                                                      0
                                                      По поводу разрозненного именования функций (и как следствие — неопрятности php) полностью согласен.

                                                      .ps: я не PHP отстаиваю (мне самому Руби с Питоном больше нравятся; но не потому, что я могу написать 5.times вместо for-цикла, а из-за идеологии), я просто отметил очередное цепное появление подачи PHP в статьях о Руби, не более. Хотя, все, действительно, познается в сравнении.
                                                        0
                                                        Да что такого в именах функций в PHP? Скока писал, никогда с этим проблем не было. А то, что там в глобальном пространстве все, так для специализированного языка это нормально. Уж лучше кривые имена функций, чем вкуривать все эти class_eval, module_eval, include, extend и прочие жутко непонятные, навеяные lisp-ом штуковины.
                                        +1
                                        Git лучше subversion *)
                                        Да кто бы спорил…
                                          0
                                          уверяю — найдутся!
                                            0
                                            Конечно найдутся, смотря какая задача. Для большинства хватает svn, плюс основной, для него есть клиенты практически под все IDE.

                                            Каждому свое! Статья холиварная, всегда, когда человек начинает изучать что-то новое, что координально отличается от предыдущего, при этом если процесс проходит успешно, он новой идеей заболевает.
                                          +1
                                          > Я никогда не работал с фреймворками в ПХП

                                          Комментарии излишни.

                                          Нет, я допускаю, конечно, что писать плагины и кастомайзить всякие вордпрессы/джумлы и просто писать одноразовые сайты — бизнес, и деньги делать на этом можно, но как-то это… ну, по-индусски, что ли. По-обезьяньи.

                                          Если уж есть хоть пучок рутинок в отдельном файлике, которые таскаются из проекта в проект или просто подкручиваются какие-нибудь сторонние модули — это уже хорошо, а уж если нет — рекомендую все-таки задуматься и посмотреть на то, что такое фреймворки, и, зачем, собственно, их.
                                            0
                                            не совсем вас понял.
                                            почему я не использовал фреймворки — потому что по наивности верил в свою гениальность. и фреймворк мне заменяла (хотя это определенно не то слово) та библиотека классов и методов, что накопились за годы разработки на пхп.
                                            начиналось все конечно с создания собственной ЦМС (по моему дефолтная болезнь пхп разработчиков).

                                            >>рекомендую все-таки задуматься и посмотреть на то,
                                            >>что такое фреймворки, и, зачем, собственно, их.
                                            ??? ну да я в курсе что такое фреймворк
                                              +1
                                              Ну так, собственно, в чем отличие собственной цмс, наборов классов и методов от фреймворка?

                                              Модульная структура есть? Стандартный подход к написанию модуля есть? Как минимум обращение к базе унифицировано?

                                              Чем не фреймворк, пусть и не универсальный/функциональный? Трехколесный, корявый, но велосипед.

                                              А если этого нет — собственно, о чем я и говорю — то это надо. Must have.
                                              0
                                              ну и вообще использование / не использование фреймворков это дело исключительно вашей религии
                                                +1
                                                ИМХО — не давлю, но стоять буду — фреймворки нужны. Разные задачи — разные фреймворки. Визитки — один фреймворк, огроменные порталы — другой. Agile-разработка, потоковая, уникальный одноразовый проект — фреймворк нужен.

                                                Чтобы ехать, нужен транспорт. Велосипед ли, самолет, подводная ли лодка, ракета или скейт — но нужен. Нет, можно и пешком, но с транпортом лучше. Это так, утрировано.
                                              0
                                              Советую использовать IDE NetBeans. Там если мне не изменяет память есть рельсы да и сама IDE очень удобная.
                                                0
                                                кстати, только что вышла версия 6.5.
                                                в чендже — вкусности для рубистов.
                                                  0
                                                  ну собственно там для большого спектра IDE заточена.
                                                  Сам лично использую её для PHP и Java… Ещё и для Python хочу попробовать.
                                                    0
                                                    А я пробовал Aptana Studio, eсть все что нужно, остался доволен. На их сайте есть скринкаст примера работы в этой IDE c RoR.
                                                    –1
                                                    Git лучше subversion *)

                                                    Ничего, что распределенный и централизованный контроль версий — это вообще две разных вещи? Сладкое лучше соленого?
                                                      0
                                                      если вы не беременны — то сладкое лучше соленого )
                                                      вам часто принципиально распределен или централизован контроль версий?
                                                        0
                                                        хотя для меня это скорее преимущество, что он респределенный
                                                          +1
                                                          знаете, часто. :) В opensource удобнее распределенная система, в закрытых проектах — централизованная. Потому git использую разве что для стягивания рельсовых плагинов.
                                                            0
                                                            это скорее политический выбор )
                                                              0
                                                              конечно! поэтому нет смысла писать «git лучше svn»
                                                                0
                                                                вы не оценили всей язвительности моего комментария! =)
                                                          +1
                                                          Не на то акцент ставите. Обе они прежде всего _системы контроля версий_. как система контроля версий git лучше, так как она а) распределенная б) быстрее в) жрет меньше места.
                                                            0
                                                            спасибо — о том и речь
                                                          +1
                                                          Макс Лапшин действительно разбирается в руби, он одним из первых на него переполз (судя по его блогу в жж), кстати, тут он по-моему тоже есть :)
                                                            0
                                                            спасибо за интересные ссылки, давно хотел посмотреть подробнее на рельсы :)
                                                              0
                                                              по поводу тормозов… ну не знаю… пока я их не наблюдаю вовсе. ilike.com, ilisten.ru, scribd.com, rghost.ru (25к хостов/сутки) полет нормальный. Как правило если производительность и упирается то никак не в рельсы а в базу или скажем в харды (в случае rghost)
                                                                0
                                                                twitter (правда с переписаным ядром), lookatme и тд в эту компанию.
                                                                просто, как я понимаю, в случае с рельсами надо чуть больше времени уделять кэшированию и оптимизации
                                                                  +1
                                                                  Весь основной функционал твиттера далеко не рельсы — Java/Scala/C++. На рельсах только фронтенд.
                                                                    0
                                                                    что же вы такой не внимательный
                                                                    >>twitter (правда с переписаным ядром)
                                                                    когда-то он был полностью на рельсах
                                                                      +1
                                                                      Мне показалось, что вы имели ввиду ядро Рельс, а не Твиттера. Когда-то он и падал по пару раз на дню)
                                                                        0
                                                                        ну да — падал. но и нагрузки какие были!?
                                                                        вряд ли он бы не падал, если бы был написан на ПХП или еще каком высокоуровневом языке )
                                                                          0
                                                                          Ну и сейчас он написан на ЯВУ но не падает, или вы имели ввиду динамически-типизированные языки.
                                                                            0
                                                                            Ну не будете же вы сравнивать Java и PHP (или будете?)
                                                                            Это языки разного уровня.
                                                                            Java в конце концов исполняется из байт кода. Отсюда большое преимущество в скорости.
                                                                              0
                                                                              Я порой работаю с Groovy, он тоже компилируется в байт-код, но всё равно работает медленно. Я уж молчу про существующие VM в Python, Ruby 1.9. Преимущества в другом.
                                                                            0
                                                                            Оффтоп конечно, но вроде как Фэйсбук, такой немаленький ресурс, в пдаучести не замечен, он написан на ПХП.

                                                                            Твиттер был удивительно падучим ресурсом, при этом, если честно, я не понимаю, как из-за нагрузки ресурс может именно падать, а не просто не тянуть инфраструктура сервера.
                                                                              0
                                                                              Знаете, чат у фейсбука на Erlang, видео-стриминг на Java, и С/С++ используется. Когда твиттер переписали на эти технологии он тоже перестал падать. Заслуга тут далеко не PHP.
                                                                  –5
                                                                  А я, изучая python, и знакомясь с разными способами писать на нем web-программы (mod_python, GAE, WSGI, django), начинаю приходить к мнению, что mvc — зло. Он подходит хорошо только для очень сложных проектов, код которых, к тому-же часто изменяется, и дизайн будет поддерживать скины или хотябы настраиваться. Для простых сайтов, лично мне, такой паттерн кажется избыточным.

                                                                  RoR мне кажется тоже слишком избыточным.
                                                                    +1
                                                                    Так кто же простые сайты программирует на рельсах?
                                                                    Совершенно очевидно, что выбор технологии исходит из поставленной задачи.
                                                                    Можно (и нужно) простые сайты писать на валидном HTML/CSS с применением чистого PHP/Python/Ruby… для добавления серверных примочек, если они необходимы.
                                                                      +3
                                                                      Простые сайты — это сайт-визитка или блог одного пользователя? Тогда да, сложно не согласиться. Хотя с другой стороны, почему бы не использовать фреймворк и для них?
                                                                      А вот если что-то чуть более сложное…
                                                                      0
                                                                      Я сам счас решаюсь на переход на Руби он Реилс или Спринг…
                                                                      Спасибо за статью. Но вот правда так и не определился)
                                                                        +1
                                                                        Возьмите Grails — как раз посередине. А вообще выбор странный — птицы разного полёта.
                                                                          0
                                                                          Что странного. Ищу новое) Пробова еще питон — но не навится мне он. Счас учу паралельно спринг и руби он реилс. Может позже определюсь)
                                                                          За grails — спасибо, обязательно гляну)
                                                                            +1
                                                                            Ну я про область применения) Grails будет учить быстрее, сразу двух зайцев убъёте — Grails построен на Spring, ну и по продуктивности/красоте Groovy не уступает Ruby.
                                                                              0
                                                                              Я счас пишу в основном на Zend Framework. Достаточно привык к MVC — хочу и дальше писать, но другим инструментом. Ruby on Rails — MVC, Spring — можно тоже писать MVC. Так что ничего странного)
                                                                              А за пояснения Grails спасибо)
                                                                                0
                                                                                Ну Spring MVC — далеко не основная часть Spring, там куда больше интересного в плане организации логики, интеграции со сторонними проектами и IoC(DI).
                                                                                  0
                                                                                  Ну я же не говорил что основная. Пока потребность есть в MVC — будет потребность в другом — выучу подробней.
                                                                        0
                                                                        Спасибо.
                                                                        Буквально сегодня замышлил проект и решил ради самообразования воплотить его на реальсах. А из вашего хабратопика подчерпнул тучу полезных линков.
                                                                        Единственное — я вместо Е я решил использовать Аптану как оболочку. Зря?
                                                                          0
                                                                          аптана тормозная (по крайней мере у меня автокомплит подвешивает систему на полсекунды примерно), но если не пользоваться автокомплитом и забить на некоторые утечки памяти, то почему бы и нет;)
                                                                            0
                                                                            Я не могу судить, так как Аптану не использовал. Я поставил — оно мне показалось тяжеловесным и я снес. Е меня вдохновил схожестью с TextMate (большую часть времени я на маке работаю).
                                                                            Удачи с вашим проектом )
                                                                              0
                                                                              Аптана — ужас, летящий на крыльях ночи. При попытке вызвать code assist из вьюхи — сначала тормозит, а потом показывать «NullPointerException».

                                                                              Мне больше нравятся Рубимайн и Нетбинс. Рубимайн приятный, но платный, и у меня тормозит на 1Gb хуже Аптаны (но при этом честно комплитит, эксепшены не показывает). Сам сейчас пользуюсь Нетбинсом, он шустрее и не падает.
                                                                                0
                                                                                Если у вас не тормозит Эклипс, то и Аптана будет работать со схожей скоростью. Функциона у Аптаны один из лучших.
                                                                                0
                                                                                Довольно не плохая IDE rubymine www.jetbrains.com/ruby/index.html
                                                                                  +2
                                                                                  Кстати, присмотрись к другим framework’ам на Ruby: Sinatra и Merb. В Sinatra ты всё сможешь в один компактный файл запихать. А Merb он более лакончиный что ли.
                                                                                    0
                                                                                    Да, это будет логичным развитием. Но это когда рельсы будет освоены в достаточной мере.
                                                                                    –1
                                                                                    У рельс тоже проблем хоть отбавляй, да и сам DHH пишет на «ужасном» PHP www.loudthinking.com/posts/23-the-immediacy-of-php — и говорит что штука вполне хорошая. Надо прекратить противопоставлять себя другим и заниматься делом.
                                                                                      0
                                                                                      Вы читали о чем я писал? Занялся разработкой в новой для меня среде. И теперь я просто рефлексирую по поводу технологии. Логично, что я ее сравнивю с тем, с чем знаком (c PHP).
                                                                                      Много хороших проектов (тот же Хабр) написаны на ПХП.

                                                                                      >>Надо прекратить противопоставлять себя другим и заниматься делом.
                                                                                      О каком деле вы говорите? Как буд-то я на Гаваях сейчас расслабляюсь.
                                                                                        0
                                                                                        Ну возможно ваша ссылка на «Юлика» с его гневным постом придала такое ощущение.
                                                                                          0
                                                                                          она была в контексте схожего ощущения от изящности конструкций
                                                                                      +1
                                                                                      Я сейчас читаю книгу Simply Rails 2 (написана в мае 2008, ссылка). Там описан процесс создания своего digg'a с нуля :) Никакого опыта веб-разработки за плечами у меня нет, но язык (вернее, фреймворк) очень и очень нравится своей логичностью и простотой.

                                                                                      За последние несколько дней в нескольких независимых источниках информации читаю о том, что рельсы (и руби вообще) медленные; в частности, на википедии нашёл вот такую ссылку: сравнение производительности языков веб-разработки (по ссылке — сравнение PHP с Ruby). Хочется увидеть какие-то реальные цифры — какие, скажем, нужны вычислительные мощности, чтобы поддерживать, пускай, свой Хабр на 10.000 пользователей, будь Хабр написан на RoR?
                                                                                        0
                                                                                        честно говоря цифры весьма незначитеьные =).
                                                                                        Помнится PHP отставал от Perla в своих ранних версиях на порядки — и ничего — сейчас очень шустро бегает, временами перу не уступает. Да и поприятнее он перла (опять же чисто субъективноэстетически)
                                                                                          +3
                                                                                          Не холивара ради, а исключительно практическое (и эстетическое) замечание.

                                                                                          PHP станет «поопрятнее» Perl только тогда, когда в нем появится единый стандарт именования функций и порядок передачи параметров этим функциям. Чего только стоят именования функций «str*» и «str_*» и вообще зоопарк в разделе документации под названием «String Functions».

                                                                                          Для примера, параметры у того же strpos: (строка, искомое), а вот в str_replace: (искомое, замена, строка). У одного из них логика отсутствует, напрочь. Или вот strtoupper() и ucfirst() — казалось бы, очень похожие между собой по задачам функции, а какая огромная (для столь близких функций) разница в именовании. В Perl, замечу, эти функции называются uc() и ucfirst() соответственно. И таких примеров не мало. Раздел Array Functions вообще заставляет задуматся о наличии здравого смысла у авторов названий функций: зачем называть функцию array_pop(), если pop(), фактически, нигде, кроме массива, и не используется? Чем был плох просто pop()? И даже если бы использовался (вдруг, когда-то там), то неужели он не сумел бы сам определить, с чем он имеет дело?

                                                                                          Сборище разных функций, написанных разными людьми, в разное время, с разными тараканами в голове, с разным стилем наименования и с разной очередностью параметров.

                                                                                          Нет, что не говорите, но опрятным PHP никак язык не поворачивается назвать.
                                                                                          0
                                                                                          В таких проектах без разницы — логики тяжолой нет, а кеширование/поиск/прочие трудозатратные операции выполняются с помощью других технологий.
                                                                                            0
                                                                                            с помощью других технологий.

                                                                                            Вас не затруднит в двух словах рассказать — каких?
                                                                                              0
                                                                                              > Вас не затруднит в двух словах рассказать — каких?

                                                                                              Зависит от задач: memcached, lucene, hadoop…
                                                                                          +1
                                                                                          Вам тоже понравился MVC? :)
                                                                                            0
                                                                                            а можно несколько примеров, в которых Ruby изящнее PHP?
                                                                                              0
                                                                                              Часто использую конструкции вида:
                                                                                              array.map! do |element|
                                                                                              element += 'add some new stuff'
                                                                                              end
                                                                                              или
                                                                                              5.times do |var|
                                                                                              var += 10
                                                                                              end
                                                                                              тут можно чуточку почитать
                                                                                                0
                                                                                                Вот, кстати, пример обратного мнения
                                                                                                  0
                                                                                                  Кстати, очень странный чувак — сравнивает рельсы и пхп. с тем же успехом он мог бы с рельс сползти на чистый руби.
                                                                                                  +1
                                                                                                  В любом случае, язык программирования, как марка фотоаппарата, процессора, солнечных очков — дело вкуса.
                                                                                                    0
                                                                                                    Это верно. Но верно и то, что любой инструмент, включая языки программирования, формируют у разработчика вкус/привычки и т.д. Связь получается в обе стороны.
                                                                                                    0
                                                                                                    А можно несколько примеров языков, которые НЕ изящнее пхп? :) Разве что бейсик в начале своего существования, да фортран до IV включительно.
                                                                                                      0
                                                                                                      Perl? Да не буду я распят! )
                                                                                                        0
                                                                                                        Да ладно!.. В той части, где пхп и перл пересекаются, они практически эквивалентны. Но перл мощнее и эта часть, отсутствующая в пхп, делает его изящнее ;).
                                                                                                          0
                                                                                                          Ну википедия пишет:
                                                                                                          Изначально PHP создавался в качестве надстройки над Perl для облегчения разработки веб-страниц.

                                                                                                          А сам я, когда начинал писать на ПХП, со страхом и трепетом смотрел в сторону Perla (уж больно любили делать его нечитабельным разработчики). Еще меня пугали CGI, про который я даже уже и не вспоминаю последние N лет.
                                                                                                            +1
                                                                                                            Ну да, простенький шаблонизатор домашних страниц для тех, кто не осилил перл.
                                                                                                            Что касается нечитабельности, это больше байки для отпугивания непосвящённых :). Или для тех, кто совсем уж учиться не хочет (вспоминая дискуссию «пхп-программистов» о том, что тернарный оператор слишком сложен для понимания, поэтому его следует заменять целой портянкой «абсолютно читабельного» бейсик-подобного кода).
                                                                                                            Что до изящности — достаточно сравнить перловые регэкспы и их пхп-шную, с позволения сказать, реализацию с этими размножающимися слешами… Да, и функция map, кстати, в перле есть :), хотя и несколько менее изящная, чем в руби (впрочем, перлом я занимался ну очень давно, может там сейчас всё вообще супер).
                                                                                                              0
                                                                                                              Ну да, в том, что перл был страшилкой для неофитов — это так, на себе испытал )
                                                                                                    0
                                                                                                    «но хотелось бы нажатием пары клавиш очутиться… из метода контроллера в его представление»

                                                                                                    CTRL-SHIFT-a в Нетбинсе
                                                                                                      0
                                                                                                      Проблема уже решена даже в родном ТекстМэйте =)
                                                                                                      0
                                                                                                      Мне нравятся рельсы.

                                                                                                      Главная проблема, которую я увидел — слишком много функциональности в плагинах, которые поддерживаются по отдельности различными сообществами. Из-за этого они бывают несовметимы — например, гем composite_keys и плагин activescaffold не дружат в одном проекте. Ну и разумеется при обновлении версии рельсов отваливается часть плагинов.
                                                                                                        +2
                                                                                                        а на руби есть аналог функции do_everything_pzdt()?
                                                                                                          +3
                                                                                                          <irony>
                                                                                                          Была когда-то давно, но её убрали, ибо юные падаваны рубисты слишком часто ею увлекались, и уходили в себя, в глубь, постигая неизведанные тайны, но не возвращались никогда, чтобы о тайнах этих другим людям поведать… И тогда убрали эту великую функцию, так как зло страшное в себе таила она. Но до нас дошли её исходники, ибо вот она, кроткая и лаконичная, невероятно однострочная и бесконечно красивая, созерцайте:
                                                                                                          def do_everything_pzdt; print «h»; while true: print «m»; end; end;
                                                                                                          Только не увлекайтесь сильно. ;)
                                                                                                          </irony>

                                                                                                          PS. «Типограф» задолбал окончательно. Даже <code> не спасает.
                                                                                                            0
                                                                                                            парсер лох
                                                                                                          0
                                                                                                          из книжек: Rails Recipe перевели же давно.

                                                                                                          по моему мнению и опыту — гугл группа RubyOnRails to russian не любит нубов, насколько я помню. и вообще там своего рода «секта» сформировалась. много снобизма. как-то так.

                                                                                                          в россии проблема с хостингом под рельсу да и руби.
                                                                                                            0
                                                                                                            Просто с Rails даётся насадка на член +20 см и не у всех хватает воли не опробовать её и потом идти в блоги писать посты, какой у них теперь длинный.

                                                                                                            Хостинг — вовсе не проблема, сейчас VPS с 256MB стоит 20 баксов. Да и mod_rails вещь в принципе удобная пока вы, например, не захотите запустить приложение под Windows Server. В остальном сейчас выходят 2.2 рельса, где починили многопоточность и JRuby может заработать не только шустро(он это уже умеет), но и памяти с Rails будет есть куда меньше. Впрочем товарищи, которые уже накушались рельс перелезают на Merb, в ror2ru довольно интересное обсуждение на эту тему.
                                                                                                          0
                                                                                                          >> идти в блоги писать посты, какой у них теперь длинный.
                                                                                                          чорт, забыл упомянуть про свое моджо в статье! =)
                                                                                                            +1
                                                                                                            Да просто пипец как часто пишут, вон я news.ycombinator читаю — www.web2media.net/laktek/2008/11/21/i-want-to-be-a-ruby-hacker/ сейчас уже спад пошёл, но раньше я куда чаще встречал такие вот get mac, rails, ruby, git, rspec, agile, etc. & rule the world!
                                                                                                              0
                                                                                                              Прикольно =) я попал под раздачу значит. Я не замечал, кстати.
                                                                                                            0
                                                                                                            я не видел ни одного проекта на руби, при чем какого-нибудь мало мальски известного.
                                                                                                            Можно пару примеров плиз :)

                                                                                                            P.S. не видел наверное в силу того что просто не искал и не сталкивался.
                                                                                                              0
                                                                                                                0
                                                                                                                полез посмотреть сорцы, зачетный таргетинг :)

                                                                                                                  +1
                                                                                                                  ****************************************************************************************
                                                                                                                  ** **
                                                                                                                  ** __ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ **
                                                                                                                  ** | | | __ | __| | __| | __ | | __| __| __| | | __| **
                                                                                                                  ** __| | | | __ -|__ | | __| | | -| | | | __| __| -|__ | **
                                                                                                                  ** |_____|_____|_____|_____| |__| |_____|__|__| |_____|_____|_____|__|__|_____| **
                                                                                                                  ** **
                                                                                                                  ** **
                                                                                                                  ** RUBY OR CSS OR JAVASCRIPT OR FLASH GURUS WANTED **
                                                                                                                  ** **
                                                                                                                  ** WE NEED PEOPLE TO WORK WITH US ON LOOKATME.RU **
                                                                                                                  ** **
                                                                                                                  ** SALARY DEPENDS ON KNOWLEDGE **
                                                                                                                  ** MAIL YOUR RESUME OR INFO TO ANDY@LOOKATME.RU **
                                                                                                                  ** SKYPE ANDREW.ZOTOV ICQ 235865598 **
                                                                                                                  ** **
                                                                                                                  ** **
                                                                                                                  ** habrahabr.ru/job/507/ habrahabr.ru/job/533/ **
                                                                                                                  ** **
                                                                                                                  ** **
                                                                                                                  ****************************************************************************************
                                                                                                                    0
                                                                                                                    Да)
                                                                                                                    Было желание с ними поработать)
                                                                                                                    Да ща не в мск живу=(
                                                                                                                0
                                                                                                                twitter.com
                                                                                                                lookatme.ru
                                                                                                                dom.ru
                                                                                                                arroundme.ru
                                                                                                                groups.google.com/group/ror2ru/web/rubyonrails-2
                                                                                                                  0
                                                                                                                  ilike.com
                                                                                                                  scribd.com
                                                                                                                  rghost.ru :-[
                                                                                                                  0
                                                                                                                  «Особенно я писаю кипятком от организации отношений вроде has_many и прочих.»
                                                                                                                  до того как писать попробуйте связать три таблички записей на поллимона, а потом вытянуть рором аттрибуты из первой, боюсь вам придется и обкакаться
                                                                                                                  ибо такие запросы лучше писать ручками, а не полагаться на фреймворк
                                                                                                                    0
                                                                                                                    кто ж спорит?
                                                                                                                      0
                                                                                                                      Боитесь? А вы не бойтесь, просто читайте логи. Кстати три таблички связываются с помощью has_and_belongs_to_many :foos, :join_table => 'bars'

                                                                                                                      >ибо такие запросы лучше писать ручками, а не полагаться на фреймворк

                                                                                                                      В начале стоит положиться на фреймворк, а потом уже вкурить логи и решить, что следует написать вручную.

                                                                                                                      Я не защищаю РоР, но все же использование ORM уже вполне стандартная пркатика везде и не стоит ее бояться. Хотя у РоРа просто КУЧА недостатков. Кстати слабо их назвать? А то тут воспевают, как будто это фреймворк-панацея.
                                                                                                                        0
                                                                                                                        > В начале стоит положиться на фреймворк, а потом уже вкурить логи и решить, что следует написать вручную.

                                                                                                                        зачем полагаться на фреймворк в том что он плохо делает? потом курить логи, и переписывать вручную?

                                                                                                                        > но все же использование ORM уже вполне стандартная пркатика везде и не стоит ее бояться

                                                                                                                        я не технологии боюсь, а ее конкретной реализации

                                                                                                                        > Хотя у РоРа просто КУЧА недостатков. Кстати слабо их назвать? А то тут воспевают, как будто это фреймворк-панацея.

                                                                                                                        вы счас с кем разговариваете?
                                                                                                                      0
                                                                                                                      >зачем полагаться на фреймворк в том что он плохо делает?

                                                                                                                      Логичный вопрос — если вы так уверены (кстати, откуда увереность, вы же даже не видели логи что оно там творит?) что сделаете без фреймворка лучше, то зачем он вам вообще нужен?

                                                                                                                      >вы счас с кем разговариваете?

                                                                                                                      С вами. Хотел вам показать, что косяков море но они точно не с составлением типовых запросов из БД, на ActiveRecord вообще редко жалуются.

                                                                                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                                      Самое читаемое