исповедь разработчика Linux

Раньше я думал, что свободное ПО – прекрасная вещь. Однако не хотелось бы соотносить себя с теми фундаменталистами, ставящими знак равенства между GNU и свободой, загаживающими весь Инет псевдоинтеллектуальным мастурбированием на тему: «свободное» программное обеспечение ведет к «свободному» обществу. В противоположность «чумазым линуксоидам» и «бородатым BSD-шникам», наводнившим Интернет, у меня есть веские (и весьма американские) причины для яростного и, возможно, высокомерного евангелизма. Но обо всем по порядку.

Будучи единственным ребенком в семье, страдавшим умеренным астигматизмом, слегка близоруким, с расстройством устной речи, я был обречен считаться кретином в начальной школе. Конечно, в возрасте семи лет у нас не было доступа к Интернету, и на переменах мы искали, чем бы заняться. Многие увлекались едой и неизменно толстели. Однако по утрам оставалось много свободного времени для обсуждения интересующих нас тем: черных дыр, общения с девочками (или мальчиками), а также книг ужасов, которые мы тогда читали. В поисках пищи для ума открыл я и путь в библиотеку. Не забывайте, что это были 1980-е, когда Всемирная паутина только зарождалась. Я просмотрел море материалов, пытаясь найти что-нибудь интересное с тех пор, как истощились обычные темы: космология, радиоинженерия, ядерная физика и математика за курс колледжа – дурацкие жвачки для мозга. Так оказался я у соседнего книжного ряда (книги по смежным дисциплинам были расположены поблизости), где остановился на книге о компиляторах с драконом на обложке.

В кругу моих друзей мне доводилось лишь слышать о компьютерах от тех из нас, чьи родители хорошо зарабатывали и не скупились тратить средства на своих асоциальных и угрюмых отпрысков. Собирая обрывки информации у разных людей, узнал я о Денисе Ричи, Кене Томпсоне и операционной системе UNIX. Я слышал о компиляторах, но только в связи с языком программирования Си, общая концепция была мне пок анепонятна. К изучению информатики подтолкнула меня упомянутая книга. Месяцами я оттачивал свои знания и, в конце концов, принял решение создать мое собственное ядро Unix. Много летних ночей было потрачено на его разработку, но в итоге, пришел я, к сожалению, к эволюционному тупику, заменив имя системного вызова creat() на create(). Хотя это и обнаружило ошибку, публично признанную Денисом Ричи, но препятствовало моей новой ОС получить какую-нибудь долю на рынке, дав возможность Линусу Торвальдсу победить меня с минимальным перевесом пол десятилетия спустя. К тому времени я заслужил некоторое доверие в своей социальной сфере и, пользуясь этим, мог бы легко стать хакером. Но, к сожалению, это было невозможно в возрасте 14 лет, к тому же без доступа к Интернету. Я перестал общаться с друзьями, потакая быстро раздувшемуся эго и оплакивая невозможность достичь чего-то большего. Я оказался запертым в одиночестве и UNIX’е. Я тратил больше восьми часов в день на совершенствование своего проекта, хотя и точно знал, что это не принесет мне ни денег, ни славы, ни успеха. Я учился, и это было все, что мне нужно.

Только в колледже я смог, наконец, реализовать свои идеи в компьютерной лаборатории. Ничто не могло помешать мне организовать клуб. Это было специальное объединение кодеров и геймеров, собиравшихся каждый вечер в то время, когда студенты приходили для распечатки документов. Впервые они обратили на меня внимание, когда я заменил их CUPS на значительно более прогрессивный, на мой взгляд, lpd и, затем, на систему печати моей собственной разработки, способную обрабатывать сотни страниц в день.

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

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

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

Соглашение о конфиденциальности запрещает мне обсуждать большинство деталей корпоративной обстановки моей конторы, но мне кажется, я могу описать некоторые относящиеся к делу моменты. Самая поразительная вещь – традиционная планировка этажей с офисами для всех, кроме временных сотрудников, которые должны ютиться по несколько человек в эдаких загонах с перегородками, экономя пространство и деньги. Оглядываясь, я подозреваю, что был взят сразу в среднее звено управления, поскольку остальные работники на моем этаже были временными. Наш оборот в те врмена был сопоставим с конкурентами, и все отделы неплохо зарабатывали. Более того, к концу того года каждый департамент получил кое-какие бонусы, в число которых входили, например, халявные фрукты и так называемые Пятницы-Без-Пересмотра-Кода, что было хорошей передышкой для всех нас. Несмотря на множество льгот и доброжелательную рабочую атмосферу, моя продуктивность в области Linux’а и открытых системам стала снижаться, поскольку работа за деньги уничтожала любую внешнюю заинтересованность в этом, имевшуюся ранее. Я стал замечать все ошибочное в движении открытого ПО, тогда как во время моего искреннего увлечения я видел только возможности, изобилие кода и привлекательных пиар-менеджеров программного обеспечения со счастливым пингвиньим лицом /* в англоязычном тексте эпитет «пингвинье лицо» относился к ПО, то бишь к ОС Linux, но и «менеджер с пингвиньим лицом» тоже звучит неплохо. – прим. ред. */ Теперь же мой взгляд обрел ясность, обнаруживая ядовитую пустоту устаревших протоколов, бедность используемых утилит, ограниченных POSIX и яростно защищающих все это безобразие стареющих хиппи, окладистые бороды которых давно уже не видели ни воды, ни мыла.

