В то время как Ричард разрабатывал Emacs в Лаборатории, хакерское сообщество потрясали тревожные известия. В 1979 году Брайан Рид встроил “тайм-бомбы” в Scribe, чтобы воспрепятствовать свободной раздаче редактора, и это ужаснуло Столлмана. “Он называл это самым фашистским поступком, который он только видел в своей жизни”, – вспоминает сам Рид. Даже после того, как благодаря усилиям Рида появилась иерархия alt в Usenet, поступок 1979 года продолжал омрачать его репутацию, по крайней мере, в глазах Столлмана. “Он говорил, что все программы должны быть бесплатными, и что взимание денег за ПО это преступление против человечества”.[62]
Столлман был не в силах помешать действиям Рида, но он мог бороться с другими формами поведения, которые противоречили хакерской этике. Будучи главным сопровождающим разработки Emacs, Ричард начал вовсю пользоваться своим положением для продвижения своих идей. На последнем этапе долгого конфликта хакеров с управляющими Лаборатории, когда дело дошло до реального внедрения систем безопасности с паролями, Столлман забастовал, отказываясь раздать этим сотрудникам последнюю версию Emacs, пока они не откажутся от своих намерений. [63] Это был скорее жест, чем реальное ограничение, потому что этим сотрудникам ничего не мешало самим скопировать и установить последнюю версию Emacs. Но посыл Ричарда был очевиден всем.
“Многие на меня рассердились, говорили что я взял их в заложники, что я шантажирую их, и действительно так и было, – рассказывает Столлман, – я прибегнул к насилию над ними в ответ на их насилие надо мной”.[64]
Со временем Emacs стал платформой для продвижения хакерской этики. Уровень гибкости, заданный Столлманом, не только поощрял сотрудничество, но даже требовал его. Пользователи, которые отстранялись от сообщества Emacs, не получали важных изменений – новых возможностей и исправлений ошибок. При этом история развития Emacs впечатляет. За 20 лет GNU Emacs научился быть электронной таблицей, базой данных, веб-браузером, личным психиатром, и даже простым текстовым редактором, и разработчики даже не думают удалять какие-то функции, заботливо перенося их в код новых версий. “Это наше видение идеального текстового редактора, – говорит Столлман, – его возможности восхищают и ужасают одновременно”.
Другие работники Лаборатории отзываются о редакторе куда милосерднее. Хэл Абельсон, аспирант МТИ, который работал с Сассменом в 70-х, и позже стал участником фонда свободного ПО, называет Emacs “совершенно гениальным творением”. Дав свободу программистам конструировать какие угодно функции, не нарушая работу системы, Столлман проложил путь к сложным программным проектам, над которыми работали огромные коллективы. “Структура редактора оказалась достаточно устойчивой, чтобы тысячи людей со всего мира развивали его согласно своим вкусам, – сказал Абельсон, – даже не знаю, бывало ли такое раньше.”[65]
Гай Стил выражает похожее мнение. Он помнит Столлмана как “гениального программиста, который способен был без устали и ошибок генерировать огромное количество кода”. Хотя их характеры во многом не сходились, они успели поработать вместе, и Стил получил хорошее представление об интенсивности программирования Ричарда. Однажды Стил задумал создать функцию “приятной печати” для Emacs, чтобы при нажатии некоторой комбинации клавиш она преображала исходный код в компактную форму. Функция заинтересовала и Столлмана.
“Утром мы сели за терминал, я за клавиатуру, а Столлман – рядом, чтобы говорить мне, что печатать”.
Около десяти часов подряд они занимались кодом, и за всё это время они не делали перерыва и не болтали о посторонних вещах. В итоге им удалось создать красивую функцию, которая занимала меньше 100 строк. “На клавишах были мои пальцы, но мне казалось, что мысли обеих наших голов перетекали на экран. Он говорил мне, что набирать, и я набирал”.
62
В интервью 1996 года интернет-журналу
65
В этой главе я уделил больше внимания социальной значимости Emacs, нежели технической. Чтобы оценить уровень программной части, рекомендую прочитать заметку Столлмана 1979 года, особенно обратить внимание на раздел “Исследования в разработке программных инструментов” (“Research Through Development of Installed Tools” #SEC27). Раздел не только понятен неспециалисту, но и показывает, как сильно связана политическая философия Столлмана с его философией программирования. Например:
Функциональность Emacs невозможно было создать заранее продуманным проектированием, потому что такой подход достигает целей, которые видны только поначалу, и устанавливает априорный ценз на присутствие каких-то функций в программе. Ни я, ни кто-либо другой не мог заранее представить себе все возможности Emacs, их можно только увидеть по мере их появления в реальности. Emacs это бесконечный процесс улучшений.