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