“У Ричарда феноменальный интеллект. Он очень ясно мыслит и конструирует стройные системы”, – говорит Джеральд Сассмен, сотрудник Лаборатории и с 1985 года – участник фонда свободного ПО. Оценив Столлмана по достоинству, он приглашал его работать в исследовательских ИИ-проектах в 1973 и 1975 году. Там требовались глубокие познания языка LISP, а также понимание, как вообще можно подойти к задаче. В результате проекта 1975 года появился ИИ, основанный на откате с учётом зависимостей – проверке высказываний на противоречия и их решении в случае обнаружения таковых.
В свободное от официальной работы время Столлман занимался личными проектами. Одним из главных желаний Ричарда было усовершенствовать программную инфраструктуру Лаборатории, в частности – доработать текстовый редактор TECO.
Эпопея Столлмана и TECO 70-х годов тесно связана с последующим основанием движения свободного софта. Это очень важный эпизод, так что стоит рассказать о нём подробнее. Прежде всего, нужно понять, что нынешняя лёгкость и простота написания текстов и программ на компьютерах была далеко не всегда. В 50-х, 60-х годах, когда компьютеры впервые появились в университетах, компьютерное программирование было очень абстрактным, долгим и утомительным занятием. Взаимодействие с компьютером проходило через огромные наборы перфокарт, на которых программист набирал программу, определённым образом пробивая отверстия на каждой перфокарте. Затем он передавал перфокарты системному администратору, тот вставлял их одну за одной в компьютер, ждал конца вычислений, получал перфокарты с набранным на них выводом программы и отдавал программисту. Этот процесс назывался “пакетной обработкой” и был очень медленным. К тому же, многие системные администраторы злоупотребляли своим положением, произвольно меняя очередь обработки или вовсе отказывая программистам. Именно из-за этого многие ранние хакеры возненавидели власть администраторов.
В 1962 году хакеры и научные сотрудники, привлечённые к проекту MAC в Лаборатории ИИ, взялись за эту проблему. Принцип разделения времени, который поначалу называли “похищением времени”, делал возможным выполнять на компьютере сразу несколько процессов. Для вывода результатов приспособили телетайпы, чтобы программист сразу мог читать нормальный текст, а не расшифровывать таблицы с пробитыми отверстиями. Программист сам набирал команды и читал построчный текстовый вывод.
На исходе десятилетия в интерфейсах произошёл качественный скачок – в 1968 году Дуглас Энгельбарт, учёный Стэнфордского института, представил прототип графического интерфейса. Подключив к компьютеру телевизор и специальный манипулятор, названный “мышью”, Энгельбарт показал совершенно недосягаемый уровень интерактивности – с компьютером можно было работать в режиме реального времени. Пользователь мог в любой момент добавить, изменить, удалить текст в любом месте экрана.
Это изобретение могло бы ещё два десятка лет пробиваться на рынок, но уже в 70-х годах телеэкраны вовсю начали вытеснять телетайпы, реализуя полноэкранное редактирование вместо построчного.
TECO (сокращение от слов “текстовый редактор и корректор”) стал одной из первых программ с поддержкой полноэкранного редактирования. Её сделали из старого построчного редактора, разработанного под телетайпы на PDP-6. [54]
Этот редактор был мощнее и удобнее прежних, но всё ещё недостаточно удобным и мощным. Например, чтобы создать документ и начать работать над ним, нужно было ввести целую серию команд и символ конца строки. TECO не умел реагировать на каждое нажатие клавиши, как делают сегодняшние текстовые редакторы. Опытные хакеры наловчились вводить множество команд одной строкой, но назвать это удобным язык не поворачивался. Столлман сравнивал это с “игрой в шахматы с завязанными глазами”. [55].
Для упрощения работы хакеры Лаборатории ИИ изменили программу так, чтобы она делила экран на 2 части, в одной отображался текст, в другой – командная строка. Но даже с этой удобной функцией работа в TECO была далека от комфортной.
TECO был не единственной программой с поддержкой полноэкранного редактирования. Когда Столлман посетил лабораторию информатики Стэнфорда в 1976 году, он увидел там редактор, который назывался просто Е. В нём была функция обновления экрана при нажатии на определённую клавишу. В мире программирования редактор Е был одним из первых, что работал по принципу “что ты видишь, то и получаешь” (WYSIWYG). Этот принцип позволял работать с файлом напрямую, а не через посредника, которому нужно отдавать команды. [56].