хочу всё знать (программистское)
Dec. 5th, 2005 02:29 pmЗапись будет интересна только программистам :-)
Я не понимаю прикола технологии Ruby on Rails. Объясните мне, пожалуйста, в чём тут дело?
(я в общих чертах представляю себе, что такое Ruby, но никогда на нём не писал)
Я не понимаю прикола технологии Ruby on Rails. Объясните мне, пожалуйста, в чём тут дело?
- Почему так много шума?
- В чём состоит её новизна? Что вообще это такое, в двух словах и без buzzwords?
- Действительно ли оно такое замечательное и для чего оно реально удобней и лучше альтернатив?
- Почему так много шума?
(я в общих чертах представляю себе, что такое Ruby, но никогда на нём не писал)
no subject
Date: 2005-12-05 12:44 pm (UTC)Плюс - очень удобно и качественно реализован MVC. Не нужно заморачиваться на парсинг request.
Собственно, дело не в языке Ruby. Для python существует Django с похожим подходом. Для PHP5 пишется много чего, но ограничения самого языка все-таки мешают.
no subject
Date: 2005-12-05 12:57 pm (UTC)no subject
Date: 2005-12-05 12:59 pm (UTC)Но все же - почему django "не похожа"? :)
no subject
Date: 2005-12-05 12:59 pm (UTC)Насколько я понял, ruby (которого я не знаю) позволяет и чуть ли не синтаксические конструкции задавать под предметную область (т.е. работать мета-языком), и как раз оттого ruby on rails позволяет писать крайне компактный и прозрачный в смысле предметной области код. Но сам не пробовал.
no subject
Date: 2005-12-05 05:22 pm (UTC)no subject
Date: 2005-12-05 04:01 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-11 06:02 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-05 01:32 pm (UTC)> Почему так много шума?
Из-за денек. :)
Как я понял с http://www.rubyonrails.org/ , новизны ТЕХНОЛОГИЧЕСКОЙ там нет никакой - тот же ASP, только с другим языком. А как пример частной реализации, ВОЗМОЖНО имеет хорошую среду с удобными вспомогательными функциями.
Авва, а вы программист или так, эрудит? :)
no subject
Date: 2005-12-05 01:50 pm (UTC)(no subject)
From:no subject
Date: 2005-12-05 02:03 pm (UTC)я не великий спец в уеб-программизме, но для моего уха это звучит примерно как "Мерседес — это та же Волга, только с другим мотором". :)
я так себе понимаю, что ваятели сайтов — люди, вменяемыми "динамическими" языками неизбалованные ("Бейсик, PHP и Пёрл — вот мои инструменты!").
а тут вдруг симпатишный framework на вполне себе неидиоцком языке. почему какой-нибудь питоновый framework не был распиарен раньше — вопрос интересный. а Лисп со Смолтоком типа эзотерические слишком и мало кому интересны. отсюда и шум.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:Re: почему не нужна крутизна
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-05 01:57 pm (UTC)http://tryruby.hobix.com/
а так есть огромное количество технологий в сто раз лучше, но неизвестных вообще.
на других языках :)
no subject
Date: 2005-12-05 02:19 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-05 04:11 pm (UTC)Rails - вызывают даже подозрение, всё как-то слишком элементарно в них делается. На что потрачено столько времени, конфигурируя всякие эксэмэли и т.д.
Есть ли у этого будущее? Неочевидно; слишком много на свете идиотов.
Re: почему не нужна крутизна
Date: 2005-12-05 05:53 pm (UTC)в силу причин фундаментальных
скорее типа там наверху верно заметили - смоллтолка для бедных
про вмазывание "конструкций" из хаскеля - смешно :)
Re: почему не нужна крутизна
From:instance Monad (->)
From:no subject
Date: 2005-12-05 06:59 pm (UTC)Ruby - не такой? Там помимо простоты есть гибкость? Разубедите меня, вообще мне эта штука очень понравилась :)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-06 05:38 pm (UTC)no subject
Date: 2005-12-05 04:30 pm (UTC)no subject
Date: 2005-12-05 05:07 pm (UTC)Думаю, шум вокруг RoR многим обязан шуму вокруг компании 37signals (http://37signals.com/), в которой она была создана. Это очень buzzword-compliant компания — web2.0, ajax, GTD etc. И делает интересные продукты, привлекающие шумных поклонников.
Техническую сторону
neoromantic уже обрисовал: вкусный web framework с ORM и прочими примочками, на ruby. Мне сложно говорить о том, как её восприняли веб-девелоперы из мира php/perl/python. А в Javaйских кругах RoR привлекла внимание обещаниями о простоте разработки: что на RoR получаются хорошие MVC/ORM веб-приложения, но легковесные, и в которых-де надо писать очень мало кода.
no subject
Date: 2005-12-05 06:24 pm (UTC)Библиотека для разработки Web-приложений на языке Ruby. Широко использует разнообразные приемы метапрограммирования, накопленные Ruby-сообществом за последние 10 лет. (Язык Ruby старше, чем, например, PHP: 1993 vs 1995.)
Почему так много шума?
Потому что тот факт, что на Java неудобно писать Web-приложения, долго был непроизносимым. Когда запреты падают, они примерно такой звук обычно и издают :-) Теперь вся толпа ринулась в сторону Rails.
В чём состоит её новизна?
Практически ни в чем. Фишка Rails - не в новизне, а в usability и эргономике (объем и читаемость кода). На удивление много хорошо продуманных мелочей.
Действительно ли оно такое замечательное и для чего оно реально удобней и лучше альтернатив?
По сравнению с Java (именно такое сравнение чаще всего звучит) - Rails действительно выигрывает. Код и время разработки действительно уменьшаются в 10 раз. По сравнению со скриптовыми языками - споры пока идут, но похоже, что Rails чаще выигрывает, чем проигрывает.
Основной актив - синтаксическая легкость Ruby; например, в Rails широко используются higher-order functions и metaclass hacks - за подобные приемы Ruby не взимает никакого "синтаксического налога на уродливость", и это очень помогает.
Нужно иметь в виду, что Ruby - очень объектно-ориентированный язык, от этого никуда не деться. Соответственно, GUI они представляют себе как MVC и только MVC. Работу с базами данных - только через object-relational mappings. И так далее.
no subject
Date: 2005-12-05 06:53 pm (UTC)я вообще-то не доверяю ORM. обычно его реализации дают сделать только select from
я вообще-то не доверяю ORM. обычно его реализации дают сделать только select <field list> from <table/view> where pk = <value>, так что весь датабазный цимус остаётся недоступен.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-05 08:30 pm (UTC)Я, кажется, что-то понял. Дело в том, что я никогда и не писал веб-приложения на Джаве. Я их писал на Перле в основном :) иногда на C++, но не по своему выбору.
Практически ни в чем. Фишка Rails - не в новизне, а в usability и эргономике (объем и читаемость кода). На удивление много хорошо продуманных мелочей.
Т.е. по сути дела, это удобная библиотека для stateful, DB-bound, session-based веб-приложений, абстрагирующая обращения к базе данных и всякие неудобные мелочи типа HTTP headers. Правильно понял?
По сравнению со скриптовыми языками - споры пока идут, но похоже, что Rails чаще выигрывает, чем проигрывает.
Ага, именно по сравнению с (скажем) Перлом я и пытаюсь понять, в чём выигрыш.
Основной актив - синтаксическая легкость Ruby; например, в Rails широко используются higher-order functions и metaclass hacks - за подобные приемы Ruby не взимает никакого "синтаксического налога на уродливость", и это очень помогает.
Гм. Кажется, понимаю, но надо будет почитать про Ruby побольше.
Ещё раз спасибо.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2005-12-05 11:36 pm (UTC)leaving the hype and its sources and results aside, RoR optimizes on the side of the developer's time, since it is the most expensive asset for the most apps.
it targets 80% of those web apps that need nothing more than a database and a web interface.
ruby itself is great, enabling metaprogramming/domain-specific languages, etc. but in my opinion, the most important is the way how everything is thought out and put together in RoR.
in this niche of smaller web apps with average ("common") programmers:
- steaming pile of randomly evolving php with hacked together apis showing growing pains and dozens of bloated hacky frameworks; it is too easy to do bad things, and it takes a tremendous effort to build things properly
- insanely customizable battleship-meets-spacecraft-meets kitchen sink of java with several ORM frameworks, several web frameworks, several build frameworks, etc, etc (everyone has a framework!) and complexity of configuring them, maintaining their inter-dependencies (xml, xml, xml, xml!), plus the whole edit-package-redeploy-refresh cycle (as opposed to edit-refresh) and multitude of app servers
- "write once" perl (does not grow gracefully; see php)
- more esoteric python (no good popular framework yet) and others (zend, etc)
- somewhat esoteric coldfusion (better thought-out than php, but closed and no large open market, not as easily extensible, etc)
- asp.net (similar arguments as coldfusion; needs more java-like communities; i do not know it that well)
- other stuff that i might be missing (lisp'ing paul graham, smalltalk, etc)
RoR has one stack that covers everything and gives novices an idea how the development cycle should work. it gives them a skeleton for a project that includes a build system (rake), a deployment system (lighthouse), testing, cpan-like package management; an idea of dev/test/prod environments (implicit support for building against an environment), built-in web/app server (run the script, it starts - now you develop; edit-refresh), one orm framework (active record); mvc presentation framework (actionpack), logging, debugging.
all of the above is integrated together and uses sane defaults. no heaps of xml to edit, all of it works on convention, which, once again, is fine for 80% of the people. remaining 20% can customize if needed.
out of the box it promotes usage of source control, testing, build automation, etc, etc. and this is the main benefit - once people start using it, especially beginners, they would evolve gracefully, using all the right approaches to agile development. RoR's creator is a big fan of pragmatic programmers (http://www.pragmaticprogrammer.com/) and it shows.
i would still use php to cobble up something fast, i would still use java for most of the corporate stuff (a lot more libraries, a lot more connectivity with other systems, more developers available, they pay me more, it is much more manageable for large teams (geographically dispersed, diferent skills, politics)), but for anything else that requires rapid development, involves only a few people, talks to the common systems, i would chose RoR. it is not a golden hammer, but it would fit most of the web apps.
if i were to teach someone web development, for non-programmers i would start with php, but for anyone with a programming background, RoR would be an easy learning curve.
once again, optimizing for programmer's time. thus i left out all the other stuff - deployment, scalability, hosted environments, availability of talent, koolaid drinking teens, etc, etc.
glace through the "agile web development with rails" book from pragmatic programmers. if nothing else, it is a very well thought-out introduction compared to other arguments lost in the religious wars among bloggers.
no subject
Date: 2005-12-06 09:20 pm (UTC)большое спасибо! Действительно подробное и ясное объяснение.
The Pragmatic Programmer я читал и мне в целом понравилось - писал как-то об этом.
(no subject)
From:no subject
Date: 2005-12-06 04:55 am (UTC)А URL?
Date: 2005-12-06 08:51 am (UTC)(no subject)
From:Re: А URL?
From: