Редактор Emacs отпраздновал 50-летний юбилей, как сообщает MIT Technology Review. Издание не случайно предвзято: Emacs был создан в лаборатории искусственного интеллекта Массачусетского технологического института.
Статья Симсона Гарфинкела называется просто «Emacs исполняется 50», но подзаголовок раскрывает его значимость:
«Как текстовый редактор лаборатории ИИ Массачусетского технологического института дал начало движению свободного программного обеспечения».
Существует множество версий и хроник происхождения Emacs, и это не единое монолитное приложение. Название является сокращением от «Editing MACroS» (макросы редактирования), а исходным редактором, для которого был разработан этот набор макросов, был TECO — «Text Editor and COrrector» (текстовый редактор и корректор), написанный Дэном Мёрфи в 1962 году. Мёрфи скончался в начале этого года в возрасте 83 лет.
Непревзойденный Джейми Завински создал энциклопедическую «Хронологию Emacs». Как он отмечает в начале, его интерес к теме связан с тем, что он долгое время поддерживал форк GNU Emacs, изначально называвшийся Lucid Emacs. Он существует до сих пор под более поздним названием XEmacs. Существует множество форков и перереализаций Emacs, и мы не будем углубляться во все из них, иначе эта статья превратится в книгу, интересную лишь программистам-археологам (используя термин, введенный покойным Вернором Винджем).
Что касается того, кто изначально написал эти макросы редактирования, то другая история содержит цитаты нескольких участников: «О происхождении Emacs в 1976 году». (Примечание: некоторые цитаты по-прежнему содержат символы «|», которые отмечали цитируемый текст.)
Это приписывает эксперту по Lisp Гаю Л. Стил-младшему оригинальную работу в 1975 году, но в ней Стил говорит:
«RMS несет ответственность за названия «E» и «EMACS». RMS по-прежнему заслуживает 99% или 99,9% или 99,99% или 99,999% заслуг за то, что взял пакет макросов TECO и превратил его в самый мощный редактор на планете».
RMS, конечно же, Ричард Столлман, и на странице также приведены некоторые электронные письма от RMS от 23 и 31 октября 1976 года. Стоит отметить, что всего через несколько лет после события, в выступлении 1981 года, которое теперь сохранено на сайте GNU, Столлман сказал: «Я начал разработку EMACS в 1974 году с улучшения TECO». Как и все лучшее в FOSS, даже на самых ранних этапах это было совместное усилие, но около конца октября 1976 года RMS взял на себя основную часть разработки.
Из множества форков Emacs за полвека его разработки некоторые все еще держатся. Когда мы искали ссылку на XEmacs, мы с удивлением обнаружили новый релиз: XEmacs 21.5.37 «lettuce» появился в прошлом месяце. И даже у форков есть форки: в данном случае SXEmacs, последний раз обновлявшийся в 2020 году.
Большинство изменений в XEmacs и SXEmacs в конечном итоге вернулись в основной поток GNU Emacs, который по-прежнему активно разрабатывается, хотя, как сообщал The Register в 2008 году, RMS больше не является основным сопровождающим. GNU Emacs 31.1 вышел в августе.
Признаемся честно: этот автор не является пользователем Emacs. Мы пытались. Большое влияние оказал один из любимых писателей FOSS-отдела «Reg», Нил Стивенсон, который в 1999 году опубликовал эссе под названием «В начале… была командная строка». (Позже оно было переиздано в виде довольно короткой книги, но текст все еще доступен онлайн.) В нем он говорит:
«В мире GNU/Linux существует две основные программы для редактирования текста: минималистичный vi (известный в некоторых реализациях как elvis) и максималистский emacs. Я использую emacs, который можно считать термоядерным текстовым процессором. Его создал Ричард Столлман; больше ничего не нужно говорить. Он написан на Lisp, единственном красивом компьютерном языке. Он колоссален, и при этом он редактирует только простые текстовые файлы ASCII, то есть без шрифтов, без полужирного начертания, без подчеркивания. Другими словами, инженерные часы, которые в случае Microsoft Word были посвящены таким функциям, как слияние почты и возможность встраивать полнометражные фильмы в корпоративные служебные записки, в случае emacs были с маниакальной интенсивностью сосредоточены на обманчиво простом на вид задании редактирования текста. Если вы профессиональный писатель — то есть, если кто-то другой получает деньги за то, что беспокоится о форматировании и печати ваших слов, — emacs превосходит все другие программы редактирования примерно так же, как полдень превосходит звезды».
Emacs — это программное обеспечение возрастом более 50 лет, и это заметно. Это огромная и сложная программа: десятилетия назад шутили, что EMACS расшифровывается как «Eight Megs And Constantly Swapping» (Восемь мегабайт и постоянный свопинг). Это нелегкая программа для изучения. Несмотря на обильную документацию и встроенное учебное пособие, это программное обеспечение настолько старое, что его терминология предшествует микропроцессорам и персональным компьютерам.
Его исчерпывающее руководство насчитывает 804 страницы, и, чтобы привести тривиальные примеры, в нем для частей экрана используется термин «frame» (рамка) вместо того, что сейчас называется окном, а «window» (окно) вместо того, что сейчас называется панелью. В разделе о клавишах обсуждаются клавиши Control и *Meta. Это небольшая загвоздка: у вас нет клавиши *Meta, как и у авторов Emacs. Это была клавиша на почти легендарно редкой клавиатуре Space Cadet, о которой вики клавиатур Deskthority говорит:
«Это известная как Святой Грааль клавиатур».
Вы можете купить современную реплику, клавиатуру Keymacs. Они изготавливаются вручную в Чешской Республике, и в зависимости от модели и спецификаций стоят от 2998 евро за Lispsaver до 6878 евро за A624N Space Cadet.
Другими словами, вы можете приобрести клавиатуру с настоящей клавишей *Meta, если захотите, но это обойдется вам дорого.
Одна из проблем с этими историческими терминами, незнакомыми тем, кто не программировал в 1970-х годах, заключается в том, что значения меняются. В контексте Emacs «*Meta» означает Alt или Opt на Mac. Однако KDE также использует клавишу *Meta — но то, что документация KDE называет «*Meta», является клавишей Windows или Command на Mac. Как и у большинства пользователей Linux, документация GNOME называет ее клавишей Super.
Имена важны. Они имеют значение. Кто прав: сторонники Emacs или сторонники KDE? Ну, никто: у *Meta-клавиш больше нет. У нас есть Ctrl, Alt и Cmd/Super/Windows.
Были предприняты доблестные попытки модернизировать Emacs и привести его в соответствие с современным пользовательским интерфейсом и терминологией. Этот автор пытался изучить Aquamacs, который модернизировал Emacs с помощью нативного интерфейса macOS, но, к сожалению, он больше не поддерживается.
Другой, который нам понравилось пробовать, — это ErgoEmacs, который изменяет привязки клавиш и перестраивает интерфейс так, чтобы он больше напоминал расположение IBM Common User Access, используемое в Windows и большинстве дистрибутивов Linux. Однако он так и не получил широкого распространения, и вам нужно хорошо разбираться в Emacs, чтобы установить и настроить его для вашей региональной раскладки клавиатуры.
Настолько сложна настройка Emacs, что существует несколько предварительно сконфигурированных дистрибутивов Emacs, таких как Doom Emacs или минималистичный Emacs Solo. Хотелось бы, чтобы кто-нибудь сделал конфигурацию «CUA-Macs» с интегрированным ErgoEmacs и возможностью использовать вашу существующую конфигурацию клавиатуры.
Кстати, проект Gershwin Desktop, который мы упоминали вместе с GhostBSD в прошлом году, находится в активной разработке и основан на GNUstep. Возможно, его разработчики могли бы взять Aquamacs и адаптировать его для GNUstep.
Существует долгая история подобных «подтяжек лица» Emacs. Одним из примеров является текстовый процессор Borland Sprint, одним из преимуществ которого было то, что он мог эмулировать пользовательские интерфейсы большинства ведущих текстовых процессоров MS-DOS того времени (незадолго до того, как все они сошлись на IBM CUA). До приобретения Borland, Sprint назывался The Final Word и был разработан производителями музыкального оборудования Mark of the Unicorn. FinalWord был основан на клоне Emacs под названием MINCE.
Великий соперник
Еще одним известным дистрибутивом Emacs является Spacemacs, который адаптирует Emacs для более удобного интерфейса в стиле Vi.
Vi — это *другой* знаковый текстовый редактор Unix, как упоминается в приведенной выше цитате Стивенсона. Как отмечает эта статья об истоках и эволюции Vi и Vim, он также датируется 1976 годом. Действительно, именно поэтому мы выбрали этот год в этой истории: Tilde, текстовый редактор, который не работает как в 1976 году. Одна из особенностей Tilde, которая нам нравится, заключается в том, что он поддерживает использование мыши даже в консоли Linux — что является главной новой функцией GNU Emacs 31.1.
Vi жив и прекрасно себя чувствует сегодня. GNU Emacs основан на исходном коде, но Vi в основном существует в виде перереализаций. Воссоздание, упомянутое Стивенсоном, Elvis, сегодня живет в виде nvi.
Однако, безусловно, самым известным является Vim, который поддерживался Брамом Муленаром до его смерти в 2023 году. В великой традиции форков FOSS, у него тоже есть форки, включая Neovim, используемый в Omarchy, и совсем недавно, Vim Classic без ИИ — Vim Classic — новый проект под руководством Дрю Деволта, который только что запустил аналогично свободный от LLM AlpineBSD. ®
*Facebook, *Instagram и *WhatsApp принадлежат компании *Meta Platforms Inc., деятельность которой признана экстремистской и запрещена на территории Российской Федерации.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Liam Proven




