Pull to refresh

Comments 110

Если честно, слушав несколько дней назад этот выпуск floss weekly в голове крутилась снова фраза «ruby is a ghetto». Ну я понимаю что материться — это круто, но надо уметь это делать. Шнуров хоть и много матерится, но красиво, а этот — явно молодой еще. Ну и ладно, Руби Он Рэйлс — ничего так вроде фреймворк.
Да ладно, там же нет почти матов.
На час 17 минут интервью гораздо меньше матов, чем в среднестатистическом мейнстримном фильме, например.
> среднестатистическом мейнстримном фильме

Надеюсь Руби не равняется на это) Ну просто первый когда был — в тему, классно и даже ведущие посмеялись, а потом четко было видно что просто «не туда» (и много всяких грязных слов, которые он пытался с мастерством подбирать, но получалось тоже не очень). В общем, я не против, но как-то въелось.
По ходу в комментах уже развелось на порядок больше матов, чем в самом интервью…
UFO just landed and posted this here
Рейлс — это один из самых зрелых веб-фреймворков (среди всех ЯП). Чем он вам не нравится? Если хотите чего-то полегче, то можете использовать Merb.
UFO just landed and posted this here
Если честно я не понимаю о какой магии может идти речь в контексте программирования. Вы либо понимаете как нечто работает, либо нет. Если нет, то нужно подучить ЯП. Извините, если грубовато выразился.

Интересно, а зачем вы лазили по стеку, просто из любопытства? Или выхотели конрибутить в Rails core?
UFO just landed and posted this here
И в чем же магия DSL, простите? Объясните мне кто-нибудь слово «магия». Может это паттерн такой? )
UFO just landed and posted this here
UFO just landed and posted this here
Недоросла еще технология до продакшна.

А сколько вы сделали проектов на Рельсах до того как пришли к этому выводу? И чем вы пользуетесь теперь вместо Рельс?

Пока это технология для ниньзей, котороые готовы все время смотреть в потроха.<.blockquote>
Это вообще, извините, бред. Ни разу не приходилось смотреть в потроха чтобы что-то починить.
UFO just landed and posted this here
Рельсы это скорее забавный концепт, чем реальность.

Дальнейшая дискуссия бессмысленна. Напомню, что речь идет о фреймворе, на котором написано бессчетное множество веб-приложений и который был портирован/клонирован практически на все динамические языки программирования.
Если я не ошибаюсь рельсы практически не реально портировать/клонировать на другие языки, попытки были, на пхп они не получили распространения, ну разве что отдаленно похожий cakephp.
PHP — язык без магии :) поэтому и не получилось.
UFO just landed and posted this here
Для основной массы, «метапрограммирование» и «магия» являются синонимами :)
UFO just landed and posted this here
Боюсь ошибаетесь. Grails — рельсы на groovy (читай: джаве) :-)
UFO just landed and posted this here
UFO just landed and posted this here
А если просто изучить рейлс? Чтобы не пользоваться магией, а программировать.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
В том что у руби стандартная библиотека не идеальна это факт, хотя по дизайну Net::HTTP имхо просто просто слишком низкоуровневая, для руби библиотек это не характерно, поэтом это и вызывает проблемы. На то что она плоха в реализации — вы ещё пожалуйтесь что REXML тормозит.

Датчане тогда уж :). А если серьезно, то ситуация с руби и рельсами показывает только то что использование преимущественно японского языка в core team тормозит привлечение заинтересованных людей к разработке, чего не наблюдается с английским.
UFO just landed and posted this here
Она слишком прямолинейно мэпиться на http, поэтому я бы всё же сказал низкоуровневая :).
Пересмотрел реализацию Net::HTTP — не считая пары хардкодов размера буфера ничего страшного не заметил. Что конкретно имеется ввиду под кошмарной реализацией?

О руби DHH прав относительно себя, ему больше ничего не надо. А Matz на какой-то из последних конференция высказывал интересные улучшения для ruby 2.0 для работы больших команд.

У японцев пока самая быстрая реализация, так что по скорости ещё вопрос. MacRuby это vendor lock и мало кто еще готов mac os на сервера ставить, на jruby будет интересно посмотреть с java 7 и invoke dynamic, пока у него плюсов по сравнению с 1.9 не так много.
UFO just landed and posted this here
Ну это уже глобальный дефект timeout и, насколько я понимаю, в данном случае он ничего важного сломать не может.

