Rails и все-все-все…

    Уважаемые хабралюди, обращаюсь к вам за помощью. Недавно я заинтересовался языком Ruby и тем, что он может дать при веб-разработке. Естественно, что тут же всплыли и Rails. Немного поразбиравшись с ними, я пришел в дикий восторг: все быстро, красиво и удобно. Но в голове звенел звоночек: не может быть все так хорошо, ищи деготь. И недавно на хабре проскочила статья, что рельсы не такие уж стабильные и высоконагруженное приложение на них не напишешь. Теперь я в полных раздумьях.

    Но сам Ruby мне очень понравился. И я бы старался работать с ним и дальше. Поэтому я начал смотреть еще, что есть в мире веб-разработки на руби. Нашел еще несколько фреймворков: Camping, Merl, Nitro…
    Но их главное отличие от рельсов: полное отсутствие дополнительной информации. Если о рельсах сейчас пишут везде как хорошее, так и плохое, то про этих лошадок молчат совсем. Поэтому я и решил обратиться к хабрасообществу, авось кто уже работал с руби-фреймворками помимо рельсов и может сказать о их плюсах и минусах. Ну, а если у вас есть мнение про рельсы, то я тоже буду очень рад его услышать.
    Жду ваших комментов!
    Поделиться публикацией

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

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Вот это меня и пугает, все так говорят, уже давно везде слышно, что руби = рельсы, а я пытаюсь разобраться, есть ли альтернатива? Или удостовериться, что лучше рельс нет ничего.
          +1
          Пугает еще и то, что это говорят люди "слабо знакомые с темой Руби" :)
          0
          Зря вы так. Не путайте человека..
          0
          на сколько я знаю, руби хоть и красив и рельсы хороши, но это связка достаточна медленна в сравнении с другими фреймворками... по крайней мере так говорил Сагалаев и его коллега из Яндекса на РИТ-2007.
              0
              ихмо тест практически потерял свою актуальность
                0
                http://wiki.rubyonrails.org/rails/pages/…

                p.s Rails performed much better than Symfony. And Django performed much better than Rails.
                  0
                  правилось 7 ноября 2007, рельс 2.0 тогда еще не было. Хотя сомневаюсь, что они перегнали фреймфорки на питоне.
                    +1
                    собственно я за Django
              0
              Коллегой был посмотреть профиль bobuk :)
                0
                о как =)
              +2
              (небольшая инфа) Не стоит забывать что сейчас вышел Rails-2, который быстрее первого, и в котором исправлено куча багов. В разнице по скорости убедился я сам.
                0
                Про новый релиз рельс я слышал, но вот пока руки не дошли покрутить. Жду еще когда руби 1.9 выйдет в стабильном варианте, чтобы уже кардинально обновиться.
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Рельсы медленнее других фреймворков, но это не значит, что на них нельзя писать высоконагруженные приложения. Как-то сами разработчики в блоге писали, что у них кластер обеспечивает 4000 запросов в секунду.
                    0
                    Вот этот топик подкосил мое доверие к рельсам.
                      –1
                      Ну там много чего в кучу свалено. Но основа схвачена верно. Rails (как и Java/PHP/...) - это кошмар. Но не из-за того, что у них есть проблемы (где их нет?). А из-за того, что VisualBasic "программисты" пришли и сюда (после того как Rails стали мейнстримом). Это беда всех успешных фреймворков и языков :-( Только C++ избежал этой участи потому что с самого начала получил репутацию "крютого языка для крютых парней" и потому люди, которые вообще не умеют программировать (то есть 90% "программистов") туда не лезут.

                      Основная беда Rails (а также прочих подобных языков и фреймворков) в том, что на них могут написать "нечто почти работающее" люди, которых к программированию, в общем-то, допускать и вообще не стоило. Если такие же кадры попробуют что-то сотврить на C++, то до стадии продукта, который можно запустить они вообще не дойдут и, разумеется, будут прогнаны с позором. Если на Rails (Java, PHP, etc) - то вы получите что-то такое более-менее работающее, но постоянно падующее и глючащее. Причём эта возможность (как и в VisualBasic'е) напрямую связана с жёсткими рамками фреймворка, за которые выйти очень сложно. Зато в этих рамках хороший программист может работать в два раза быстрее, чем без фреймворка. Дальше - выбирайте, это уж ваше дело...
                        0
                        А если взять в пример еще эту строку:
                        "The creator of Rails in his flagship products could not keep them running for longer than 4 minutes on average.", то она идет немного в разрез с вашим верным(!) комментом. Сомневаюсь, что создатель рельс - человек, которого надо держать от программирования подальше.
                          0
                          А вы читали окончательную версию поста Зеда?.. Прочтите.
                            0
                            А если вы не будете выдирать строку из контеста, то увидите, что речь шла всё-таки о трёх часах, а не о четырёх минутах (или вы дочитав до этой строки дальше уже не читали?), что, конечно, плохо, но отнюдь не смертельно (если такое случается, то это повод объявить "code yellow" и разобраться, но это не "code red" ни разу) ?
                          • НЛО прилетело и опубликовало эту надпись здесь
                              –1
                              Чтобы начать - пожалуй даже больше. Речь идёт об усилиях, которые нужно приложить чтобы закончить и получить работающую систему. Всем "хорошо известно" что C++ - это что-то близкое к машине и если у Васи всё работает, а у Пети тормозит и Петя писал на C++, то ясно что дело не в C++. В случае с Java(EE) зачастую виновным назначают кого угодно (OS, JVM, Servlet Engine, etc) - только не программиста.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                  0
                                  Если у вас время генерации страницы меряется в секундах, а у конкурента - в миллисекундах, то профайлер поздно запускать: профайлер может ускорить вашу программу в 2-3 раза в лучшем случае (обычно же - на проценты, не более того).

                                  На C++ не без библиотек пишут, да, но я видел очень мало программистов на C++, который бы искренне считал, что ему не нужно знать сложность работы сортировки и не мог бы на бумажке прикинуть (с точностью до порядка) сколько времени потребуется на сортировку миллиона телефонных номеров. Среди программистов на Java/.NET/Ruby/Python таких - пруд пруди, а люди программирующие на PHP зачастую даже вопроса понять не могут и какое отношение он имеет к дизайну web-приложений - тоже. Я же сказал - это скорее разница в отношениях к языкам, чем в самих языках: в C++, Java и .Net сложность сортировки входит в описание функции сортировки, а Ruby/Python/PHP - нет, но почему-то только программисты на C++ про этот факт знают (когда многих "крютых" спецов по Java2(EE) тыкаешь носом в строчку из описания они искренне удивляются тому что там это написано во-первых и тому что предполагается что они это знают во-вторых; c программистами на C++ такое случается на порядок реже)...
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0
                                      Был у нас смешной случай, когда профилирование выявило главного виновника тормозов в генерации страниц. Им оказался библиотечный метод encodeURL :). Переписывание вручную ускорило всё более чем на порядок. В более поздних JDK это дело поправили, но всё-равно это было и это показывает что вы не совсем правы :).

                                      А сложность сортировки... Да та же самая фигня. Когда (если!) в неё упрётся, значит пора запустить профайлер :). Может ведь и не упереться. Тогда зачем об этом думать? У нас много всякого тяжёлого дерьма было, но кто бы мог подумать на эту енкодеУРЛ.
                                      А задача сортировки миллиона телефонных номеров - это разве часто встречающаяся задача? Если бы у меня такая возникла, я бы удивился и, скорее всего, хорошо бы подумал на тему сортировок и даже, возможно, перечитал бы избраное у Кнута :). Хотя я и не сишник, а, скорее, явщик, из-под-палки-пхп-вщик и начинающий рубист :). В большинстве же прочих случаев чего-то посортировать - думать и прикидывать сложность вообще не имеет смысла. Хотя да, библиотеки и прочий высокоуровневый хлам несколько расслабляют.
                                    0
                                    Странно, а eBay и Amazon написаны на Jave. Да и Google к ней неравнодушен.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                4000 - это в пике или в среднем ? Если в среднем, то хорошо бы сайт узнать: это уровень где-то не десятки, но сотни самых популярных сайтов в мире...
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                А давно используешь? Делал что либо крупное? Как у него со стабильностью? Хочется просто как можно больше инфы =) И что такое Markaby?
                                • НЛО прилетело и опубликовало эту надпись здесь
                                +1
                                Я знаю два достаточно крупных проекта на рельсах:
                                ilike.com
                                scribd.com
                                Врят ли у них маленькая нагрузка :).
                                На рельсах можно писать хорошие проекты. И сколько я на них не писал - фреймворка хватало за глаза, и никаких велосипедов я не делал. Так что смело начинайте на них писать. Код получается очень красивым), а потом если начнуться томоза делайте оптимизацию: поиск - сфинкс и феррет, erb - используем erubis, код - включаете профайл и смотрите какой именно участок тормозит, либо его оптмизируете, либо переписываете на си.
                                Руби 1.9 по тестам впечатляет. В ror2ru группе проскакивала ссылка на тесты. рельсы 2.1 уже будут с поддержкой нового руби, так что ждите прироста производительности.
                                  0
                                  По поводу этой статьи, посмотрите http://groups.google.com/group/ror2ru/br…
                                  Не так уж все и страшно. Просто надо понимать, что вы хотите и что могут дать вам рельсы. Или что вы можете сделать с их помощью.

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

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

                                  А то прочли одну статью, которая, в общем то, и не о рельсах, а о жизни, и крепко ушли в сомнения.

                                  Итог? Если вы хотите получить возможность командой script/generate, неделей «стандартного» кода и деплоем делать высоконагруженные порталы — рельсы тут вам не помогут, они вас справедливо убьют. Если вы решили серьезно заняться Руби, потом Руби и Рельсами и писать осознанный код — милости просим, думаю вас с удовольствием примут в сообществе.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0
                                      Ну, не слишком. Там всегда эмоции были, есть и будут. Главное, что на личности переходят только в случае динозавров и пррчих зверушек. И в итоге они пришли к здравому результату, на мой взгляд;) Да и сам Зед дописав эту штуку расставил точки над «и».
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          А что не так с деревом комментариев?
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              0
                                              Ничего не понял. Человек там писал про генератор таблиц. я запостил код с деревом. Вы говорите, что дерево - это яркий пример. Вот мне очень интересно узнать, что же в моем дереве такого плохого? Тесты? (оО)
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                            0
                                            Пожалуй, вы правы. Но этого не изменить, с этим надо смириться и готовиться к этому;)

                                            Мне, кстати, интересно, как дела обстоят вокруг Питоне, почему там такого нет? Или есть?..
                                      0
                                      Огромное спасибо всем отписавшимся. Очень рад, что существует хабр и хабрасообщетсво у которого всегда можно спросить совета!

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

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