Вы спросите, почему я связался с этим? Как и все, я люблю удобства и деньги. Кроме того, я догадывался, что надумай я уйти, мое желание заниматься открытыми системами возникло бы вновь, и я решил не отказываться от выгодного рабочего места. Если посмотреть логически, наиболее разумным ходом было стараться сохранить мою работу, постепенно превращая ее в то, чем мне теперь хотелось заниматься: находить все недостатки и проблемы, присущие открытой модели разработки программного обеспечения. Я инициировал компанию по двурушничеству и скрытому саботажу, превратившись в перевернутое зеркальное изображение типичного красноглазика-линуксоида. Я зарегистрировал несколько эккаунтов в Google Groups (лучший инструмент для нужд Usenet-спамера!), Slashdot, Kuro5hin и других основных дискуссионных группах, которые я мог использовать чтобы сеять страх и смуту в рядах опенсорсников, а также для описания некоторых сомнительных методов, практикующихся в службе поддержки моей компании. Конечно, я частично также виноват в том, что мы оказывали такой убогий сервис. Нет, я не имел прямого отношения ни к маркетингу, ни к службе поддержки пользователей. Но я усложнял жизнь и тем, и другим, а так же, разумеется, и клиентам, разбрасывая по коду тут и там нарочитые мелкие баги, а также «забывая» указывать в своем коде какую-либо идентификационную информацию. Если начальство было недовольно мной за подобные выходки и требовало размещения контактной информации и уведомления об авторских правах в моей работе, я просто использовал «неправильно набранные» почтовые адреса или копи-пейстил какие-нибудь маловразумительные лицензионные соглашения, текст которых мало кому понятен (например, Artistic License). Нет, серьезно, покажите мне того, кто нормально разбирается в этой ерунде? Между тем, запросы в техподдержку росли с каждым месяцем. Несмотря на это, я стал мейнтейнером RPM, тогда как изначального автора уволили (он умудрился, извините за интимные подробности, не мыться целых три месяца, в результате чего исходившую от него вонь один из посетителей принял за утечку газа или каких-то химикатов. Пришлось проводить спешную эвакуацию всего офиса, а это, между прочим, неслабые финансовые издержки!).

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

Так или иначе, план был таков: в девять пришел, восемь часов помаялся фигней, в пять ушел. Некоторое время это работало. Как-то раз, помню, пришел багрепорт, который чуть было не поломал весь кайф. Некий лузер по имени sllort пишет, что при каких-то там условиях rpm может повредить свою базу данных. По правде говоря, там нужно было добавить от силы строки три кода, чтобы пофиксить это. Но, черт возьми, мне хотелось побить свой персональный рекорд Последовательных Дней Ничегонеделания.

В общем, я решил оттачивать свои умения отлынивать от работы и попытался скомбинировать некоторые наработанные приемчики: «умышленную реинтерпретацию» (превращающую резонный запрос sllort’а во что-то весьма нетривиальное и затруднительное) со «снисходительным отказом» («вы думаете, я буду все это делать?!»).

Однако кадр попался упертый – не ожидал я от него, а также от других людей, подключившихся к обсуждению проблемы, такого, блин, завидного постоянства. Было трудно продолжать притворяться, будто все они говорят ерунду. Но все равно я чувствовал, что неплохо поработал :] ...Знаете, я только сейчас понял, что слово sllort - это trolls (тролли), написанное наоборот. Обалдеть, тролли тоже юзают Linux! :) Все это длилось месяцами. Я прикалывался с баг-репортеров и завел даже так называемый troll-лист, куда скидывал особо забавные случаи. Но вскоре я обнаружил, что все это не шибко радовало моего босса. Пара комплейнов все-таки достигла цели. Под принуждением я пофиксил код и кинул сообщение об этом в Bugzill’у. Но уничижительные комментарии продолжали приходить, а один пользователь даже назвал меня психопатом! В общем, как-то раз мой босс таки методично прошерстил мои записи, на свет выползла туча моего мутного кода. Все это, естественно, было вынесено на суд общественности и подвергнуто порицанию.

Этим утром я был уволен. Сейчас я пишу это на ноутбуке, развалившись на диване, и смотрю мои домашние DVD-записи. Хочется думать, что я чему- то научился, но, честно говоря, я несколько сомневаюсь в этом. Откровенно говоря, мне достаточно того, что из этого вышла маленькая прикольная история. Оставайтесь в школе, дети. И не занимайтесь Linux’ом.



Patrick Chalmers, перевод Ращинской Янины. Впервые опубликовано на kuro5hin.org


Сетевые решения. Статья была опубликована в номере 09 за 2006 год в рубрике PRIcall

©1999-2024 Сетевые решения