Все конечно уже читали, но вдруг кто-то пропустил: 7 reasons I switched back to PHP after 2 years on Rails.
Автор рассказывает, как два года переписывал PHP-движок на Ruby вдвоем с реально сильным Ruby-программистом (Jeremy Kemper aka bitsweat), а потом, обнаружив что за два года сделана только половина работы, все бросил и переписал на PHP за два месяца, сам. А Джереми ушел писать на Ruby в 37signals.
Мне нравится последний аргумент статьи:
"Rails — отличный учитель... Я люблю Руби за то, что он заставил меня по-настоящему понять ООП. Боже, Руби так прекрасен. Я люблю тебя, Ruby. Но главная причина, по которой любой программист, изучая новый язык, думает, что новый язык НАМНОГО лучше старых — потому что он сам стал лучшим програмистом, чем был. Ты оглядываешься назад и видишь свой старый уродливый код на PHP, сравниваешь его со своим новым прекрасным кодом на Ruby и думаешь: “Боже, как уродлив этот PHP!” Но не забывай, что ты написал тот PHP-код годы назад и теперь несправедливо дискриминируешь целый язык. Язык тут вообще ни при чем (вообще-вообще). Все дело в тебе, чувак. Ты стал лучше. Ты заслужил. ОК. Я хочу сказать, что буду использовать Rails, когда начну новый проект с нуля, буду делать его с мышлением в духе Rails. Но я надеюсь, что эта статья дойдет до кого-то думающего "Боже, как уродлив наш код. Если бы мы выбросили его нафик и переписали все на Rails, все было бы намного лучше!”
А вывод такой: пиши на том языке, который лучше знаешь.
Идея создания Flex-приложений по хлесткому принципу Rails scaffolding пришла мне в голову в тот момент, когда с подачи Клишина я познакомился с Ruby on Rails, точнее -- с тем самым scaffolding, процедурой создания всего MVC-хозяйства по имеющейся структуре данных (грубо говоря). С тех пор эта идея напитала пространство и ее плотность достигла критической массы:
- 10 сентября 2006 года Alex MacCaw обявил о начале работы над Cairngorm Rails Generator.
- 10 января 2007 Ilya Devers выложил на Google Code первую стабильную версию -- набор Ruby on Rails генераторов для Cairngorm. Качать: cairngorm-rails-generator.zip (включает генератор для класса WebOrb Service)
Что делает:
- Сегодня под утро Клишин публикует пост о Ruby / DSL как замене MXML и сильном упрощении жизни Flex разработчика.
Критическая масса достигнута.
Вообще без воды и по русски: Fror = Flex + Ruby on Rails (часть 1). Жаль только, скриншоты там слегка битые. Там нет описания установки Ruby on Rails (об установке ROR можно узнать в статье "Магазин на Flex + Ruby on Rails по русски").
Читая книжку "Programming Ruby" (Клишин дал почитать, спасибо), встретил упоминание об интерактивной версии интерпретатора Руби -- irb. А поскольку дома чисто случайно оказался установленнный Руби (это только частично шутка; Руби уже включается в конфигурацию по умолчанию некоторых Linux и Mac OS систем -- попробуйте ввести в консоли "ruby -v" и можете быть приятно удивлены), я решил попробовать этот irb в действии. Забавная штука -- ты пишешь строку руби-кода, irb тебе отвечает тут же. Незаменимая вещь для изучения языка "методом тыка": а что если так? А так? Вводишь любую команду и получаешь результат или ошибку. Пишешь: "2+2" а он: "4". Можно таким же образом задавать через irb переменные и работать с ними: a = 2, b = 2, a * b.
2+2
4
a = 2
b = 2
a * b
Или пишешь: puts "Hello World!" он отвечает: (угадайте, что?). Так что пока Руби -- самый дружелюбный известный мне язык программирования: на нем короче всего пишется "Hello World!" ;)
puts "Hello World!
Блоки кода тоже поддерживаются в irb. Я решил проверить, как у Руби дела с рекурсией. Хорошо оказались дела, вплоть до определения максимального количества самовызовов (уровней стека); вот мой диалог с irb, в котором я задаю рекурсивную функцию и вызываю ее (я показал весь процесс, начиная с запуска irb прямо из командной строки):
D:\>irb irb(main):001:0> def recursion irb(main):002:1> recursion irb(main):003:1> end => nil irb(main):004:0> recursion SystemStackError: stack level too deep from (irb):2:in `recursion' from (irb):2:in `recursion' from (irb):2:in `recursion' ... 1363 levels... from (irb):2:in `recursion' from (irb):2:in `recursion' from (irb):4irb(main):005:0>
Достаточно дилетантских отзывов; узнать больше об irb (и Ruby) можно в Википедии.
Клишину: RadRails установил на работе только вчера, у них сайт висел, а ко вчерашнему вечеру завелся. Поставил как раз на свежий Eclipse 3.2 RC7, кстати :)
fxri
Неделю назад я заинтересовался Руби и его рельсами, прочел пару хороших статей на тему Ruby on Rails по-русски (PDF, 900Кб), получил десять хороших книжек по Руби от Клишина и решил двинуть с места в карьер, освоив туториал от Кристофа Конраца "Flex-магазин на рельсах". О туториале этом можно сказать много хорошего, и самое лучшее то, что он проводит через процесс работы с Руби с самого начала, включая его установку, загадочный скаффолдинг (раскрыто ниже), настройку приложения и собственно прикручивание Руби к Флексу. При этом туториал действительно проходится на одном дыхании. Заминка у меня возникла только в конце, где Кристоф прибегает к использованию уже устаревших версий как FABridge, так и Flex -- он писал свои примеры под Flex 2 Beta 2, а сейчас уж третья бета на дворе, вот я и обновил его приложение. Завершить это на прошлых выходных я не успел, так как есть работа. Что ж, зато закончил на этих.
Мои впечатления от прохождения туториала, находятся где-то между изучением аккорда Am и его же версии на пятом ладу через баррэ. Ключевое слово в Ruby on Rails -- оптимизация. После установки и запуска получаю:
* внятные сообщения об ошибках в браузере. Нет, это действительно внятные сообщения об ошибках. Во Flex Builder 2 таких пока нет -- или язык там такой сложный? Так или иначе, ошибку удавалось найти и исправить с первой попытки, редко -- со второй -- именно благодаря этим сообщениям.
* скаффолдинг таки рулит. Это когда на вход подается база данных, а затем одной командой создается как работающая админка для этой базы данных, так и готовый сайт, эти данные отображающий (пусть рельсовики поправят, если я ошибся).
* немного непривычно такое частое использование знака процента на каждом шагу. Это одна из моих частых ошибок в Руби коде -- я вместо него все время норовлю вписать доллар..
* возможность вывода результата в XML через спецшаблоны. Это и есть та точка (наверняка это только одна из них), где Руби можно коннектить с другими решениями. Например, с Flash.
* набирал все руками; Кроме последнего примера, демонстрирующего работу с Yahoo UI Library %( -- пройдя туториал, вы поймете, почему );
* одной из моих ошибок было то, что я иногда забывал запустить MySQL перед запуском идущего с RoR сервера WEBrick. В результате получал ошибку "No connection could be made because the target machine actively refused it". После запуска MySQL и перезапуска WEBrick все становилось на свои рельсы и летало.
Ruby on Rails -- очень хороший вариант для фрилансеров, работающих как над серверной, так и над клиентской частью сразу. Хоть я сам им и не являюсь -- но тесты проводил дома, при включенной жене и громкой музыке реггей, в присутствии другого срочного проекта так что условия можно считать вполне боевыми %)
И для небольших компаний разработчиков, не переутяжеленных ISO-9001 стандартизацией и любовью к избыточному документированию каждого пука язык Ruby и особенно фреймворк Ruby on Rails тоже очень может пригодиться. Поинтересоваться им стоит в любом случае -- хотя бы на уровне пары туториалов, чтобы узнать об одной из хороших реализаций концепции "Работа как отдых" ;-)
Читая посвященнык Ruby посты неутомимого Клишина (часто противоречивые, что только подогревало мой интерес), я все четче видел надвигающуюся беспощадную легкость освоения еще одного языка. Но нужно было, чтобы кто-то взял за ручку, поводил по эрогенным зонам и убедил выбросить из личного времени еще немного мусора, освободив место под динамическую типизацию и работу как отдых.
Мои опасения подтвердились самым наихудшим образом.
loop do read and reply mails write code write document/article/book write code end
Этот куткос кода Руби-приложния взят со страницы "Программисты говорят о Ruby". Там можно узнать кое-какие начальные факты о рубящем языке и решить, надо оно тнбн или пока так можно.. наверняка я не один такой %)
Нырнуть в глуби руби немного резче можно здесь.
Чуть не забыл, что у Фотрошителя есть читатели со скоростью света. Для них приготовлено специальное рубиизвержение в сторону Flex. Там создают магазин. Кто знает лучшие точки входа -- делитесь.
Совсем древнее: 17-20.09.2002, 23-30.09.2002, 01-04.10.2002, 07-11.10.2002, 14-19.10.2002, 20-26.10.2002, 27.10-02.11.2002, 04-08.11.2002, 11-16.11.2002, 18-23.11.2002 25-30.11.2002, 02-07.12.2002, 09-14.12.2002 Сайт заработал 17.09.2002