А Matz, если про 1.8.7 и манипуляции с системной библиотекой, то ему чистота языка важнее временных проблем любого фрэймворка который его использует. Про кодировки, то я в ror2ru уже писал — ну есть у японцев такой загон, не любят они юникод. Хотя я тоже предпочел бы тотальный юникод.

А депплой и стабильность демонов — да, до стабильности явы пока далеко всем реализациям. Подозреваю и у Ruby вылезут свои проблемы.
UFO just landed and posted this here
По большей части согласен, руби — отличный язык, хотя и есть не очень очевидные моменты, стандартная библиотека хорошая, но на счет нулевого вхождения… все же ситаксис несколько сложный по началу за счет свой гибкости.

З.Ы. рельсы тоже произвели впечатление «магического» фреймворка.
AFAIK, Twitter уже давно на Scala, a не Ruby, последний неудовлетворителен в highload.

А вот как он соотносит «Принцип DRY должен применяться в глобальных масштабах: программисты по всему миру решают одни и те же типовые задачи снова и снова – было бы замечательно избавиться от этих громадных потерь полезного времени.» и «PHP нет единообразия, слишком много людей вносят свои различные мнения даже по поводу самых основных вещей. Поэтому В PHP царит хаос.» интересно знать :-)
Пруф или не было) twitter.com/about#built
В презентации не написанно, что twitter целиком на scala) В принципе scala юзается, как бэкэнд.
AFAIK там message queue демон на скала только. То есть, на самом деле ядро системы. И то они сравнительно недавно перешли.
Ага, действительно, спасибо. Я об этом слышал с другой стороны — со стороны адапетов Scala :-)
Вы занимались разработкой highload проектов на Ruby? Может поделитесь опытом?
UFO just landed and posted this here
Erb долго отрабатывает? Или в чем тормоза?
UFO just landed and posted this here
вот это, кстати, интересные цифры, спасибо.

по-большому счету
у нас есть следующие этапы
— инициализация
— запросы к дб
— логика
— генерация выходных данных

если нет какого-либо особо бредового мэппинга дб на объекты, то обычно логика
«парсер лох», что ж, заменим символы текстом (вообще, странно, наиболее известный тематический ресурс и такой хреновый софт)

логика «много меньше» генерации «меньше» запросов
(кэширование запросов, страниц, байт кода, чего угодно вне контекста рассмотрения)

если ситуация обратная, это печально.
В джанге та же фигня. Стандартный шаблонизатор довольно задумчив.
UFO just landed and posted this here
только лишь свой MQ они написали свой на Scala, заменив, так что твиттер если и будет на Scala, то не очень скоро, хотя создатели и впечатлились скалой
UFO just landed and posted this here
«Фреймворки не пишутся сами по себе – они извлекаются из работающих проектов. Ruby on Rails писался для личных нужд, и уже потом был извлечен из кода Basecamp, причесан и задокументирован»

см. Django.

Да и вообще — django клевее RoRа :P
Все фреймворки хороши, нужно знать где их юзать. Например, для себя я сделал вывод, что симфони хорош для высоконагруженых сайтов, а рельсы для разного рода веб-приложений. Какой юз кейс для Джанго порекомендуете?
django сильно похож на рельсы по области использования. Но как python — более эстетичный (на мой вкус) язык, чем ruby, так и django более логичная, доступная, простая и продуманная (хотя несколько отстает по развитию) штука, чем RoR.

Что касается высокой нагрузки — не дело это фреймворка. Ему-то какое дело. Нагрузка — это правильное и активное кеширование, это правильная архитектура серверов, правильные минимодули в правильных местах на правильных технологиях, это правильный мониторинг узких мест. Фреймворк может быть любой.

Гораздо важнее скорость разработки и (самое главное) стоимость поддержки. У django стоимость поддержки и развития почти не растет с ростом проекта. И это офигенно.
Ну эм… Скорость разработки она приблизительно одинакова и для рельсов и для симфони, думаю для джанго тоже. Хотелось бы услышать про какие-то отличительные способности. Например, в джанго есть генератор админок (в симфони, кстати тоже), чего нет в рельсах. А значит, сайт, где требуется разделение на админскую / контентную часть, лучше делать не на рельсах, а на симфони, например.

