Махнув рукой на FUCK, Столлман снова принялся за поиски, и скоро нашёл компилятор Pastel (“не цветной Паскаль”), написанный программистами Ливерморской национальной лаборатории им. Лоуренса. Они дали копию компилятора Ричарду и сказали, что он волен делать с нею всё, что вздумается. К сожалению, компилятор был непригоден к использованию в GNU из-за непомерных аппетитов к оперативной памяти. Он анализировал в ней весь входной файл, и потом держал в ней все его данные до самого окончания компиляции. На мейнфреймах это не вызывало проблем, но на Unix-системах даже у 32-битных версий зачастую не было столько оперативной памяти. Столлман начал было работать над этим компилятором, создав интерфейс для языка С и опробовав её на большом компьютере VAX, но во время переноса программы на платформу 68010 начались падения из-за нехватки памяти, и Ричард понял, что остаётся только создать новый компилятор с нуля. Пройдёт время, и Столлман сделает это, создав GNU C Compiler или GCC. Но в 1984 году он ещё не совсем понимал, как взяться за это дело, так что временно переключился на другие задачи проекта GNU.
Самым очевидным шагом был выпуск GNU-версии редактора Emacs, этим Столлман и занялся в сентябре 1984 года. Сообщество Unix уже имело два родных для этой системы текстовых редактора: vi, написанный сооснователем Sun Microsystems Биллом Джоем, и ed, созданный учёным Bell Labs и одним из создателей Unix Кеном Томпсоном. Оба редактора были мощными и очень популярными, но до практически неограниченной мощи Emacs им было далеко.
Сейчас Ричард говорит, что не придавал этому решению стратегического значения. “Я просто хотел заниматься Emacs, и у меня был отличный повод им заняться”.
И тут Столлман смог воспользоваться уже существующим кодом, чтобы сэкономить время. Он скоро обнаружил версию Emacs, написанную на языке С аспирантом Карнеги-Меллона Джеймсом Гослингом. Она называлась Gosling Emacs или просто Gosmacs. Эта версия включала в себя интерпретатор упрощённого диалекта языка Lisp под названием Mocklisp. И хотя Гослинг защитил свою версию редактора авторским правом и потом продал его компании UniPress, Столлман получил карт-бланш от одного из разработчиков, который работал над Gosmacs на раннем этапе, и которому за это Гослинг дал полные права на ту раннюю версию редактора.
Сначала Ричард рассчитывал изменить только пользовательские команды, чтобы добиться полной совместимости с оригинальным Emacs для PDP-10. Но когда увидел, насколько слаб Mocklisp на фоне обычного Lisp – понял, что нужно полностью переделать интерпретатор. В такой ситуации было естественным переписать большую часть высокоуровневого кода Gosmacs на Lisp, чтобы использовать всю мощь и гибкость этого языка. В середине 1985 года GNU Emacs был размещён в интернете, и только в нескольких его файлах остался код Gosmacs.
Позже компания UniPress узнала о проекте Столлмана, и стала отрицать, что некий разработчик имеет полные права на раннюю версию Gosmacs. Ричард не смог найти то электронное письмо, чтобы защититься от претензий, и решил проблему иначе: переписал оставшиеся части, полностью избавив программу от следов Gosmacs.
Тем не менее, существование разработчиков, продающих права на программы – точнее, сама возможность их существования – не давала Ричарду покоя. Произнося в 1986 году речь в Королевском технологическом институте Швеции, Столлман привёл в пример инцидент с компанией UniPress, как очередную опасность, связанную с несвободным ПО.
“Иногда я думаю: лучшее, что я мог бы сделать в своей жизни, это найти гигантскую кучу собственнических программ, представляющих коммерческую тайну, и раздать её прохожим на улице, чтобы этой коммерческой тайны больше не было, – рассказывает Столлман, – наверное, это был бы куда более эффективный способ дать людям свободное ПО, чем писать его самому, но люди слишком малодушны, чтобы это принять”.[83]
Инцидент с кодом Gosmacs не только потрепал нервы, но и пошёл на пользу Столлману и всему движению за свободное программное обеспечение. Он заставил Ричарда обратить внимание на слабые места “коммуны Emacs”, основанной на непринуждённом доверии, которое породило массу проблемных ответвлений редактора. Также Столлману пришлось тщательно проработать цели движения за свободное ПО. Вскоре после выпуска GNU Emacs, Ричард обнародовал