Хорошо хоть Merb есть, но пока до I18N там еще далеко, дефолтный DataMapper обламывает а плагин AR все же плагин. Форкнули бы AR и вылизали, чем DataMapper в корне отличается кроме как отсутствием named_scope и других нужных и красивых фич?
> О, отлично. можешь набросать маленький спиосок достоинтств/недостатков rails и django и что же повлияло на выбор в пользу второго.
Пистон есть везде из коробки и в целом более популярен на рынке?
Работает быстрее?
Больше библиотек?
Стабильный и простой mod_wsgi, который работает даже с WinServer в отличие от mod_rails?
Yandex&Google use it?
GAE?
Вот бы еще он развился до такого состояния, когда можно спокойно сесть и строить приложение, без прыгания с кучкой уродских плагинов от васи для интернационализации, аттачментов, та же интеграция с tztime просто необходима, config.gem, initializers. Мерб на первый взгляд крут и похоже прост так как написан без тупых выебонов. Гиков там не много, однако из рельс можно было бы и взять некоторые хорошие вещи.
но в то же время, имхо, дефолтный стек ( aka gem install merb ) вполне включает в себя необходимую базу :
volh@ehursagkurkurra ~ >> gem search merb
*** LOCAL GEMS ***
merb (1.0)
merb-action-args (1.0.1, 1.0)
merb-assets (1.0.1, 1.0)
merb-auth (1.0.1, 1.0)
merb-auth-core (1.0.1, 1.0)
merb-auth-more (1.0.1, 1.0)
merb-auth-slice-password (1.0.1, 1.0)
merb-cache (1.0.1, 1.0)
merb-core (1.0.1, 1.0)
merb-exceptions (1.0.1, 1.0)
merb-gen (1.0.1, 1.0)
merb-haml (1.0.1, 1.0)
merb-helpers (1.0.1, 1.0)
merb-mailer (1.0.1, 1.0)
merb-more (1.0.1, 1.0)
merb-param-protection (1.0.1, 1.0)
merb-slices (1.0.1, 1.0)
merb_datamapper (1.0.1, 1.0)
gem dependencies в конфиге есть, причем приятнее чем в рельсах - config/dependencies.rb, initializers вполне можно засунуть в config/init.rb, или вынести в те же config/initializers парой строк. по поводу tztime пока ничего сказать не могу. чего вам еще не хватает? я тоже вот последнее время думаю, но никаких действительно нужных фич из рельс найти не получается.
Ах, твоя правда, я не заметил или не было, хз.
А почему у него модель от базового класса не наследуется и надо миксить Resource? Мне это кажется плохой идеей.
>А почему у него модель от базового класса не наследуется и надо миксить Resource?
ну, так можно придти к спору множественное наследование vs примеси. год назад, ЕМНИП, datamapper "был как все" и нужно было наследовать от Datamapper::Resource, но потом они это изменили. насколько я понимаю, это общепринятый способ расширения классов в datamapper и merb, призванный, в том числе, чтобы не плодить ужасов манкипатчинга как в рельсовых плагинах.
class User
include DataMapper::Resource
include Merb::Authentication::Mixins::SaltedUser
include My::Own::Super::Extension
property :email, String, :format=>:email_address
property :login, String, :nullable=>false
end
впрочем, я определенно не совсем в теме :/
>Мне это кажется плохой идеей.
>Пистон есть везде из коробки и в целом более популярен на рынке
С этим соглашусь, но что мне до рынка? Я красноглазый линуксойд и ненавижу все коммерческое. А жава предоставляет вообще полный стек технологий, так что теперь?
>Работает быстрее
Прям в сто-питьсот раз? Не так уж и быстрее.
>Больше библиотек?
Давай-ка список либ которые ты используешь, что же нету для руби. И если ты совсем без питонячих либ не можешь, есть ruby-python, тока им никто не пользуется, своего добра хватает.
>Стабильный и простой mod_wsgi, который работает даже с WinServer в отличие от mod_rails?
Не существенно
>Yandex&Google use it?
OMG они его там для всякой туфты используют. Основные их инструменты это не православные Java и C++.
>Вот бы еще он развился до такого состояния, когда можно спокойно сесть и строить приложение, без прыгания с кучкой уродских плагинов от васи для интернационализации
Я не понимаю как тут пожно избавиться от манкипатчинга, User это модель, она персистентная и должна явно наследоваться от базового класса. Персистентность тут явно _не лишный обвес_.
В данном случае придется матчить примеси, а не базовый функционал. К тому же acts_as_* это круто, в DM вроде это другое - is_a. Короче не понимаю нахрена было плодить еще одну сущность, AR написан более менее хорошо. Лучше бы развивали и вылизывали один "ORM".
Чувствуется небольшая ненависть к рельсам, даже :exclude вместо :except :)
O rly? Почитай Сагалаева. Он пишет, что в Яндексе только Django используется для прототипирования большинства проектов. Плюс есть несколько проектов, которые работают на джанго в продакшне. Про гугл вообще смешно, это практически кузница питоновской популярности. Youtube на питоне конечно был куплен, но его не стали переписывать на жабе, угадай почему.
Во-во, они просто вербуют в свою проприетарную секту красноглазых. На месте питона там вполне мог быть любой похожий язык, к примеру perl. А практической ценности там от питона почти 0. Ну предположим руби используют в NASA, и что? "Американские физики выбирают руби?", не? Это не говорит ровном счетом ниочем.
Так это ты акцентировал внимания на этих вещах, типа популярности, больших компаний и т.л. Ну так получи и распишись. Лично для меня это не играет никакой роли. Работа идёт, несмотря на твою сопли.
Сайт oDesk, специализирующийся на трудоустройстве, сообщает о резко возросшем спросе на PHP-программистов, предложения по зарплатам для таких специалистов также быстро растут.
Судя по аргументам, рулит пхп
--из новости--
В последнем ежемесячном обзоре вакансий программистов, который составил ODesk, отмечается тот факт, что спрос на PHP-программистов стабильно высок, а уровень предлагаемых им зарплат – выше среднего.
По словам управляющего oDesk Гэри Суорта, спрос на специалистов, работающих с языком PHP, вдвое превышает спрос на программистов, работающих с другими языками. По его мнению, это связано с тем, что специалисты в области технологий с открытыми исходными кодами, таких как PHP и MySQL, сейчас наиболее востребованы на рынке. Суровый финансовый климат, похоже, еще не сказался на рынке труда для программистов и разработчиков, однако в oDesk тщательно отслеживают ситуацию.
Как пояснил владелец Innovative Web Solutions Николя Прежан, PHP превосходно сочетается с любой другой языковой платформой и является бесплатной, гибкой программной средой с возможностью получить квалифицированную помощь у огромного сообщества работающих с ней людей. Плюс к этому, доступно огромное число стандартных скриптов PHP и MySQL, которые можно с легкостью переделать под собственные нужды или портировать на практически любое сетевое приложение.
--
не скажу, что мне особенно нравится пхп, но писать на нем можно, потому что это глобально и надежно:D
ну да, конечно жутко актуально числа фиббоначи считать. нет что бы написать лишний десяток строк и соорудить тест на обработку строк и работу контейнеров.
>gem dependencies в конфиге есть, причем приятнее чем в рельсах - config/dependencies.rb, initializers вполне можно засунуть в config/init.rb, или вынести в те же config/initializers парой строк.
В этом-то и тема. Все пользуются соглашениями и ничего никуда не выносят, потому код рельсовый читать быстро и приятно.
Соглашения это здорово, рельсы предоставляют готовый стек, все на своих местах и т.д. Безусловно, на основе merb сделано приблизительно то же самое - в качестве метагема "merb". Но эта штука больше для тех, кому может быть удобнее создать свой стек, с теми: ORM, JS framework, testing framework, и т.д, которые больше по душе. И крупные компании так и делают, например, afaik, yellowpages.com используют merb и sequel в качестве orm. Что теперь, бояться, что новый разработчик запутается в структуре проекта, если не увидит настройки роутинга там, где они по его мнению должны быть? На mephisto вроде как-то не особо жаловались. Я видел достаточно роровских приложений, где черт ногу сломит со всеми соблюденными правилами и соглашениями.
>потому код рельсовый читать быстро и приятно.
Проблемы начинаются, когда надо использовать прошлые наработки. Нередко в плагинах делается такое волшебство, которое попросту ломает все приложение при обновлении рельс. Поэтому стабильное API в merb - штука определенно нужная. Или вот классическая задача - нужно использовать форум. Как это делается в джанго? Пишется приложение форума и потом монтируется в структуру проекта, который в форуме нуждается. Со своими моделями, роутами, шаблонами. Как это делается в рельсах? Большой Дэ говорит: пишите все с нуля, ведь это круто и по-пацански. Просто потому, что это не нужно 37signals. Ну и в результате берется какой-нибудь altered_beast, копируется в приложение без всяких нэймспейсов, как составная часть одного проекта, без разбора. А уж обновлять его потом - вообще весело.
Ну и да, ссылки на абсолютно невменяемые коммиты - в первом сообщении треда.
Вобщем, все вышенаписанное сводится к "больше велосипедов, хороших и разных" )
>Проблемы начинаются, когда надо использовать прошлые наработки.
Видно, что человек питался использовать это поделие в продакшне. Я вот тоже пытался и не раз. Вконце получался такой кривой урод, что уж лучше PHP в одном файле без разделения логики и то проще было бы разобраться, чем во всех этих бесконечных расширения классов, class_eval, module_eval и прочей мути который насилуют рантайм и конфликтуют с новыми версиями либ. Единственный приемлимый костыль - все обкладывать вдоль и поперек тестами, извините уж лучше пехапе одним файлом чем все это велосипедостроение.
У меня тоже волосы на спине дыбом встали от такого известия. Выходит это поделие до сего времени не умело пулинг. И кто то им даже пользовался в production. Жуть...
> Видно, что человек питался использовать это поделие в продакшне. Я вот тоже пытался и не раз. Вконце получался такой кривой урод, что уж лучше PHP в одном файле без разделения логики и то проще было бы разобраться
>Вконце получался такой кривой урод, что уж лучше PHP в одном файле без разделения логики и то проще было бы разобраться, чем во всех этих бесконечных расширения классов, class_eval, module_eval и прочей мути который насилуют рантайм и конфликтуют с новыми версиями либ.
не надо впадать в крайности. просто рельсы на то и рельсы, чтобы ехать на них по пути, построенном 37signals. это. ну как его. opinionated, ага.