Flash Ripper RSS Readers

+

07.Октябрь.2007

"7 причин, по которым я вернулся к PHP после 2 лет с Ruby"

Все конечно уже читали, но вдруг кто-то пропустил: 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, все было бы намного лучше!”

А вывод такой: пиши на том языке, который лучше знаешь.

Posted by: Rost at 09:27 PM | Comments (12)

27.Январь.2007

Ruby/ Cairngorm Rails Generator, скоро бабахнет

Идея создания 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)

Что делает:

  • Берет имя вашего приложения и создает типичную структуру cairngorm-проекта, включая modelLocator, frontcontroller, services.mxml и само приложение. Вы можете также указать структуру пакетов.
  • Создает делегаты (не путать с флэшовыми, речь идет о делегировании вызовов сервера).
  • Включает создатель команд Cairngorm, генерирующий команду, событие и комментарий для передачи во frontcontroller.
  • Создает standalone-события и value object'ы (хотя автор признает, что может оказаться более разумным создавать VO по классам модели)

- Сегодня под утро Клишин публикует пост о Ruby / DSL как замене MXML и сильном упрощении жизни Flex разработчика.

Критическая масса достигнута.

Posted by: Rost at 06:05 AM | Comments (2)

30.Июнь.2006

Fror = Flex + Ruby on Rails

Вообще без воды и по русски: Fror = Flex + Ruby on Rails (часть 1). Жаль только, скриншоты там слегка битые. Там нет описания установки Ruby on Rails (об установке ROR можно узнать в статье "Магазин на Flex + Ruby on Rails по русски").

Posted by: Rost at 11:20 AM | Comments (0)

14.Июнь.2006

Интерактивный Руби

Читая книжку "Programming Ruby" (Клишин дал почитать, спасибо), встретил упоминание об интерактивной версии интерпретатора Руби -- irb. А поскольку дома чисто случайно оказался установленнный Руби (это только частично шутка; Руби уже включается в конфигурацию по умолчанию некоторых Linux и Mac OS систем -- попробуйте ввести в консоли "ruby -v" и можете быть приятно удивлены), я решил попробовать этот irb в действии. Забавная штука -- ты пишешь строку руби-кода, irb тебе отвечает тут же. Незаменимая вещь для изучения языка "методом тыка": а что если так? А так? Вводишь любую команду и получаешь результат или ошибку. Пишешь: "2+2" а он: "4". Можно таким же образом задавать через irb переменные и работать с ними: a = 2, b = 2, a * b.

Или пишешь: puts "Hello World!" он отвечает: (угадайте, что?). Так что пока Руби -- самый дружелюбный известный мне язык программирования: на нем короче всего пишется "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

Posted by: Rost at 09:10 AM | Comments (16)

28.Май.2006

Мое первое впечатление от Ruby on Rails на примере работы над уроком Flex + RoR от Кристофа Конраца

Неделю назад я заинтересовался Руби и его рельсами, прочел пару хороших статей на тему 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 тоже очень может пригодиться. Поинтересоваться им стоит в любом случае -- хотя бы на уровне пары туториалов, чтобы узнать об одной из хороших реализаций концепции "Работа как отдых" ;-)

Posted by: Rost at 07:50 AM | Comments (12)

20.Май.2006

Почему Ruby так рубит?

Читая посвященнык Ruby посты неутомимого Клишина (часто противоречивые, что только подогревало мой интерес), я все четче видел надвигающуюся беспощадную легкость освоения еще одного языка. Но нужно было, чтобы кто-то взял за ручку, поводил по эрогенным зонам и убедил выбросить из личного времени еще немного мусора, освободив место под динамическую типизацию и работу как отдых.

Мои опасения подтвердились самым наихудшим образом.

loop do
read and reply mails
write code
write document/article/book
write code
end

Этот куткос кода Руби-приложния взят со страницы "Программисты говорят о Ruby". Там можно узнать кое-какие начальные факты о рубящем языке и решить, надо оно тнбн или пока так можно.. наверняка я не один такой %)

Нырнуть в глуби руби немного резче можно здесь.

Чуть не забыл, что у Фотрошителя есть читатели со скоростью света. Для них приготовлено специальное рубиизвержение в сторону Flex. Там создают магазин.

Кто знает лучшие точки входа -- делитесь.

Posted by: Rost at 06:26 AM | Comments (10)


++