То есть, в выборе фрейморков, кроме эстетических моментов лучше учитывать практическую пользу от тех или иных специфических фишек.
В правильном фреймворке все эти фишки дописываются сообществом вне ядра фреймворка и все хорошо. Так оно для RoRа, так оно для django.

Django меня сильно привлекает наследованием питоновской идеологии. Это та что:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let's do more of those!
От фреймворка все-таки хочется иметь уже в ядре определенный комплекс возможностей. Джанго в этом плане как и Питон — поставляется «с батарейками».
В Рельсах юзается кучу плагинов как от известных разработчиков (типа Олсона), так и не понятно от кого (и будет-ли работать это дальше в новых версиях).
Мне от Рельс хотелось бы большей монолитности — чтобы в ядре была система авторизации, админка и т.п. с возможностью отключения этого конечно.
Рельсы наоборот уходят в сторону модульности. Смотреть Rails 3.
Практически все из этих утверждений — общие и никакой смысловой нагрузки не несут. Неужели вы реально думаете что кто-то при разработке руководствуется принципом «Ugly is better than beautiful»? ))
UFO just landed and posted this here
Ну вот казался нормальным человеком, читаю тебя уж поболее года, а оказываешься хамло.
UFO just landed and posted this here
ппц, товарищи. Общение высокообразованных ИТ-профессионалов, ага.

Перечитай мои комменты и то, что ты на них отвечал. Я сказал три вещи:

а) «Фреймворки не пишутся сами по себе – они извлекаются из работающих проектов… — см. django» — показал пример успешного фреймворка, написанного без извлечения из проекта.
б) «Да и вообще — django клевее RoRа :P» — в легкой форме высказал личные предпочтения
в) «Django меня сильно привлекает наследованием питоновской идеологии» — опять же, попытался обратить внимание людей на то, что есть некая python-идеология, которой он отличается от Ruby. Процитировал банальщину, конечно, но хоть что-то.

В ответ на это — я звиздобол и удак.

Ты можешь быть профессионалом в своей области, но это не отменяет необходимости быть вежливым и адекватным человеком. Мы с тобой заочно знакомы минимум через троих людей, но я никогда не предполагал что ты столь неадекватен.
UFO just landed and posted this here
Ясно. Минус два человека, с которыми я когда-либо смогу взаимодействовать по рабочим вопросам. Тупой неадекват.

Закончили.
UFO just landed and posted this here
Я уважаю Вас как гуру по Rails, но хватит ругаться!

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

Заводить для этой темы топик(холивар) очередной незачем, а уж если статья про Рельсы или Джанго появляется, то почему бы заодно не сравнить их тут?
UFO just landed and posted this here
Слушай, ну ты же понимаешь, что это маркетинг :) И в питоне достаточно странностей :)
Насколько я понимаю, в Rails намеренно не включаются такие средства. Они отданы на откуп сторонним плагинам, например typus — intraducibles.com/projects/typus или activescaffold.
Ну, понимаешь же, что это идиотизм стравнивать «стилистические признаки» руби и питона и еще больший идиотизм делать из этого выводы про RoR и Django.

Я никогда не программировать на чистом руби, только в рельсах, но зато программировал на чистом питоне и делаю это сейчас. И пользовался всякими питоновскими штуками типа метаклассов и пр. И на мой вкус «стилистически» питон уступает красоте и лаконичности руби. По моему мнению питон внешне не очень красив. Но это опять-таки моме мнение. Из этого не следует, что RoR лучше Django.
Джанго мне показался слишком сложным в изучении.
Хотя по нему видно что он принципам питонизма соответствует весь.

Сейчас пытаюсь одолеть Django, но кажется что с Rails было легче разобраться :).
UFO just landed and posted this here
UFO just landed and posted this here
Еще одно хамство.

Ты что сказать хочешь-то? Django — говно? Ну ок, высказался, молодец.
UFO just landed and posted this here
Уважаемый Максим!
Вы тупой звиздобол и полный неадекват. Что, общем-то, я и слышала от половины ВМК на протяжении нескольких лет.

