Отъявленный программист. Лайфхакинг из первых рук Савчук Игорь
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги.
Введение
В американской бизнес-среде есть хорошо известная и старая как ассемблер шутка о том, что английское слово job («работа») на самом деле акроним, который расшифровывается как just over broke («немногим лучше банкротства»). Бизнес любит подшучивать над своими работниками, тут уж ничего не поделаешь.
К сожалению, для большинства обычных людей это правда – жить нужно, «чтобы оплачивать свои счета». В этом нет ничего плохого или постыдного, к тому же бесконечные «крысиные гонки» нравятся многим по молодости амбициозным и уверенным в себе людям. Эти люди постоянно на виду, стремятся добиться большего, вкалывают допоздна и руководствуются популярной нынче стратегией «хватай и беги». Modus operandi для всей этой «круговерти» – конечная и единственная компенсация всех потраченных усилий, возможность заработать «хорошие деньги».
Если же говорить применительно к отрасли ИТ, в которой в последнее время наблюдается большой поток случайных людей, прослышавших о больших зарплатах айтишников, то это настоящая беда. Такой случайный для профессии человек будет искать обходные пути и чудесные серебряные пули в виде могущественных книг и курсов, освоив которые, как ему кажется, он сможет стать истинным программистом, чтобы наконец начать грести деньги лопатой. Плохая новость для заблудших в ИТ ковбоев заключается в том, что сделать карьеру программиста намного тяжелее, чем просто быть им. Здесь потребуется специфический склад ума, редкое нутро интроверта и умение мыслить абстрактно, развитый логический аппарат и много чего еще, в том числе и чугунная пятая точка. Хорошо если в характере изначально присутствует хотя бы часть этих характеристик, в противном случае придется ломать себя и постоянно «прогибаться под изменчивый мир», бездумно торчать у монитора днями напролет со вскинутыми к небесам руками.
Впрочем, мы снова вернулись к ироничному определению слова «работа», на которой то самое большинство занято сохранением status quo в бесконечном и изнуряющим процессе «зарабатывания денег».
Но что мы знаем о меньшинстве, которое поступает иначе?
Именно об этом «чудаковатом» меньшинстве и пойдет речь в книге. Герои интервью могут исповедовать разные взгляды и иметь разные социальные статусы, быть долларовыми миллионерами, известными и публичными людьми, а также простыми офисными трудягами-программистами, но всех их объединяет нечто общее. Большинство интервью в книге – это истории реальных айтишников, работа которых построена на принципах нематериальной мотивации и отрицания уже привычного мотива «делания денег» как центральной доминанты человеческой деятельности.
Прошу понять меня правильно: речь вовсе не о том, чтобы вообще отказаться от денег или материальных благ современной цивилизации. Речь на самом деле о другом: использовать свою увлеченность, страсть и любовь к профессии как рычаг, позволяющий достигнуть принципиально новых вершин в развитии себя и своего бизнеса (даже если это программирование по найму). В многочисленных интервью и жизненных ситуациях я пытаюсь показать на реальных примерах: эта мотивация работает вопреки всему и привносит в нашу офисно-пластиковую жизнь радость творчества.
Я не делал ставку на общение исключительно с известными людьми (хотя пару героев из списка, безусловно, всемирно известны), но старался отбирать собеседников по степени их «гиковости» и «драйвовости», чтобы посредством их вдохновляющего примера заставить читателя как минимум задуматься, как максимум – взглянуть на привычный мир ИТ другими глазами, тем самым побудив подняться на качественно иную ступеньку своего профессионального роста, прочно оседлав формулу «just for fun». Даже если вам и неинтересен этот мотивационный подтекст, которым насквозь пропитана книга, вы можете воспринимать ее просто как собрание забавных и поучительных историй, над которыми можно посмеяться или взгрустнуть, с интересом вглядываясь в архетип «типичного программиста».
Так, говоря о фокус-группе книги, мы постепенно подошли к центральному вопросу: для чего эта книга была вообще написана?
При огромном количестве мотивационной литературы, которая достаточно успешно педалирует тему позитивного образа мышления, в России нет практически ни одной аналогичной книги, целиком и полностью посвященной ИТ. Я диву даюсь, что при сегодняшнем количестве success stories именно в сфере «ай-ти», где многие ИТ-джедаи меняют страны и компании как перчатки (попутно зарабатывая миллионы долларов), они до сих пор не стали героями былинных книг, рассказывающих об их похождениях из первых уст (немногочисленные истории успеха фигур калибра Дурова, Цукенберга и Джобса не в счет). Несмотря на огромный интерес к субкультуре «ай-ти», прежде всего со стороны молодежи, нет даже попытки дать слово рядовому компьютерщику, и это при том, что успешность современных айтишников в народе стала уже притчей во языцех, а сама профессия «состоявшегося программера» отдает налетом элитарности.
Признаюсь честно: мне сложно четко конкретизировать, о чем эта книга рассказывает больше: о специфике ИТ-отрасли или о необычных людях, порой обитающих в ней. Вместо этого попробую сформулировать важный для концепции книги образ «айтишного успеха». В качестве наглядного примера приведу известные в США «гаражные стартапы». Именно там суровые и упертые дядьки, подобные Джобсу и Возняку, Хьюлетту и Паккарду, Майклу Деллу и другим, стоически, на коленке создавали свои будущие корпорации. На протяжении всех интервью мне интересен не внешний эффект этого преображения «из грязи в князи», но именно глубинный катарсис поиска и самореализации, который привносит в жизнь личности целительный смысл и полноту бытия.
Второй аспект любой мотивирующей литературы (кроме коррекции привычного образа мышления на новый и «успешный» посредством манящих за собой ярких примеров-судеб) – акцент на действии. И эта книга не исключение – в ней собрано множество практических советов по прохождению собеседований и поиску эффективных векторов развития, упакованных в неформальный житейский формат: «советы от айтишников для айтишников» (этому преимущественно посвящена часть II).
В заключение этого введения, как главный вывод книги, я хочу пожелать читателю следующее: реализуйте свой интерес, перфекционизм или азарт с максимальной выгодой, пока идея-фикс, что называется, «горит», а молодость позволяет «горы свернуть», работая в круглосуточном режиме. Именно искренняя страсть и безудержная увлеченность становятся той самой «критической массой», которая позволяет чуду произойти в вашей жизни. В связи с этим часто в качестве лозунга движения медленного программирования (о котором также пойдет речь в данной книге) приводят высказывание Стива Джобса:
Есть только один способ проделать большую работу – полюбить ее. Если вы к этому не пришли, подождите. Не спешите браться сразу за дело. Как и во многом другом, сердце подскажет вам интересное дело и поможет его завершить.
В этом и заключается секрет успеха любого начинания.
Игорь Савчук
Часть I. Прямая речь: компьютерщики о себе и ИТ
Глава 1. Ричард Столлман – дзен свободного программирования
Ричард Мэттью Столлман – известный американский программист и общественный деятель. Является создателем программ GNU Emacs, коллекции компиляторов GNU (GCC) и отладчика GNU (GDB). Основатель движения свободного ПО, проекта GNU, Фонда свободных программ (FSF) и Лиги за свободу программирования. Является главным автором лицензии GNU General Public License. В качестве хобби любит сочинять и слушать собственную музыку, путешествовать и читать научную фантастику.
Интервью взято в конце 2013 года.
Предлагаю большое интервью с безусловно ярким и легендарным представителем контртренда по отношению ко всей коммерческой индустрии ПО – Ричардом Мэтью Столлманом (@rms), американским системным программистом, странствующим философом, баламутом и общественным активистом.
Человек-борода (альтернативные варианты перевода – человек-стол, человек-киоск) Столлман, бог свободного программного обеспечения во плоти и крови, донесет нам сегодня евангелие о необходимости помощи ближнему во Сети, а также похвальном желании мирянина писать «правильные программы».
Мы попробуем понять, почему своими моральными принципами Столлман «вызверил» против себя огромное количество игроков из лагеря «собственнического ПО» и мира Open Source, «куда» он вообще живет и какую такую свободу при этом проповедует.
«Я не имею отношения к Open Source»
Послушайте, все, что вы хотите знать, это, конечно, очень важно, но если позволите, я бы хотел начать с освещения двух типичных и уже хронических синтаксических проблем Движения за свободные программы, с которыми мне приходится иметь дело примерно в 90 % интервью и выступлений. Более полное раскрытие данных ошибок поможет вашим читателям лучше понять, какие идеалы я проповедую и чем занимается фонд FSF на самом деле.
Итак, я не имею никакого отношения к движению Open Source, к которому вы и остальная пресса меня причисляете. Фонд Free Software Foundation и движение за свободные программы отстаивают несколько иные идеалы. Иначе говоря, наш термин «свободная программа» вовсе не эквивалентен понятию «программа с открытым исходным кодом». Это исходная точка, в которой в большинстве случаев начинается большая путаница, поэтому будет лучше, если мы сразу проведем водораздел между ними.
Раз уж подвернулся такой удобный случай, давайте попробуем разобраться, чем же так принципиально отличается свободная программа от программы с открытым исходным кодом?
Начнем с последнего определения. В 1998-м впервые официально было сформировано мировое движение FOSS (Free and Open-Source Software), которое, если компактно суммировать его взгляды, ставит акцент на двух фундаментальных положениях:
• Во-первых, они выступают за полностью открытый исходный код распространяемых программ, и это видится просто как технологическое удобство для разработчиков – возможность совершенствовать чужие программы, дорабатывать их или расширять под свои нужды. Естественно, все это требует доступа к исходникам для перекомпиляции.
• Во-вторых, они пропагандируют открытый исходный текст, делая акцент на экономических аргументах; попросту говоря, продвигают сугубо меркантильную точку зрения, согласно которой использование подобных программ экономически выгодно по сравнению с проприетарным софтом, который стоит немалых денег.
И первый, и второй пункт – исключительно практические ценности. Open Source – это просто удобная и экономически выгодная методология разработки. Теперь в качестве контраста: для нашего движения за свободное ПО главное – идеалы и моральные ценности, где прежде всего ценится уважение свобод пользователей.
Итак, свободные программы, за которые мы ратуем, – это общественное движение, где жестко отстаивается единственный этический императив – безусловное уважение свобод пользователей ПО. Если вы читаете новости и прессу, легко увидеть, что поборников Open Source волнует совсем другая проблематика: успешность или неуспешность отдельных проектов, их популярность и доля на рынке и т. д. Почти никогда при этом дискуссия не касается категорий справедливости и несправедливости использования софта, проблем распространения подобных программ, защиты прав конечных пользователей.
Не все программисты такие сообразительные, как вы или я, поэтому, уверен, с пониманием этой тонкой разницы, лежащей в плоскости вашего «принципиального императива», у некоторых могут возникнуть трудности. Не могли бы вы привести какой-то практический пример, чтобы представить это различие более зримо и конкретно?
Например, некоторые популярные мобильные устройства на базе открытой и бесплатной ОС Android поставляются с исполняемыми файлами программ, сборка которых полностью соответствует выложенному в Сети их исходному тексту, но сами эти устройства не позволяют пользователю устанавливать собственные или модифицированные версии этих файлов. Как правило, в такой ситуации только одна привилегированная компания обладает властью изменять их. Мы называем такие компании тиранами, а данная конкретная тактика паразитирования на почве Open Source известна под термином «тивоизация». Можно привести множество подобных примеров из самых разных сфер, но их общая суть, думаю, понятна.
Таким образом, согласно описанной философии по нашим стандартам эти файлы не являются свободными программами, несмотря на то, что для них доступен их полный исходный текст, как правило, свободно выложенный в Интернете. Более того, сами эти программы (и их исходники) доступны для вас абсолютно бесплатно, удовлетворяя обоим вышеописанным критериям Open Source. Именно поэтому я настоятельно призываю в своих выступлениях по всему миру: несмотря на общее слово[1], давайте не будем путать идеалы «свободы слова» с бесплатным пивом, которое вам повезло отхватить на ярмарочной распродаже.
Хочу подчеркнуть – мы ничего не имеем против движения Open Source, мы приветствуем открытие исходных текстов программ, но при этом повторяем – это лишь первый важный шаг в правильном направлении, для надежной защиты интересов пользователей ПО этого мало. Думаю, сейчас более ясно, почему наше движение так категорично и показательно отмежевывается от Open Source, – мы ставим более глобальные и далеко идущие задачи. Мы также призываем всех разделяющих нашу точку зрения сознательно применять термин «свободные программы» вместо более узкого определения «программы с открытым исходным кодом» для более точной передачи сути наших общих ценностей.
Давайте попробуем емко подытожить все сказанное. Вы бы не могли привести ваши знаменитые «4 свободы для свободных программ», чтобы все любители свободного софта могли лишний раз порадоваться удачному дню, просто пробежав их глазами?
С удовольствием, вот они:
• это свобода запускать программы так, как вы пожелаете;
• свобода изучать и изменять исходный код программы в соответствии со своими нуждами;
• свобода делать копии программ, чтобы распространять их среди других;
• свобода распространять и использовать модифицированные программы так, как вам захочется.
Это максимально общие пожелания, более четко они выражены в наших лицензиях, например в GNU Public License.
Признаюсь, грешен, ибо писал коммерческие программы «с элементами защиты», хотя в душе был всегда непорочен, оставался верен этим, безусловно, святым и боговдохновенным принципам. Что бы вы могли сказать программерам, работающим в коммерческой сфере и пишущим хорошие, но несвободные программы каждый божий день напролет в течение всей своей никчемной жизни?
В мире есть программисты, которые, безусловно, заслуживают вознаграждения за создание прогрессивных или инновационных программ, меняющих нашу жизнь к лучшему. Но среди этих программистов также есть и такие, кто заслуживает порицания, если они искусственно ограничивают использование подобных программ другими.
Я не против бизнеса, но я за то, чтобы поощрять дух сотрудничества, а не противоборства. Для этого нужно научиться уважать свободу выбора других людей, а не потакать методам, разделяющим и подчиняющим их.
Личный выбор свободы
Не хочу «переходить дорогу на красный свет» и как-то злить вас, но позвольте еще раз вернуться к предыдущему вопросу. Раз уж вы сейчас проживаете в США – в самой гуще коммерции и глобализации, поинтересуюсь: насколько эта идеалистическая точка зрения работоспособна в рамках современного капитализма? Иначе говоря, есть ли такие «правильные парни-программисты» в реальном мире вокруг нас?
На всякий случай, если вы с другой планеты, – на данный момент большая часть мировых интернет-сайтов работают под управлением GNU/Linux, *BSD, MySQL и Apache. Думаю, вам будет трудно доказать людям, стоящим за этими (и другими подобными) проектами, что свободный софт – это просто пустая демагогия и высоконравственная болтовня. Большинство стоящих за этими проектами разработчиков работают бесплатно и тем не менее проектируют реально стоящий код.
Понимаю, идеалы и мотивы этого сообщества часто сложно понять обывателю, всю жизнь просидевшему на «поводке» контракта. Тем более, компании типа «Майкрософт» хотят заставить нас поверить в то, что помогать ближнему – сродни захвату чужих кораблей. Я призываю смотреть на мир шире, в нем очень много бескорыстных и любящих свою работу программистов, которые мечтают сделать что-то по-настоящему стоящее, даже если это что-то находится далеко за пределами узких корпоративных интересов вашего босса.
Гуру, деньги – ничто?
Знаете, давайте оставим деньги в покое. О деньгах сейчас и так говорят и пишут слишком много, их превратили в фетиш. Так что в этом плане и без моего участия вполне достаточно уже существующего новостного и культурного фона. Мы же как раз занимаемся целенаправленной пропагандой свободы, и я буду благодарен, если именно на этом мы и сосредоточимся в рамках нашего разговора. В идеале я бы хотел, чтобы ценности свободы и взаимного уважения прав продвигались в мире активней, гораздо более активней, чем культ денег.
Я твердо убежден, что современная альтернатива деньгам – свобода. Если вы все еще в поисках того, ради чего стоит прожить свою жизнь, – выберите свободу.
Может быть, просто всему свое время? Может, смысл эволюции как раз в том, чтобы последовательно подняться к вершинам пирамиды Маслоу, для чего потребуется какое-то время на взросление? Лично я не горю желанием хвататься за стоп-кран каждый раз, когда кто-то умный вроде вас указывает мне, что мой поезд-жизнь следует не в том направлении.
Я знаю одно, и это подтвердит любой творческий человек: в качестве горючего жгучее чувство внутренней правды с присадкой страсти самореализации всегда эффективней, чем абстрактные деньги. Старомодные компании, где работают исключительно за деньги, обречены проиграть в инновационности и прогрессивности компаниям, где работают за идею (это касается в том числе как людей, так и государств). И если на коротких временных дистанциях с этим тезисом еще можно поспорить, то в долгой перспективе все более чем однозначно: свобода – наиболее предпочтительная мотивационная категория. Подумайте об этом в перерывах между просмотром канала MTV и работой с утра до позднего вечера.
Возвращаясь к вопросу – можно потратить свою жизнь, как вы сказали, на последовательное покорение пирамиды потребностей Маслоу (я бы сказал проще – на «крысиные гонки»), а можно срезать большую часть пути, сразу переходя к реализации своей мечты. Если и нужно до чего-то последовательно дорасти, как вы выразились, то исключительно до своей идеи фикс, до понимания собственной миссии и предназначения в жизни. После этого вы либо теряете время, либо отстаиваете свою личную свободу, третьего в ощущениях не дано.
Именно так и поступил я в свое время – шагнул в неизвестность, приступив к реализации совершенно абстрактной для многих концепции свободных программ, которая сейчас превратилась в заметное общественное движение. Только, пожалуйста, не делайте из меня героя. При большом желании, уверен, любой читающий нас программист способен написать лучшую программу (веб-сервис) своей жизни и незамедлительно подарить ее человечеству, не дожидаясь при этом каких-то «особых встречных условий». В этом случае мой совет: сделайте свой пример заразительным, позвольте подхватить ваш проект другому на аналогичных условиях, для чего рекомендую воспользоваться лицензией GPL.
Linux без GNU – ничто
О’кей, давайте врубим задний ход и вернемся к началу, где вы упомянули две популярные ошибки в отношении вашего Фонда. Подробно рассмотрев отношения свободного FSF с Open Source и проприетарным софтом, не могли бы мы вернуться ко второй отмеченной вами хронической проблеме?
Второе хроническое недоразумение связано с Linux. Чтобы быть понятым верно, позвольте немного истории для начала.
Когда ОС Linux еще не существовало в природе, в своем «Манифесте GNU» мы поставили перед собой амбициозную цель – разработать собственную свободную Unix-совместимую систему, которую в итоге назвали GNU. И уже к тому моменту, когда разработка Linux только начиналась, разработка GNU была практически завершена. Здесь хочу отдельно подчеркнуть: GNU не был и не является проектом по разработке набора утилит или пакетов программ, как думают некоторые, и тем более это не проект по разработке компилятора языка С (хотя мы сделали и это). Поскольку наш проект изначально поставил перед собой комплексную цель «разработать полную свободную ОС, совместимую с Unix», мы с самого начала составили скрупулезный список программ для того, чтобы наша будущая система была самодостаточной.
Таким образом, работая поступательно, к началу 90-х мы по частям сложили все воедино, реализовав весь запланированный список программ и компонент. Было готово все, кроме ядра. И с этой исходной точки мы приступили к написанию ядра GNU Hurd. К сожалению, его разработка затянулась на больший срок, нежели мы ожидали. Тут-то и появилось ядро Linux, которое было использовано в нашей системе.
Теперь возвращаясь к исходному вопросу уже с необходимым контекстом: именно поэтому все так называемые разновидности Linux на самом деле являются дистрибутивами GNU/Linux. Эти дистрибутивы – лишь модифицированная версия нашей ОС GNU. Для полноты картины следует отметить, что кроме GNU был еще один проект, который независимо произвел свободную операционную систему типа Unix. Эта система известна как BSD и по большому счету слабо зависит от GNU. Таким образом, сегодня родословная любой из свободных операционных систем может быть однозначно отнесена лишь к этим двум предкам – либо это клон системы GNU, либо разновидность BSD.
Собственно, именно поэтому я категорически настаиваю, что любой дистрибутив Linux правильно должен именоваться исключительно как GNU/Linux (и именно в таком порядке). Кроме того, добавлю, что сегодня существует много самых разных вариантов GNU/Linux, но подавляющее большинство включает несвободные программы – чаще всего их разработчики следуют собственной специфической философии Linux, но не философии свободных программ GNU, которую мы активно продвигаем.
Это два принципиальных уточнения относительно Linux и нашей совместной с ней истории, которые мне приходится часто объяснять людям. Ведь многие до сих пор считают Linux самобытным, свободным и самодостаточным проектом, взращенным загадочным финским подростком буквально на пустом месте. Они ошибочно считают Linux образцом и родоначальником свободного и открытого софта – это совсем не так.
Настоящее FSF
Благодаря этим двум «распространенным терминологическим неточностям» мы ретроспективно рассмотрели историю и задачи проекта GNU. Теперь попробуем это славное прошлое замкнуть на грозное настоящее: что насчет ядра GNU Hurd, которое было единственным недостающим элементом ОС GNU? Каково положение дел с ним сегодня?
GNU Mach – это GNU-версия микроядра Mach, которую разрабатывает и поддерживает наш проект, это та основа, на базе которой зиждется GNU Hurd. На данный момент Hurd относительно стабильно работает на компьютерах с архитектурой x86, его последний релиз был в конце сентября 2013 года. Кроме того, еще есть Debian GNU/Hurd, которая является версией этого ядра от популярного проекта Debian. Я весьма доволен, что Debian GNU/Hurd существует и развивается, но я не могу заставить людей оставить свои проекты или предпочтения, чтобы форсировать более быстрое развитие именно этого ядра.
Кстати говоря, в рамках проекта Debian есть и другой необычный проект – GNU/kFreeBSD. Несмотря на мои противоположные личные предпочтения, проекты типа GNU/kFreeBSD привносят разнообразие в этот однообразный мир Windows/Linux.
Извините, не расслышал ответа, разрешите еще раз задать прямой вопрос: есть ли у GNU Hurd хоть какое-то реальное будущее?
На данный момент GNU Hurd не является высокоприоритетным для нашего проекта, потому что у него есть реальная работающая альтернатива – Linux. Как я уже говорил, мы начали разработку GNU Hurd в далеком 1990 году, потому что проект GNU остро нуждался в завершающем элементе – ядре. Вскоре после этого проект Linux все-таки смог стать первым свободным ядром, доступным каждому, поэтому он очень удачно перехватил инициативу и заполнил пустую и очень востребованную на тот момент нишу. Я был бы рад, если бы проект GNU Hurd достиг такого же успеха и признания, и мне приятно, что многие люди упорно продолжают его разработку. Но, вероятно, с учетом реально сложившейся ныне ситуации, для нашей свободы было бы более приоритетно, чтобы из популярного проекта Linux убрали все несвободные фрагменты кода (так называемые «блобы»), которые, как известно, там есть.
Поэтому на данный момент мы основные усилия направляем на разработку проекта Linux Libre. Это модифицированная нами версия ядра Linux, главная цель ее создания – удаление любого программного кода, который поставляется в закрытом виде, имеет явно обфусцированный исходный код либо выпущен под проприетарной лицензией[2]. К сожалению, наша версия ядра запускается с меньшим количеством устройств, чем оригинальное ядро, но мы активно работаем над решением этой проблемы.
Пользуясь возможностью, я бы хотел обратиться ко всем разработчикам, разделяющим наши идеалы и читающим этот текст: мы нуждаемся в опытных реверс-инженерах, которые смогли бы помочь нам в решении подобных нетривиальных задач.
В заключение первой части интервью расскажите немного про ваш Фонд FSF. Кто эти люди, которые стоят за всеми текущими проектами, каковы общие тенденции развития движения за свободные программы?
GNU Project работает в значительной степени за счет привлекаемых нашей философией волонтеров. На данный момент в рамках проекта всего около 400 значимых пакетов – самых различных программ и компонент, поддерживаемых и развиваемых GNU Project. Каждый пакет имеет как минимум одного собственного «мэйнтейнера» – человека, который сопровождает его, решает все возникающие проблемы и вопросы. В первой половине существования нашего Фонда (с 1987 по 1996 год) «мэйнтейнерам», сопровождающим наиболее критические пакеты, платились деньги за выполненную работу из собственных средств Free Software Foundation.
Но на сегодняшний день все наши «мэйнтейнеры» – это стопроцентные волонтеры, которые не получают ни цента за свою работу. И хотя очень небольшому числу из них (тем, кто занят по-настоящему сложными и важными вещами) все-таки платят деньги некие сторонние организации, повторю еще раз, главное – FSF окружен бескорыстными и убежденными сторонниками, и мы стремимся к тому, чтобы эта общественно значимая работа выполнялась по велению сердца, а не из-за желания подзаработать.
Что касается тенденций нашего развития и общей проблематики, которой мы занимаемся, то они в последние годы начинают меняться. В первом десятилетии существования FSF нам нужны были программисты, которые были бы способны создавать полезные свободные программы, внося свой практический вклад в популяризацию наших идей и ценностей. В то время постоянный поиск достаточного количества таких людей был единственным препятствием на пути нашего развития.
Но в последние годы ситуация начинает кардинально меняться. Сегодня существует класс программ (и их становится все больше с каждым днем), которые мы даже не можем написать, имея для этого все необходимые человеческие ресурсы. Некоторые программы-прототипы защищаются с помощью DRM (Digital Restrictions Management), некоторые производители железа и программ делают секретными свои спецификации и протоколы, и, наконец, к делу подключаются юристы, патентующие принципиально важные алгоритмы и звенья систем, которые мы бы хотели воспроизвести в качестве свободных для общества. Более того, в последние годы некоторые производители железа создают полностью искусственные системы защиты от инсталляции систем, отличных от их собственных, что фактически означает агрессивное противостояние попыткам использовать легально купленную вещь по собственному усмотрению.
Поэтому в последнее время мы все больше смещаемся от чисто технических проектов в сторону проведения публичных кампаний, рассказывающих о подобных фактах и опасностях, продвигаем методы противодействия им. Мы делаем все, чтобы привлечь внимание широкой публики к подобным неблагоприятным трендам, а также поддержать всеми силами тех, кто сопротивляется им. Теперь это куда важнее, чем программировать правильные вещи. Ведь если мы не переломим тренд, тираны проглотят компьютерный рынок, а вслед за ним и наше общество.
В апреле 2012 года случился скандал, по итогом которого Столлмана обвинили в отсутствии нормальной человеческой эмпатии и сочувствия. Суть состоявшегося тогда в списке рассылки неприятного разговора была такова: Люк (Luc Teirlinck, профессор Обернского университета, США) внес в ветвь разработки Emacs не совсем удачный патч, который вызвал неожиданные последствия для проекта. Поскольку в этом большом кумулятивном патче было собрано воедино сразу несколько важных исправлений, было нежелательно откатывать его целиком, поэтому Столлман попросил Стефана (Stefan Monnier, Монреальский университет, Канада) провести анализ патча и выкинуть оттуда проблемные вещи. Но именно в этот момент Стефан, один из самых квалифицированных и активных участников проекта, был чрезвычайно занят – у него родилась долгожданная дочка. Он извинился, что не сможет сделать это, сославшись на радостную причину. В публичном списке рассылки посыпались поздравления, но Столлман ответил одной резкой репликой:
Мне жаль слышать это.
Далее Ник (Nick Roberts, NASA) также поздравил Стефана:
Поздравляю тебя, Стефан! Я рекомендую тебе проводить все свободное время со своей дочкой!
Ричард еще раз зло огрызнулся в ответ:
Не нужно никаких специальных умений, чтобы размножаться – любое животное умеет делать это. С другой стороны, разработка софта типа Emacs требует реальных умений и навыков. Это одна из тех вещей, которыми как раз стоит гордиться. Такие проекты напрямую помогают другим людям.
В этой точке в списке рассылки начался «крутой замес».
Казалось, Столлмана съедят живьем, но он молчал в ответ. С современной точки зрения это можно было бы засчитать как исключительно удачный троллинг, но за этим стоят действительно серьезные убеждения сторонника childfree. Взять хотя бы 1993 год, где в рассылке разработчиков проскакивают частые поздравления друг друга с рождением детей, в которые опять вклинивается раздраженный Ричард, говорящий, в частности, следующее (приводится в оригинале, чтобы передать чувство слога):
These birth announcements also spread the myth that having a baby is something to be proud of, which fuels natalist pressure, which leads to pollution, extinction of wildlife, poverty, and ultimately mass starvation[3].
Лично для меня актуальна следующая параллель: церковь эвтаназии учит практически тому же, что и Столлман, обвиняя человечество, ведомое инстинктами (констатируя при этом биологическое равенство между материнским и половым инстинктом), во всех смертных грехах – от грядущего перенаселения до скорой экологической и военной катастрофы. Каждая месса этой церкви подводит емкий итог, заканчиваясь одной логичной выводом-фразой:
Сохрани планету – убей себя
Чтобы лучше понять Ричарда как человека и личность, а не только как программиста или общественного деятеля, я решил спросить у него, насколько далеко он зашел.
Я знаю, вы убежденный сторонник childfree, можно ли услышать из первых уст, так ли это?
Я давно сам для себя решил не иметь детей. Проще всего сослаться на свой личный опыт детства: мои родители были вечно занятыми, отчасти из-за этого в моей семье было много напряжения и злости. Я хорошо помню главную установку – мы постоянно мешали и создавали проблемы друг другу. Я вырос и увидел, что точно также обстоят дела и в других семьях моих повзрослевших друзей. Дети превратились в их объективную проблему, что бы мои друзья при этом ни говорили вслух.
Я выделю два основных тренда: аутсорсинг – детей постоянно пытаются куда-то пристроить или спихнуть, будь то садик, бабушка или дедушка, сверхурочный факультатив в школе или какой-нибудь «ужасно интересный» кружок танцев. Часто, если эта часть вытеснения удается, родители временно чувствуют облегчение.
Второй момент – это постоянные упреки и недовольство… Я слышу такое количество взаимных замечаний, требований, ожиданий и пустых надежд в адрес детей и их родителей, что просто не могу пройти мимо всего этого. Я никого не обвиняю, я просто констатирую для себя с предельной честностью – у меня было бы так же (или еще хуже). Именно поэтому я сознательно не хочу быть родителем.
Можно ли назвать это разумным эгоизмом?
Спросите себя – каждый, прямо сейчас: какой след вы собираетесь оставить в истории, какой вклад внести в развитие цивилизации и расы? Задайте себе этот вопрос немедленно, на минуту поднимитесь над рутиной и жизнью на автомате.
Я ответил для себя – максимально значимый вклад, который я могу и хочу сделать, это проект GNU и движение за свободные программы. Я хочу изменить ландшафт в правовой и идеологической области разработки и распространения софта. Я хочу, чтобы этот рынок развивался в соответствии с самыми высокими идеалами, которые я в полной мере разделяю. Я хочу сделать людей свободней и защищенней, и я верю, что у меня это получится.
Нет, я не говорю, что не способен стирать пеленки, я лишь констатирую, что не хочу этого делать. Возможно, я обманываю себя в том, что я способен на большее, но вся моя жизнь – доказательство моей правоты (proof-of-concept).
Я выбрал не иметь детей, но я не призываю вас поступать аналогично. Я не желаю исчезновения человеческой расы и не навязываю свое решение кому-либо еще, я действительно прошу сделать этот выбор осознанно. На данный момент я вижу, что малочисленная семья – это выбор подавляющего большинства западного населения, как бы мы к этому факту ни относились. Количество всегда переходит в качество, лично меня этот тренд нисколько не пугает.
Есть другая важная гуманистическая составляющая моего решения, связанная с экологией, перенаселением и будущей экономической катастрофой. Не буду тратить время, предлагаю посмотреть концептуальный мультфильм[4] Нины Пейли (Nina Paley), где эта политическая позиция выражена графически.
В контексте культурных ценностей многих стран ваши слова могут оттолкнуть людей, которым будет сложно принять (или даже просто понять) концепцию childfree. Все-таки материнство и отцовство – краеугольный камень семьи, которая есть основа современного государства и общества.
Нужно решить для себя самого, является ли человеческая особь биологическим или социальным феноменом. Конечно, в любой ситуации есть соблазн усидеть на двух стульях, но, по моему мнению, это взаимоисключающие роли.
Я выбрал идеалистические цели, никак не связанные с моей прямой биологической функцией, и это приведет к тому, что в районе 2050 года мир недосчитается от пяти до десяти потенциальных детей. Взамен общество получит проект GNU и движение за свободные программы – это стало моим главным детищем, на которое я трачу все свое время, силы и жизнь.
Звучит как исповедь прожженного либерала…
Во-первых, я дистанцирую свои воззрения либерала от классической парадигмы либертарианства. Например, я, как очевидно, не пропагандирую защиту интеллектуальной собственности, хотя GPL и защищает код в интересах конкретных индивидуумов.
Во-вторых, я за свободу выбора каждого, касается ли это сферы ПО либо чего угодно другого. Мы живем в мире готовых полуфабрикатов, рецепты которых защищены и охраняются тысячей самых различных способов. Программа жить и умереть «как все» – одна из подобных «предустановленных прошивок», и если вы попробуете модифицировать жизнь на свой собственный манер, вы увидите, под какой агрессивной опекой общественного мнения находятся все эти навязанные социумом способы проявлять себя.
Собственный выстраданный смысл жизни привносит реальность и целительную насыщенность в происходящее, и наоборот – то количество психозов, прокрастинаций, депрессий и раздражения, которое мы видим вокруг, – следствия попыток бездумно жить по чужим лекалам, которые мало соотносятся с вашими истинными глубинными чаяниями.
Меня всегда интересовало, как из личинки программиста, погруженного в свое увлекательное виртуальное действо, вырастает нечто совершенно чуждое сфере его изначальных интересов, например такой экстравертивный философ-активист, как Столлман. Как минимум, компонент либерализма я проследил у Столлмана по его пищевым пристрастиям – это страсть к кока-коле и фастфуду.
Позвольте пояснить этот момент отдельно.
Помнится, в прошлой жизни я проходил срочную службу «военным программистом» в отделе особистов забытой богом воинской части. Мой шеф, подполковник-секретчик, постоянно грыз меня на предмет того, что я окончил белорусско-канадский спецкласс английского языка.
«Америка, небось, по ночам снится?» – вкрадчиво «запытывал» он похожими вопросами при каждой случайной встрече.
«Это ложные ценности», – парировал я, изображая pokerface под его сверлящим взглядом.
Наблюдали не только за мной, но и наоборот. Большой странностью для подполковника «пятого отдела» было то, что он запивал обязательную для военных водку исключительно кока-колой. Вообще говоря, закусывать – исконно русская привычка. Помню, еще тогда это насторожило меня (если не брать в расчет других его закидонов, типа, будучи в подпитии, заставлять подчиненных подтверждать приказы фразой «Так точно, сэр»). Я нисколько не удивился, когда через пять лет после ДМБ, на юбилейной встрече сослуживцев я узнал, что именно этот подполковник-патриот благополучно свалил в США на «лечение», где впоследствии несколько задержался на ПМЖ. А ведь Америка – уникальная страна, где кока-кола стоит дешевле минеральной воды. Поэтому если вы откроете домашний холодильник типичного американца, почти наверняка обнаружите там бачок с колой, десятки сортов которой заставляют многих новоприбывших (даже без проблем со здоровьем, как мой бывший шеф-подполковник) по характерной ноющей боли в боку внезапно вспомнить, «где у тебя печень растет».
Столлман – не исключение из этой железной ассоциативной цепочки, он типичный natural born liberal, который получал кока-колу внутривенно еще в утробе матери. Практически в любом видео с его участием вы увидите на столе неизменную кока-колу или пепси. У Столлмана есть собственный райдер для организаторов его выступлений (он называет его info packet), в котором указывает необходимость двух баночек Pepsi на столе для обеспечения качества его, пронизанного елейным славословием всяческих свобод, выступления. Cola/Pepsi настолько плотно ассоциируется с демократией и либерализмом, что лично мне сложно утверждать, что из них является причиной, а что – следствием.
Поэтому как только мы заговорили с Ричардом про либерализм и гражданские права, мне страстно захотелось спросить про его странные пищевые привычки: каково это – жить на пицце и кока-коле, исповедуя принципы childfree и открытого исходного кода?
Столлман ест свои ноги
Как вы пришли к подобным либеральным взглядам, ставшим причиной создания движения FSF и борьбы за свободу софта? Программируете ли вы до сих пор?
Это слишком длинная история для короткого интервью, поэтому расскажу лишь главное. В молодости я работал системным программистом в Массачусетском технологическом институте в лаборатории искусственного интеллекта (AI Lab). Все проблемы начались с моего желания сделать автоуведомление для всех наших пользователей об окончания печати задания. У нас был один общий принтер на всех, а объемы печати у каждого были большими, что создавало достаточно нервную атмосферу вокруг принтера. Я захотел как-то автоматизировать эту очередь и оптимизировать коллективное использование ресурса. С технической точки зрения задача ясна, но для ее выполнения мне были нужны исходники драйверов принтера Xerox. В итоге в доступе к ним было категорически отказано, потому что этот код был проприетарным.
Затем было множество аналогичных инцидентов, которые даже поставили под сомнение возможность продолжения проектов в рамках AI Lab. Все это время я размышлял об этой перманентной проблеме несвободного софта, идея разрешения подобных ситуаций вызревала у меня все эти годы. Но когда главный проект лаборатории оказался под угрозой закрытия из-за конфликта различных правообладателей нашей главной системы, я осознал, что настала пора действовать. Поэтому сразу после инцидента с патентной атакой фирмы Symbolics, который переполнил чашу моего терпения, в январе 1984 года мной был запущен проект по созданию универсального набора свободного ПО. Ну а мне лично пришлось уволиться из AI Lab, чтобы посвятить себя полностью реализации этого проекта.
Так появился GNU Project. Далее в 1985 году был основан некоммерческий общественный фонд Free Software Foundation, который нанимал программистов в целях создания полностью свободной ОС и ее окружения. И наконец, следующая важная веха в нашем развитии (это 1989 год) – создание популярной лицензии General Public Licence (GPL), которая стала революционно новым типом лицензий и провозгласила класс ПО, распространяемого на условиях copyleft.
Таким образом желая наконец покончить с проблемами юридического характера, мешающим работать мне и другим, я постепенно из системного программиста превратился в общественного деятеля. И хотя все это время я продолжал программировать и активно участвовать во множестве софтверных проектов, основной упор сейчас делается на путешествиях по всему миру для публичных выступлений и пропаганды идей нашего движения.
Насколько универсальны ваши GPL-принципы? На рынке уже существуют напитки с абсолютно открытой и доступной рецептурой, распространяемой по лицензии GPL, например OpenCola и OpenBeer.
На принципах GPL выпускают уже много чего – от дизайна электроники до музыкальных сэмплов. Например, буквально вчера вышел Novena – полностью опенсорсный компьютер – от начала до конца, который можно заказать и купить. Движение потихоньку набирает обороты, люди осознают, что это несет революцию, которая в корне улучшает их жизнь, возвращая в нее контроль над истоками. Впрочем, для процветания подобных проектов еще предстоит выстроить новую экономическую инфраструктуру и сформировать дружественный политический фон, все это дело будущего.
Я знаю, вы придерживаетесь своих взглядов и за пределами работы, даже по отношению к мобильным телефонам.
Что касается мобильных телефонов, то их реализация этически неприемлема, потому что это устройство двойного назначения, одно из которых – отслеживание вашего местоположения. Представьте себе, если бы я предложил вам сервис, который в состоянии в любой момент времени выдать ваше точное местоположение и, кроме того, дать возможность прослушать вас, – что бы вы сказали об этой возможности? Захотели бы вы добровольно носить на себе оборудование, необходимое для работы подобного сервиса?
Но ваш мобильный является именно таким устройством, и вы невольно принимаете участие в подобных экспериментах. Однажды увидев, насколько совершенна эта технология трэкинга, я сказал своему мобильному «нет». С современными телефонами все возможно, потому что часто они используют несвободное ПО (либо содержат отдельные компоненты, использующие его), – не удивлюсь, если в нем обнаружится бэкдор.
Для меня выбор не пользоваться сотовым телефоном абсолютно ясен и однозначен: я выбрал свободу в ущерб постоянной доступности. Это касается и всех остальных сфер моей жизни, где я также выбираю свободу во всех случаях, если вопрос ставится ребром.
К примеру, это касается и моего поведения в Сети. Я никогда не подключаюсь к Интернету там, где требуется моя личная идентификация для этого. Я игнорирую подобные места настолько, насколько это вообще возможно, благо публичный Wi-Fi сейчас достаточно распространенный сервис, чтобы испытывать из-за этого какие-то особые трудности.
Кстати, какие полезные сайты вы читаете? За исключением, конечно, сайтов fsf.org и gnu.org.
Как правило, я не пользуюсь браузером для просмотра веб-страниц напрямую. Знакомые люди часто сбрасывают мне важные, по их мнению, адреса. Я использую специальный Perl-скрипт, на который отправляю по почте запрос с URL-адреса интересующей меня страницы. В ответ почтовый робот вытягивает мне нормализованный контент этих страниц без всех отвлекающих рисунков, CSS и рекламы. Если такая страница-письмо того стоит, она остается в архиве моей почтовой базы в специальной подпапке и впоследствии доступна мне автономно в любой необходимый момент.
Для «браузинга» веба в режиме реального времени я использую специальный выделенный компьютер, впрочем, это случается достаточно редко. Никогда не делаю этого на своем рабочем нетбуке. Иногда мне присылают целые сайты, с которыми нужно ознакомиться. У меня есть штат волонтеров-помощников, которым я переадресую подобные запросы, с просьбой прочитать все и сообщить мне, если что-то конкретное заслуживает моего внимания. Даже если бы у меня и была техническая возможность постоянно сидеть в Интернете, я бы не делал этого из-за недостатка свободного времени. Ведь у меня есть важная работа, цели и идеалы.
В заключение личный вопрос: я знаю, вы большой любитель пиццы, колы и биг-маков. В принципе, это наивный вопрос, ведь американские программисты чрезвычайно занятые люди, но все же – почему именно фаст-фуд?
Это практично. Правда, я не скажу, что я горячий поклонник именно фастфуда, это заблуждение, но я охотно признаю часть обвинения – я люблю вкусно и изысканно поесть. Я прошу никогда не заказывать мне еду в кафе и ресторане, когда меня туда приглашают, я всегда выбираю меню исключительно сам. Я стараюсь относиться к питанию разумно и сознательно, отталкиваясь от своих принципов и приоритетов.
Сверхмобильный образ жизни и национальный бэкграунд привносят определенную специфику в мои пристрастия: подобно тому, как вино и мясо любимо французами, в Америке при ее темпе жизни полстраны сидит на энергетиках типа колы. С недавних пор по моральным причинам я присоединился к бойкоту и перестал пить Coca-Cola, вместо нее я заказываю у организаторов выступлений оригинальную Pepsi (non-diet Pepsi), которую действительно очень люблю. Я сонный по психотипу человек, и пепси позволяет немного взбодриться для более живого общения. По этой причине все виды содовых диетических напитков не оказывают на меня нужного бодрящего эффекта, хотя я и пытаюсь избегать лишнего потребления сахара, выбирая более здоровую пищу.
Что касается всего остального, в быту я веду скромный и нетребовательный образ жизни, и вряд ли про меня можно сказать, что я подвержен каким-то чрезмерным излишествам, в том числе в питании.
Послесловие
Желая в меру своих скромных сил спародировать добрую манеру Столлмана отсылать ссылки на «графическую иллюстрацию своих взглядов, чтобы сэкономить слова», для демонстрации общей простоты и нетребовательности Р. Столлмана я также приведу ссылку[5] на ролик под говорящим названием: «Free software activist Richard Stallman eats shit» (другой вариант названия ролика: «Столлман ест свои ноги»).
На 01:44 минуте этот известный активист, ведя публичное выступление «на босу ногу», быстрым движением руки отдирает нечто налипшее на свою ступню и не глядя отправляет «это» себе в рот. Ролик набрал почти миллион просмотров – убежден, врожденная способность привлекать к себе внимание по любому поводу – неотъемлемая черта любого успешного общественного лидера. Открытость, нетребовательность в быту и прямота Ричарда искренне подкупают и как минимум вызывают добрую улыбку даже у окончательно «испорченных жизнью коммерческих программистов» типа меня.
Глава 2. Крис Касперски – Евангелие от Мыщъха
Крис Касперски (Николай Лихачёв) – популярный российский автор компьютерной литературы на русском и английском языках по информационной безопасности и низкоуровневому программированию. Реверсер, хакер и эксперт по информационной безопасности, известный в Рунете под ником «мыщъх». Считает работу смыслом своей жизни. Хобби и увлечения – астрономия, стрельба из оружия, коллекционирование монет.
Интервью взято в 2014 году.
За свою жизнь на три страны я видел вживую множество гуру из мира больших ИТ – les monstres sacres («священных монстров»). Крис Касперски, также известный как Мыщъх, стоит особняком. Известный российский реверсер, кстати, не признающий себя программистом и хакером, – один из самых популярных авторов российской компьютерной литературы (для статистики: он «заточил» около 800 статей и больше 20 книг). Все – с приставкой «бывший».
Сказать, что теперь у него сложно взять интервью, – не сказать ничего. Моя первая попытка два года тому назад оборвалась на полуслове. На этот раз получилось более удачно, и когда все «эксепшены» были аккуратно расставлены, Крис закурил свои любимые гаванские сигары, и мы начали этот длинный разговор об ИТ, Америке и его бренной жизни.
Рестон
У каждой профессии, как и у человека, – свой рай обетованный. Для актеров это, безусловно, Голливуд. Для компьютерщиков подобным вожделенным пристанищем стала Кремниевая долина. Сразу оговорюсь: предлагаю отойти от более традиционного русского написания «Силиконовая долина», которая в самих США ассоциируется с «порнографически раем» в Сан-Фернандо. Впрочем, кроме раскрученной в медиа Кремниевой долины, в США есть еще одно место, не менее известное у бывалых айтишников в теме, – это Рестон (штат Виргиния). Об этом небольшом городке не принято рассказывать взахлеб, а толпы программистов, работающие там, не любят бахвалиться своим местом работы.
Рестон – небольшой городок, типичное захолустье. Высокая трава по колено, всего одна дорога во внешний мир, несколько провинциальных магазинов натыканы прямо среди поля. За чертой города – бескрайний лес. На фоне типичной деревенско-лесистой местности можно заметить необычные вывески – тут представлены все без исключения американские ИТ-гиганты: Intel, Microsoft, Google, Symantec, PayPal, IBM, Dell, Juniper, Citrix и т. д. Oracle здесь вообще градообразующее предприятие со своей собственной центральной улицей – Oracle way.