Просмотров: 21318

История одного программиста: ruby «rock star» мистер _why


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

Задумаемся, отличается ли профессия программиста хоть чем-то от тысячи других профессий? Смотрю на очередного молодого программиста, сидящего передо мной на собеседовании и осторожно набивающему себе цену, и я думаю: является ли программирование ремеслом или просто способом физически выжить? Это то, что делают лишь за деньги, или оно достойно чего-то большего? Может это просто технология и хорошо известные алгоритмы, тщательно подобранные паттерны, которые гарантируют хорошие результаты при их понимании и выполнении, где можно расслабиться, доверившись сияющим святостью авторитетам и впредь самостоятельно не думать?

Или здесь всё-таки есть место для неопределенности и вдохновения; встречаются ли здесь моменты ярких открытий и зовет ли порой жажда поиска нового, и если это так — то где обитают музы программиста? А может это и вовсе некое иррациональное искусство, подобному листингам программ на brainfuck, или даже отдельное направление науки?

Наверное, для каждого это что-то своё...

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


Глубоко ошибается тот, кто думает,
что изделиями программистов являются программы,
которые они пишут. Программист обязан
создавать заслуживающие доверия решения
и представлять их в форме убедительных доводов,
а текст написанной программы является
лишь сопроводительным материалом,
к которому эти доказательства применимы.
Эдсгер Вайб Дейкстра

Начать свой рассказ, должен признаться, мне тяжело — я просто не знаю, как представить вам нашего сегодняшнего героя. В сети все его знали под ником why the lucky stiff (или просто _who), и это всё что нам известно о нем. Кем он работал? На всех конференциях он представлялся неизменно: «freelance professor».

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

Пенсионный Фонд нашел бы его мерзким асоциальным элементом...

Intro

_who — это второй человек в мировом сообществе разработчиков Ruby. Доподлинно о нём известно только одно: какой бы самый коварный вопрос не возникал в списках рассылки сообщества, обстоятельный ответ _who всегда гарантированно закрывал проблемную дискуссию. Этим, а также своей фантастической производительностью и неподражаемым вкусом, _who заработал славу одного из самых сильных и ярких экспертов в мире Ruby.

ruby рубист шутка примеры жизнь _who

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

У него была своя музыкальная группа — каждый вечер за электро-гитарой и у микрофона — звезда своего небольшого городка. Интерес к музыке выливался и в программирование, например он создатель музыкальной библиотеки к Ruby bloopsaphone, которая позволяет проигрывать простенькие мелодии, вот например мелодия музыкальной заставки мультфильма Simpson:

require ‘Rubygems’
require ‘bloops’
b = Bloops.new
b.tempo = 180
sound = b.sound Bloops::SQUARE
sound.volume = 0.4
sound.sustain = 0.3
sound.attack = 0.1
sound.decay = 0.3
b.tune sound, «32 + C E F# 8:A G E C — 8:A 8:F# 8:F# 8:F# 2:G»
b.play
sleep 1 while !b.stopped?


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

(poignant) Guide to Ruby

В подзаголовок вынесено название самой известной книги написанной _why. Иногда её обозначают как (p)GtR или просто «the poignant guide» — это одно и тоже. Это учебник для новичка — своего рода введение в Ruby, но не только в его, скажем так, внешнюю техническую суть и командный синтаксис, но и очень эффектная попытка передать его философию и дух. Чтобы сразу уйти от бесполезных дискуссий по поводу её гениальности (или убожества), отдельно подчеркну то, с чем единогласно согласны все: она не такая как все. Она не похожа на то, что вы читали ранее.

Для начала очертим тот широкий диапазон оценок, что она получила: от зашкаливающих восторгов, типа «одна из самых лучших книг по программированию» от Джоела Спольского, до гневных проклятий: «да это же просто издевательство какое-то над читателем!» — от одного дедушки-редактора крупного книжного издательства, где её попытались издать.

Понятно, отчего профессиональный издатель приходит в бешенство: книга написана в таком стиле, в котором, пожалуй, про программирование не писал ещё никто. Все уже привыкли, что книга по программированию должна представлять собой некий заунывно-монотонный рассказ от зануды-программиста, перемежаемый редкими и скучными листингами. Вряд ли вы возьмёте такую книгу с собой в отпуск или будете читать её пару дней и ночей напролет не в силах остановиться.