И не смей наезжать на моего любимого мужчину, лишний раз демонстрируя свою безграмотность и глупость. Заранее спасибо :)
У автора поста прошу прощения, просто таким удакам надо говорить, что они удаки — может хотя бы тогда будут сидеть тихо.
Спакойно, в Джанго всегда можно начать пользоваться SQLAlchemy %)
Хм, я не в тему, но где почитать про скаффолдинг в ror? Думаю о изучении данного фреймворка.
Самое надежное, наверное здесь: guides.rubyonrails.org/getting_started.html#getting-up-and-running-quickly-with-scaffolding

В версии 1.x кроме генератора был еще метод scaffold, потом его выделили в отдельный плагин, и о дальнейшей его судьбе я ничего не знаю.

Если хочется красивых таблиц с AJAX в скаффолде, то есть еще плагины вроде activescaffold.com/.
Там троллинг и холивор походе уже прошел, так что я про любимый Django в контектсе все-таки выскажусь…

Порадовало, что Троллинг PHP присутствует, но ни слова сравнения с Django, ни слова… Это я не к тому, что что-то лучше или хуже, а к тому что на глазах общественности такие вещи сравнивать страшновато, чтобы тебя не затролили, а вот с PHP сравнивать — милое дело… овно, оно.овно и есть.
Но при всем при этом php самый популярный.

И мы конечно как программеры его всегда хамим, но когда заказчик готов заплатить, то сразу забываем про крутизну Ruby/Python и начинаем лабать на Php быстро и не всегда качественно :).
> но когда заказчик готов заплатить, то сразу забываем про крутизну
говорите только за себя…
Говорю за себя и за пару десятков коллег в округе.

Других не знаю, но это не значит что везде так конечно.

Но думаю в совокупности расклад по популярности средств для веб-разработки в мире такой:

1) php абсолютный лидер
2) asp.net, java
3) ruby & python
никак не возьму в толк при чем тут популярность…

мы тут с профессиональной точки зрения обсуждаем разные всякие технологии. если что-то удобней и гибче, то не сильно важно какой расклад, если я могу спокойно найти на этом программиста, а на Python-е я спокойно могу найти хорошего программиста, а вот на PHP — с трудом
Вы тоже рассуждаете исключительно из вашей позиции.
Я просто пытался сказать, что перейти из php-разработчиков на питон или руби очень тяжело в большинстве случаев по причине того, что завал работы на Php, а при всем техническом превосходстве и руби и питон пока имеют очень малый объем рынка.
И неизвестно станут-ли они достаточно популярны, чтобы была мотивация на них переходить, либо останутся уделом энтузиастов и обособленных стартапов.
Вы что ли из прошлого пишете? То что на Django еще не все вебстудии долбокорпоративки клепают не значит, что оно не популярно.

Если перейти с PHP на Python, то работы на PHP не станет, вы же перейдете;)
Так чтобы перейти на RoR, вам — лично — нужна всего одна вакансия на RoR. Неужели так сложно ее найти?
В Москве не сложно, в провинции другое дело.
А в интернетах? Куда далеко ходить — DHH сначала работал удаленно из Дании, хотя 37 сигналов располагаются в Чикаго. И ничего.
Все правильно вы говорите.
Надо вылазить из php-лабания и окончательно переходить на Рельсы или Джанго(пока не понял что ближе).
Python занял нишу эмбединга. Так что это уже не вопрос стартапов и энтузиастов. И это уже так давно. Мир не ограничивается web.

Плюс, посмотрите вокруг. Питоном пользуются Google и Яндекс, а scribd написан на рельсах, как и много всего другого. Как и много всего на Django.
В америке (dice.com)
1) java
2) .net
3) php
4) python
5) ruby
Не начинаю ничего лабать на PHP по просьбе заказчика и не начну. Как и вообще стараюсь не лабать. Чего и Вам желаю.
Желаю DHH скорейшего излечения от звездной болезни.
UFO just landed and posted this here
UFO just landed and posted this here
У меня история один в один. Даже сроки совпадают. :)
UFO just landed and posted this here
А мне очень понравился пункт
В Ruby можно дополнять даже базовые классы, поэтому нет необходимости в новых версиях языка; все, чего DHH ждет от новых версий Ruby, это оптимизация по использованию памяти и по скорости.

По-моему за модульностью будущее.
>Ruby, в отличие от других языков, оптимизирован для удобства программистов
вот за это я его и люблю!
Sign up to leave a comment.

Articles