(poignant) Guide to Ruby
В подзаголовок вынесено название самой известной книги, написанной _why. Иногда ее обозначают как (p)GtR или просто «the poignant guide»[21] – это одно и то же. Это учебник для новичка – своего рода введение в язык Ruby, но не только в его, скажем так, внешнюю техническую суть и командный синтаксис, но и очень эффектная попытка передать его философию и дух. Чтобы сразу уйти от бесполезных дискуссий по поводу ее гениальности (или убожества, по мнению других), просто подчеркну то, с чем согласны все: книга не такая, как все. Она не похожа на то, что вы читали ранее.
Для начала очертим тот широкий диапазон оценок, что она получила: от зашкаливающих восторгов типа «одна из самых лучших книг по программированию» (от Джоела Спольского), до гневных проклятий: «Да это же просто издевательство какое-то над читателем!» – от одного дедушки-редактора крупного американского издательства, где ее однажды попытались издать.
Понятно, отчего профессиональный издатель приходит в бешенство: книга написана в таком стиле, в котором, пожалуй, про программирование не писал еще никто. Все уже привыкли, что книга по программированию должна представлять собой некий заунывно-монотонный рассказ от зануды-программиста, перемежаемый редкими и скучными листингами. Вряд ли вы возьмете такую книгу с собой в отпуск или будете читать ее пару дней и ночей напролет, не в силах оторваться.
_why, конечно, не в состоянии писать, как все: он никогда не работал в офисе, чтобы, как он считал, «ненароком не похоронить там свой живой интерес к жизни». «(poignant) Guide to Ruby» рассказывает о многом, например о его любимом «кусочке бекона» (chunky bacon – фраза, которая впоследствии стала мемом в сообществе Ruby и используется в огромном количестве примеров Ruby-кода), о его повседневной жизни и наблюдениях, восходе солнца или рассуждениях о языке собак…
Здесь важно не терять главную суть – все это лишь о языке Ruby, который рассматривается в чрезвычайно широком ракурсе и контексте. Книга сразу навязывает очень неспешное, вдумчивое погружение в язык, тщательную проработку его основ, мотивов и подходов. Словно боясь слишком перегрузить читателя, _why время от времени аккуратно одергивает своего читателя очередной шуткой: эй, приятель, ты еще здесь?
Внимательное проговаривание вслух всех листингов – обязательный элемент изучения этого языка, введенный в обиход именно _why. Ruby спроектирован так, что одна из его удивительных особенностей – это формирование в процессе написания программы осмысленного для чтения на обычном английском языке листинга, который более или менее может прочитать и понять любой обычный человек. Попробуйте повторить нечто подобное с Python или не приведи господь с PHP – ну что, получается?
Большинство листингов в книге сопровождаются комиксами с диалогами рисованных лисиц, которые обсуждают всю необходимую теорию, чаще используя то, что упомянутый издатель ехидно назвал «как минимум очень странным юмором, если не сказать более».
Другой постоянный персонаж книги – черный, как ночь, кот Trady Blix, с которым, по признанию самого _why, он как-то случайно познакомился на телевидении. В самом начале книги _why доверительно признается, что именно Blix научил его «настоящему Ruby».
Чтобы такая линейность сюжета не показалась кому-то слишком академичной (основанной на «здравом смысле» – любимое ругательство _why), в ходе изложения они часто меняются местами: в эти моменты уже _why педантично объясняет и учит кота Blix’а особенностям устройства и работы Ruby.
Книга содержит огромное количество совершенно безумных листингов, например иногда они являются вспомогательными для понимания механизма путешествия во времени или чего-то вроде того. Важное приложение к книге – полноценный музыкальный альбом, в котором, по словам _why, «он закрепляет некоторые важные моменты курса на эмоциональном уровне».
Вторая дополнительная составляющая курса – интерактивный обучающий сайт tryRuby.org. Вслед за Дарвином _why считает, что только непрестанная практика программирования превращает социальную обезьяну в программиста.
Делая скидку на человеческую лень, он создал этот сервис – теперь у каждого есть простая возможность проверить все, что описано в книге, не делая никаких лишних движений. Это настоящий интерпретатор Ruby, подключенный напрямую к web, где, используя обычный браузер, можно создать свою первую программу.
Другая его книга – Nobody Knows Shoes. Под впечатлением от этого стиля другими были созданы очень похожие на оригинал книги, например Learn you a Haskell for great good.