Хотя Столлман испытывал гнев по отношению к хакерам, организовавшим эту мелкую форму бойкота, скандал с Symbolics пробудил в нем новый вид гнева — гнев человека, который вот-вот потеряет свой дом. Когда Symbolics перестала присылать свои изменения исходного кода, Столлман ответил тем, что заперся в своих офисах в Массачусетском технологическом институте и переписал с нуля каждую новую функциональность и каждый инструмент программного обеспечения. Как бы разочаровывающе это ни было, это гарантировало, что будущие пользователи Lisp Machine получат беспрепятственный доступ к тем же функциям, что и пользователи Symbolics.
Это также закрепило за Столлманом легендарный статус в хакерском сообществе. Уже прославившийся своей работой над Emacs, Столлман смог сравняться по результатам труда с целой командой программистов Symbolics — командой, среди которой было немало легендарных хакеров. Этот подвиг до сих пор считается одним из величайших достижений человека в Информационную эпоху, да и во все времена. Назвав это «мастерским хаком», а самого Столлмана — «виртуальным Джоном Генри компьютерного кода», автор Стивен Леви отмечает, что многим его соперникам, работавшим в Symbolics, ничего не оставалось, как выказать своему идеалистическому бывшему товарищу уважение, пусть и сквозь зубы. Леви цитирует Билла Госперa — хакера, который в конце концов устроился на работу в Symbolics в пало-альтовский офис компании и выражал изумление по поводу продуктивности Столлмана в тот период: «Я могу увидеть то, что написал Столлман, и решить, что это плохо (вряд ли, конечно, но кто-то может убедить меня, что это плохо), и все равно сказать: "Но подождите-ка — Столлману там не с кем спорить ночи напролет. Он работает в одиночку! Невероятно, что кто-то может сделать это в одиночку!"» См. Steven Levy, Hackers (Penguin USA [paperback], 1984): 426. Для Столлмана месяцы, проведенные в роли догоняющего Symbolics, вызывают смесь гордости и глубокой печали. Будучи убежденным либералом, чей отец воевал во Второй мировой войне, Столлман не пацифист. Во многом война с Symbolics стала тем обрядом инициации, к которому Столлман неуклонно двигался с момента прихода в штат Лаборатории искусственного интеллекта десятилетием ранее. В то же время она совпала с травматичным разрушением хакерской культуры Лаборатории искусственного интеллекта, которая взращивала Столлмана с подросткового возраста. Однажды, сделав перерыв в написании кода, Столлман пережил тяжелый момент, проходя через аппаратную комнату лаборатории. Там Столлман столкнулся с массивным, неиспользуемым корпусом машины PDP-10. Пораженный остывшими индикаторами — огнями, которые некогда ритмично мигали безмолвным кодом, указывая на статус внутренней программы, — Столлман говорит, что эмоциональный удар был сродни обнаружению отлично сохранившегося трупа любимого члена семьи.
«Я заплакал прямо там, в аппаратной, — говорит он. — Видя эту машину мертвой, когда не осталось никого, кто мог бы ее починить, я до конца осознал, как полностью была разрушена моя община».
У Столлмана оставалось мало времени на скорбь. Машина Lisp Machine, несмотря на всю вызванную ею бурю и весь вложенный в ее создание труд, была лишь побочным явлением на фоне крупных сражений на технологическом рынке. Неумолимый темп миниатюризации компьютеров приводил к появлению новых, более мощных микропроцессоров, которые вскоре должны были вобрать в себя аппаратные и программные возможности этой машины подобно тому, как современный мегаполис поглощает древнюю пустынную деревушку.
На гребне этой волны микропроцессоров находились сотни — тысячи — коммерческих программ, каждая из которых была защищена лоскутным одеялом пользовательских лицензий и соглашений о неразглашении, делавших для хакеров невозможным изучение или совместное использование исходного кода. Лицензии были грубыми и несовершенными, но к 1983 году они стали достаточно прочными, чтобы удовлетворить суды и отпугнуть потенциальных нарушителей. Программное обеспечение, некогда служившее лишь приправой, которую большинство компьютерных компаний раздавали даром, чтобы придать своим дорогим компьютерным системам большей привлекательности, стремительно превращалось в главное блюдо. По мере роста аппетита на новые игры и функции пользователи откладывали в сторону традиционное требование изучать рецепт после каждого приема пищи.
Нигде это положение дел не проявлялось так ярко, как в сфере персональных компьютерных систем. Такие компании, как Apple Computer и Commodore, сколачивали состояния, продавая машины со встроенными операционными системами. Не подозревая о хакерской культуре и ее неприязни к программному обеспечению только в бинарном виде, многие из этих пользователей не видели особого смысла протестовать, когда такие компании не прилагали к продукту файлы исходного кода. Несколько анархичных приверженцев хакерской этики помогали продвигать эту этику на новый рынок, но по большей частью рынок щедро вознаграждал программистов, достаточно быстрых для написания новых программ и достаточно сообразительных, чтобы защитить их авторским правом как юридически охраняемые произведения.
Одним из самых печально известных таких программистов был Билл Гейтс, бросивший Гарвардский университет на два года раньше Столлмана. Хотя Столлман тогда этого не знал, за семь лет до отправки своего сообщения в новостную группу net.unix-wizards Гейтс — начинающий предприниматель и полный партнер базирующейся в Альбукерке софтверной фирмы Micro-Soft, позже переименованной в Microsoft, — разослал собственное открытое письмо сообществу разработчиков программного обеспечения. Написанное в ответ на копирование пользователями ПК программных продуктов Micro-Soft, «Открытое письмо любителям» за авторством Гейтса бичевало саму идею коллективной разработки программного обеспечения.
«Кто может позволить себе профессиональную работу бесплатно? — спрашивал Гейтс. — Какой энтузиаст может потратить три человеко-года на программирование, поиск всех ошибок, документирование своего продукта и его бесплатное распространение?» См. Bill Gates, «An Open Letter to Hobbyists» (3 февраля 1976 г.). Онлайн-копию этого письма можно найти по адресу
http://www.blinkenlights.com/classiccmp/gateswhine.html.
Хотя немногие хакеры в Лаборатории искусственного интеллекта видели это послание, письмо Гейтса 1976 года тем не менее отражало изменение отношения к программному обеспечению как среди коммерческих софтверных компаний, так и среди коммерческих разработчиков. Зачем относиться к программному обеспечению как к бесплатному ресурсу, если рынок утверждал обратное? По мере того как 1970-е сменялись 1980-ми, продажа программного обеспечения стала не просто способом возмещения расходов, а политическим заявлением. В то время, когда администрация Рейгана спешила демонтировать многие федеральные регуляции и программы расходов, накопившиеся за полвека после Великой депрессии, немало программистов сочли хакерскую этику антиконкурентной и, как следствие, неамериканской. В лучшем случае это был реверанс в сторону антикорпоративных настроений конца 1960-х и начала 1970-х. Подобно банкиру с Уолл-стрит, обнаружившему старую рубашку тай-дай, спрятанную между французскими манжетами и двубортными костюмами, многие компьютерные программисты воспринимали хакерскую этику как неловкое напоминание об идеалистической эпохе.
Для человека, который провел все 1960-е годы как неловкий анахронизм из 1950-х, жизнь не в ногу со сверстниками не была проблемой для Столлмана. Однако, будучи программистом, привыкшим работать с лучшими машинами и лучшим программным обеспечением, Столлман столкнулся с тем, что мог описать лишь как «суровый моральный выбор»: либо переступить через свои этические возражения против «проприетарного» программного обеспечения — так Столлман и другие хакеры называли любую программу, которая несла в себе частное авторское право или лицензию конечного пользователя, ограничивающие копирование и модификацию, — либо посвятить свою жизнь созданию альтернативной, непроприетарной системы программного обеспечения. Учитывая его недавние многомесячные испытания с Symbolics, вариант с последним казался Столлману более близким. «Полагаю, я мог бы вообще бросить работу с компьютерами, — говорит Столлман. — У меня не было особых навыков, но я уверен, что мог бы стать официантом. Наверное, не в каком-нибудь шикарном ресторане, но официантом где-нибудь я бы смог поработать».
Быть официантом — то есть полностью отказаться от программирования — означало бы полностью оставить занятие, компьютерное программирование, которое приносило ему столько радости. Оглядываясь на свою жизнь после переезда в Кембридж, Столлман легко находит долгие периоды, когда программирование было его единственной радостью. Вместо того чтобы бросить все, Столлман решил выстоять.
Будучи атеистом, Столлман отвергает такие понятия, как судьба, дхарма или божественное призвание в жизни. Тем не менее он считает, что решение отказаться от проприетарного программного обеспечения и создать операционную систему, которая поможет другим сделать то же самое, было вполне естественным. В конце концов, именно уникальное сочетание упрямства, дальновидения и программной виртуозности самого Столлмана заставило его задуматься о развилке на дороге, о существовании которой большинство других даже не подозревало. Описывая это решение в главе для книги 1999 года Open Sources, Столлман цитирует дух, заключенный в словах еврейского мудреца Гиллеля: «Если я не за себя, то кто за меня? Если я только за себя, то кто я? Если не сейчас, то когда?» См. Richard Stallman, Open Sources (O'Reilly & Associates, Inc., 1999): 56. К этому высказыванию Столлман добавляет собственную сноску: «Будучи атеистом, я не следую за религиозными лидерами, но иногда обнаруживаю, что восхищаюсь чем-то сказанным кем-то из них». Выступая перед аудиторией, Столлман избегает религиозной стези и выражает это решение в прагматичных терминах. «Я спросил себя: что я, разработчик операционных систем, могу сделать для улучшения ситуации? Лишь поразмыслив над этим вопросом некоторое время, я понял, что для решения проблемы нужен именно разработчик операционных систем».
Приняв это решение, говорит Столлман, все остальное «встало на свои места». Он воздержится от использования программ, заставляющих его поступаться своими этическими убеждениями, и в то же время посвятит свою жизнь созданию ПО, которое облегчит другим следование по тому же пути. Пообещав создать операционную систему из категории свободного программного обеспечения «или умереть при попытке — от старости, конечно», как шутит Столлман, в январе 1984 года он уволился из штата Массачусетского технологического института, чтобы строить GNU.
Эта отставка оградила работу Столлмана от юридических рамок Массачусетского технологического института. Тем не менее у Столлмана оставалось достаточно друзей и сторонников в Лаборатории искусственного интеллекта, чтобы сохранить бесплатный доступ к своему кабинету в МТИ. Он также имел возможность брать сторонние консультации для финансирования ранних этапов Проекта GNU. Однако, уволившись из МТИ, Столлман свел на нет любые споры о конфликте интересов или владении институтом разработанным ПО. Человек, чей страх перед социальной изоляцией в ранней юности заставлял его все глубже погружаться в объятия Лаборатории искусственного интеллекта, теперь возводил юридический брандмауэр между собой и этой средой.
Первые несколько месяцев Столлман действовал изолированно и от сообщества Unix. Хотя его объявление в группе net.unix-wizards привлекло сочувственные отклики, добровольцев, пожелавших присоединиться к крестовому походу на его ранних этапах, нашлось немного.
«Реакция сообщества была практически единогласной, — вспоминает Рич Морин, руководивший тогда группой пользователей Unix. — Люди говорили: "О, это отличная идея. Покажите нам свой код. Докажите, что это возможно"».
В истинно хакерской манере Столлман начал искать существующие программы и инструменты, которые можно было бы преобразовать в программы и инструменты GNU. Одной из первых стал компилятор VUCK, который преобразовывал программы, написанные на популярном языке программирования Си, в машинно-читаемый код. В переводе с голландского аббревиатура программы расшифровывалась как Комплект компиляторов свободного университета (Free University Compiler Kit). Исполненный оптимизма, Столлман спросил автора программы, является ли она свободной. Когда автор сообщил ему, что слова «Free University» отсылают к Свободному университету в Амстердаме (Vrije Universiteit), Столлман был разочарован.
«Он ответил насмешливо, заявив, что университет свободный, а компилятор — нет, — вспоминает Столлман. — Поэтому я решил, что моей первой программой для Проекта GNU станет многоязычный кросс-платформенный компилятор».
В конце концов Столлман нашел компилятор языка Pastel, написанный программистами Ливерморской национальной лаборатории имени Лоуренса. Насколько Столлман знал в то время, этот компилятор можно было свободно копировать и изменять. К сожалению, у программы был существенный изъян в проекте: она сохраняла каждую программу в оперативной памяти, занимая драгоценное пространство для других программных задач. В мейнфрейм-системах этот проектный изъян можно было простить. Для систем Unix он стал непреодолимым препятствием, поскольку машины под управлением Unix были слишком малы, чтобы справляться с генерируемыми большими файлами. Сначала Столлман добился значительного прогресса, создав для компилятора интерфейс, совместимый с Си. Однако к лету он пришел к выводу, что ему придется создавать совершенно новый компилятор с нуля.
В сентябре 1984 года Столлман отложил разработку компилятора на ближайшее время и занялся поисками более легкой добычи. Он начал разработку версии Emacs для GNU — программы, которую сам курировал на протяжении десятилетия. Решение было стратегическим. В сообществе Unix двумя родными редакторами были vi, написанный соучредителем Sun Microsystems Биллом Джоем, и ed, написанный ученым из Bell Labs (и соавтором Unix) Кеном Томпсоном. Оба были полезны и популярны, но ни один не обладал бесконечно расширяемой природой Emacs. Переписывая Emacs для аудитории Unix, Столлман имел больше шансов продемонстрировать свои навыки. Было также логично предполагать, что пользователи Emacs окажутся более восприимчивы к менталитету Столлмана.
Оглядываясь назад, Столлман говорит, что не рассматривал это решение в стратегическом ключе. «Я хотел иметь Emacs, и у меня была хорошая возможность его разработать».
И снова идея изобретения велосипеда задела за живое эффективную хакерскую чуткость Столлмана. Создавая версию Emacs для Unix, Столлман вскоре пошел по стопам аспиранта Университета Карнеги — Меллон Джеймса Гослинга, автора версии на Си под названием Gosling Emacs, или GOSMACS. Версия Emacs Гослинга включала интерпретатор, использующий упрощенное ответвление языка Lisp под названием MOCKLISP. Полный решимости создать GNU Emacs на аналогичном фундаменте Lisp, Столлман обильно заимствовал из инноваций Гослинга. Хотя Гослинг защитил GOSMACS авторским правом и продал права компании UniPress, являющейся частным разработчиком программного обеспечения, Столлман ссылался на заверения коллеги-разработчика, участвовавшего в ранней разработке интерпретатора MOCKLISP. По словам этого разработчика, Гослинг, будучи докторантом в Карнеги — Меллон, заверял первых соавторов, что их совместный труд останется общедоступным. Однако, когда UniPress пронюхала о проекте Столлмана, компания пригрозила принудительно применить авторское право. Перед Столлманом снова встала перспектива создания всего с нуля.
В процессе обратного проектирования интерпретатора Гослинга Столлман создал полнофункциональный интерпретатор Lisp, сделав оригинальный интерпретатор Гослинга ненужным. Тем не менее сама идея того, что разработчики распродают программные права — более того, сама концепция наличия у разработчиков программных прав на продажу, — возмущала Столлмана. В речи 1986 года в Шведском королевском технологическом институте Столлман назвал инцидент с UniPress еще одним примером опасностей, связанных с проприетарным программным обеспечением.
«Иногда я думаю, что, пожалуй, одна из лучших вещей, которые я мог бы сделать в своей жизни, — это найти гигантскую кучу проприетарного программного обеспечения, являющегося коммерческой тайной, и начать раздавать копии на углу улицы, чтобы оно перестало быть тайной, — говорил Столлман. — Возможно, это был бы гораздо более эффективный способ дать людям новое свободное программное обеспечение, чем писать его самому; но все слишком трусливы, чтобы даже взять его».
Несмотря на вызванный им стресс, конфликт из-за инноваций Гослинга в долгосрочной перспективе помог и самому Столлману, и движению за свободное программное обеспечение. Это заставило Столлмана обратить внимание на слабости коммуны Emacs и системы неформального доверия, которая позволяла появляться проблемным ответвлениям. Это также заставило Столлмана отточить политические цели движения за свободное программное обеспечение. После выпуска GNU Emacs в 1985 году Столлман опубликовал «Манифест GNU» — расширенную версию первоначального объявления, размещенного в сентябре 1983 года. Столлман включил в этот документ обширный раздел, посвященный многочисленным аргументам, используемым коммерческими и академическими программистами для оправдания распространения проприетарного программного обеспечения. Один из аргументов — «Не заслуживают ли программисты вознаграждения за свое творчество» — вызвал ответ, в котором концентрированно выражен гнев Столлмана по поводу недавнего эпизода с Gosling Emacs:
«Если что-то и заслуживает вознаграждения, так это социальный вклад, — писал Столлман. — Творчество может быть социальным вкладом, но лишь постольку, поскольку общество вольно пользоваться его результатами. Если программисты заслуживают вознаграждения за создание инновационных программ, то по той же логике они заслуживают наказания, если ограничивают использование этих программ».
С выпуском GNU Emacs у Проекта GNU наконец появился код, который можно было показать. Появились и заботы, присущие любому предприятию в сфере программного обеспечения. По мере того как все больше разработчиков Unix экспериментировали с программой, стали поступать деньги, подарки и запросы на магнитные ленты. Чтобы заниматься коммерческой стороной Проекта GNU, Столлман привлек нескольких коллег и создал Фонд свободного программного обеспечения (FSF) — некоммерческую организацию, призванную приблизить Проект GNU к его цели. С президентом Столлманом и различными хакерами-единомышленниками в качестве членов правления FSF помогла Проекту GNU обрести корпоративное лицо.