ruby рубист шутка примеры жизнь _who

_why, конечно, не в состоянии написать так: он никогда не работал в офисе, чтобы, как он считал, «ненароком не похоронить там свой живой интерес к жизни». «(poignant) Guide to Ruby» рассказывает о многом, например о его любимом «кусочке бекона» (chunky bacon — фраза, впоследствии ставшая мемом в сообществе Ruby, и которая используется в огромном количестве примеров Ruby-кода), о его повседневной жизни и наблюдениях, восходе солнца или рассуждениях о языке собак...

ruby рубист шутка примеры жизнь _who

Здесь важно не терять главную суть — всё это лишь о Ruby, который рассматривается здесь в чрезвычайно широком ракурсе и контексте. Книга сразу навязывает очень неспешное, вдумчивое погружение в язык, тщательную проработку его основ, мотивов и подходов. Словно боясь слишком загрузить читателя, _why время от времени аккуратно одергивает своего читателя: эй, приятель, ты ещё здесь?

ruby рубист шутка примеры жизнь _who

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

Попробуйте повторить нечто подобное с Python или не приведи бог с PHP, ну что, получается?

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

ruby рубист шутка примеры жизнь _who

Другой постоянный персонаж книги — чёрный как ночь кот Trady Blix, с которым по признанию самого _why он как-то случайно познакомился на телевидении. _why доверительно признается, что именно Blix и научил его «настоящему Ruby».

Чтобы такая линейность сюжета не показалась кому-то слишком академичной (основанным на «здравом смысле» — любимое ругательство _why) , в ходе изложения они часто меняются местами: в эти моменты уже _why педантично объясняет и учит кота Blix’а особенностям устройства и работы Ruby.

ruby рубист шутка примеры жизнь _who

Книга содержит огромное количество совершенно безумных листингов, например, иногда они являются вспомогательными для понимания механизма путешествия во времени или чего-то вроде этого. Важное приложение к книге — полноценный музыкальный альбом, в котором, по словам _why, «он закрепляет некоторые важные моменты этого курса на эмоциональном уровне».

ruby рубист шутка примеры жизнь _who

Вторая дополнительная составляющая курса — интерактивный обучающий веб-сайт — tryRuby.org. Вслед за Дарвином _why считает, что только непрестанная практика программирования превращает социальную обезьяну в программиста.

Делая скидку на человеческую лень, он создал этот сервис — теперь у каждого есть простая возможность проверить всё, что описано в книге не делая никаких лишних движений, — это настоящий интерпретатор Ruby подключенный напрямую к web, где используя обычный браузер можно создать свою первую программу.

ruby рубист шутка примеры жизнь _who

Другая его похожая книга — это 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».

ruby рубист шутка примеры жизнь _who

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

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

Технически, редактор базируется на Ruby и Shoes toolkit (библиотека для создания сложных графических интерфейсов).

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

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

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

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

ruby рубист шутка примеры жизнь _who

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

ruby рубист шутка примеры жизнь _who

Сетевые энтузиасты своими силами постепенно восстановили все его проекты (более 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, даже после своего исчезновения он продолжает подшучивать над нами всеми, например, журналисты уже замучили его дурацким вопросом-рекурсией: Who is mister _who?

~

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

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

p.s.s.: Дурной пример заразителен: вслед за _who, подобный же акт сетевого самоубийства совершил и один из лидеров Python-комьюнити, — Марк Пилигрим (автор знаменитой книги Dive into Python).

Но это уже совсем другая история...

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , , ,
Эта запись опубликована: Четверг, 24 мая 2012 в рубрике Истории.

6 комментариев

Следите за комментариями по RSS
  1. Да за что же вы его все время _who обзываете, _why он.

  2. ptzn: я только сейчас это заметил, прикольно, спасибо!

    update: я тут глянул по англоязычным источникам, так получается что все путают - в одном месте так, в другом - уже этак, вот и я от них подхватил эту путаницу.

    Но в любом случае спасибо, я уже править ничего не буду, но конечно путаница забавная получилась, хе-хе.

  3. Напишите про Марка, пожалуйста.

  4. /*

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

    */

    Ну КГ/АМ O_o

  5. Скорее, исправь всё на правильный вариант (_why), иначе при репостах Интернет превратится в стыдобу и ужас. Спасибо. :)

  6. Дополнение к истории:

    http://moskalyuk.name/4545

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз