Отъявленный программист: лайфхакинг из первых рук — страница 47 из 52

Внимательное проговаривание вслух всех листингов — обязательный элемент изучения этого языка, введенный в обиход именно _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.


Маленькое программистское затруднение

На этом _why не успокоился. Продолжением попытки максимально эффективно учить новичков программировать стало создание собственной среды разработки на Ruby, которую он назвал Hackety Hack.

Чтобы максимально точно позиционировать эту IDE, _why выпустил манифест Little Coder’s Predicament, объясняющий суть предназначения Hackety Hack и рассказывающий о проблеме высокого порога вхождения в современное программирование, устранить который отчасти и предназначена эта программа-среда.

Он объясняет это так:

Мы живем в мире ужасно сложных и продвинутых технологий, которые окружают нас повсюду. Неважно, осознаем мы это или нет, но факт заключается в том, что наши бабушки сегодня пользуются смартфонами, наши дети играют на iPad и т. д. — но технологии, скрытые под капотом всех этих предметов, ужасно сложны и комплексны. Я помню, как в старые добрые времена смог сам легко освоить программирование на Commodore 64, но попробуйте сегодня разобраться в таком же возрасте в программировании под Windows, создать свой собственный поиск-аналог Google или написать свое приложение для любимого iPhone. Сделать это будет не так-то просто, как было во времена моего детства. Я называю этот возросший порог для вхождения в мир программирования Little Coder’s Predicament и пытаюсь преодолеть его посредством новой идеологии обучения программированию, реализованной в Hackety Hack.

Итак, этот редактор реализует блоковую концепцию построения программ из уже готовых кусков кода (заготовок, сниппетов). При этом у новичка есть возможность начинать учиться в процессе создания приложений, сразу разбираясь в его устройстве на примерах составных кусков кода (в чем активно помогает эта IDE), а также модифицируя их под свои текущие нужды (поставляется обширная библиотека подобных сниппетов на все случаи жизни).

Такой полуфабрикатный подход позволяет немедленно начать писать программы любому человеку практически без какого-либо предшествующего опыта. Технически редактор базируется на Ruby и Shoes toolkit (библиотека для создания сложных графических интерфейсов).


Неожиданная концовка

Что случилось потом, никто не знает. В июле 2009 года _why внезапно исчез. Ничего не объясняя, никак не объявляя это заранее, на пике своей сетевой популярности... Все его почтовые ящики-контакты были закрыты, его сверхпопулярный Twitter с более чем 10 000 подписчиков отключен, то же произошло и с его персональным блогом и аккаунтом на GitHub, а также с многочисленными сайтами-проектами. За один день все его проекты и само его присутствие в Сети были полностью разрушены.

Сообщество Ruby было шокировано, назвав этот акт виртуальным самоубийством.

В личных блогах огромного количества людей в Сети стали появляться признания о том, что _why изменил их жизнь, именно благодаря ему очень многие пришли в мир программирования или  выбрали Ruby в качестве своего основного языка программирования.

Поиск _why был по-настоящему грандиозным — опрашивались все последние журналисты, с которыми он контактировал, анализировались его последние твиты и письма в попытке понять мотивы, было даже запущено в ротацию стандартное для Америки объявление на пакете молока для поиска пропавших людей, но все было тщетно.

Сетевые энтузиасты своими силами постепенно восстановили все его проекты (более 100 проектов в самых разных областях программирования и искусства). Последний его твит перед исчезновением, как реквием по программированию, таков:

programming is rather thankless. u see your works become replaced by superior ones in a year. unable to run at all in a few more.

До сих пор, несмотря на выступления _why за пределами Сети в реальном мире и на престижных мировых конференциях, активное участие в различных концертах и фрилансерскую работу, никто так и не сумел установить его реального имени или фамилии, равно как достоверно узнать, что же случилось c ним на самом деле.

По неофициальной информации от Ruby-разработчика, плотно с ним общавшегося, настоящее имя _why — Джонатан, и он скончался в 2010 году от рака горла. По словам этого источника, последние три месяца своей жизни он решил полностью посвятить своей семье, отключив все сайты, стерев свои проекты в сети, продав свой компьютер по дешевке и выдернув все сетевые шнуры и вилки, связующие его с внешним миром. Артист, посвятивший всю свою жизнь творчеству и программированию, рисованию и музыке, а также созданию методик эффективного обучения программированию других, в последние месяцы своей жизни жадно наверстывал упущенное, радикально отрекшись от сетевого мира и былых увлечений.

Как бы то ни было все на самом деле, отмечая очередную годовщину его таинственного исчезновения, все мировое сообщество Ruby уверяет, что его неоценимый вклад в популяризацию и развитие этого языка будет сохранен в сердцах программистов навсегда.

Впрочем, вспоминая о нем, сообщество делает это полностью в стиле самого _why — без грусти, тоски и ненужного трагизма, заочно передавая ему привет на его любимом Ruby:

thanks = thank.person("_why") 

thanks.append("~chunky bacon") 

Как, улыбаясь, говорит Матц, создатель языка Ruby, даже после своего исчезновения он продолжает подшучивать над нами всеми. Например, журналисты уже замучили создателя Ruby дурацким вопросомрекурсией: But why mister _why had disappeared?


Вместо заключения

Необоснованные утверждения многих источников, которые цитирует и Википедия, о том, что _why — это 24-летний веб-разработчик Jonathan Gillette, не выдерживают никакой критики. И не только потому, что сам Jonathan Gillette категорически отрицает это, но хотя бы просто потому, что он не знает и не использует Ruby в своей работе (о боже, он PHP-программист!). К тому же данный разработчик весьма символично работает на обычной офисной работе, тогда как Ruby «rock star» _why всегда повторял:

Ходить на работу в офис это как смотреть телевизионные сериалы по вечерам, жизнь — это слишком большая роскошь, чтобы тратить ее на осуществление чужих планов или потребление примитивных телевизионных фантазий.

Дурной пример заразителен: вслед за _why под впечатлением его поступка подобный же акт «сетевого самоубийства» совершил один из ведущих евангелистов Python-комьюнити, Марк Пилигрим (автор знаменитой книги «Dive into Python»), который полностью порвал с проектом Python. Но это уже совсем другая история...

Закончить хочется твитом самого _why, у которого дотошный репортер однажды спросил, чем он, черт побери, вообще занимается? На что тот лаконично ответил: «хакаю хакерство». Чуть позже он написал твит, который отвечал и на все остальные вопросы:

Когда вы ничего не создаете, вас определяют чужие вкусы и мнения, а не ваши возможности. Эти вкусы только ограничивают и отдаляют людей. Поэтому — творите.

ГЛАВА 11. История Рона Авицура: секреты нематериальной мотивации

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