Код
#статьи

GNU Emacs: как текстовый редактор из 1980-х учит программистов ценить свободное ПО

Говорят, что Emacs способен превратить новичка в хакера и подарить ему небывалую свободу творчества. Разбираемся, так ли это на самом деле.

Иллюстрация: Альберто Блинчиков для Skillbox Media

В ноябре 2021 года прошла очередная конференция EmacsConf, или, как гласит слоган на сайте, «конференция о радости Emacs и Emacs Lisp». Участники не только обсудили технические тонкости легендарного редактора, но и раскрыли секрет его удивительной живучести. А ещё рассказали, как Emacs учит людей свободе.

Чем хорош GNU Emacs

Среди докладов на EmacsConf особого внимания заслуживает выступление Протесилая Ставру. Он не профессиональный программист, но это не мешает ему быть одним из самых знаменитых контрибьюторов Emacs-сообщества.

Протесилай Ставру
Фото: Brown University

Протесилай, или Прот, как его называют друзья, родился в Греции. В юношестве он играл в футбол на полупрофессиональном уровне и чинил мотоциклы. Будучи студентом, подрабатывал барменом, рабочим на стройке и официантом в ресторанах. А по окончании университета стал помощником депутата Европарламента и независимым исследователем — он изучал деятельность Экономического и валютного Союза ЕС.

В 2016 году Протесилаю надоела парламентская работа. Он уехал в горный район на Кипре и по сей день занимается сельским хозяйством, а в свободное от работы время пишет философские эссе и программирует.

Прот пользуется Emacs с 2019 года. Он разработал для него пакет modus-themes с визуальными темами Modus Operandi и Modus Vivendi. Они соответствуют стандартам доступности и подходят пользователям с красно-зелёным дальтонизмом.

На EmacsConf 2021 Протесилай выступил с докладом «Как Emacs заставил меня ценить свободу программного обеспечения». В докладе он задаёт интересный вопрос:

Говорят, что Emacs очень тяжело освоить. Но как же такой технически неграмотный человек, как я, который не знает ELisp и понимает программирование лишь на базовом уровне, стал мейнтейнером пакетов и контрибьютором emacs.git?

По мнению докладчика, ответ кроется в том, что Emacs — это «самодокументируемое» ПО с открытым исходным кодом. Изучая документацию и ковыряясь в исходниках, методом проб и ошибок даже новичок способен овладеть Emacs.

Прот говорит, что до Emacs под каждую задачу у него было отдельное приложение. За почту отвечал Mutt, за RSS — Newsboat, музыкой заведовал Music Player Daemon, а тексты редактировались в Vim. Каждая из этих программ хороша сама по себе, но навыки владения одной из них нельзя применить в другой. А вот с Emacs дела обстоят иначе:

Если вам знакомы комбинации клавиш для работы с кодом, то с их помощью вы также можете редактировать обычный текст или управлять файлами. Если у вас есть команда, которая скроллит вниз половину экрана, то она везде будет работать одинаково, независимо от того, проверяете ли вы почту, редактируете текст или составляете плейлист.

Протесилай Ставру,
программист-любитель, контрибьютор Emacs

Развитая культура документирования в Emacs-сообществе проявляется и в особом этикете оформления пакетов Emacs. Лучшие и наиболее популярные из них содержат подробные руководства. В отличие от обычного README, эти руководства похожи на полноценные книги с оглавлением, перекрёстными ссылками, предметными указателями и так далее.

Написание ясной документации помогает авторам ПО донести свои идеи и улучшить коммуникативные навыки. По словам Протесилая, именно культура документирования и отношение к пользователям как к равным, делает из новичка профессионала:

Есть разница между обменом знаниями и «скармливанием их с ложечки». «Кормление» вредит пользователям в долгосрочной перспективе, потому что вызывает зависимость. Сообщество Emacs хочет, чтобы новички взяли на себя ответственность за своё образование. Культура документирования и бескомпромиссные стандарты гарантируют, что даже неквалифицированные юзеры смогут продуктивно работать с Emacs и раскрыть его потенциал

Почему нельзя быть «туристом» в мире GNU Emacs

К сожалению, большинство пользователей выбирают «кормление с ложечки». Людям нужны приложения, которые «просто работают», а с Emacs всё иначе. По словам Прота, этот редактор кода нельзя освоить за выходные.

Emacs — это сложный инструмент для серьёзной работы. За несколько десятилетий своего существования он вобрал знания и опыт множества людей. Даже если Emacs вам нужен только ради Org mode, всё равно придётся прочитать руководство и понять, как его настроить. Те, кто пытается по-быстрому освоить редактор, столкнутся с большими трудностями. Нельзя быть «туристом» в мире Emacs.

И в этом главная мысль доклада: свобода предполагает ответственность. А в области свободы ПО Emacs — чемпион.

Emacs — это воплощение идеала GNU. Там можно найти всё самое лучшее, чего вы ожидаете от free software. …Благодаря Emacs я понял, что свобода программного обеспечения — это не про доступ к исходникам, а про совместное использование ПО. Лучший способ достичь свободы — подражать Прометею: не просто давать людям «огонь», а предложить им знания.

Протесилай Ставру,
программист-любитель, контрибьютор Emacs

Протесилай приводит пример из своей жизни. Однажды Emacs показал ему преимущества свободного ПО так ярко, как ни одна другая программа в GNU/Linux:

Мне понадобился редактор Markdown, который мог бы размещать текст по центру, настраивать цвет, тип шрифта, кегль и проверять орфографию для греческого и английского языков. Я нашёл кучу свободных программ, но ни одна не могла сравниться по возможностям с Emacs. Только он позволил мне разобраться с большинством повседневных задач и использовать компьютер так, как я хотел.

Какое будущее у GNU Emacs

Некоторые считают, что Emacs теряет пользователей и уходит в прошлое. Поэтому в сообществе периодически обсуждают, как вернуть Emacs былую популярность. Но Дэвид Уилсон, создатель сообщества компьютерных энтузиастов System Crafters и одноимённого YouTube-канала, считает, что Emacs ждёт прекрасное будущее.

Уилсон задался вопросом: что такое популярность текстовых редакторов и как её измерить? По его мнению, здесь не стоит ориентироваться на аналитические сервисы:

Если вы посмотрите на все эти Google Trends и Stack Overflow, у вас сложится впечатление, что Emacs мёртв и никто им не пользуется.

Динамика популярности запроса «Emacs» с 2004 года по настоящее время
Скриншот: Skillbox Media

Вместо этого Уилсон предлагает взглянуть на активность сообщества в Reddit, Discord, Slack, IRC-каналах, листах рассылки и блогах. По его словам, ситуация, когда текстовый редактор теряет популярность, выглядит так:

  • мейнтейнеры покидают проект, и никто не приходит им на смену;
  • долго не появляются новые фичи;
  • не фиксятся критические баги;
  • сообщество теряет мотивацию к созданию новых пакетов.

Но Уилсон считает, что Emacs такая участь не грозит. Во-первых, Emacs гораздо проще расширять и модифицировать, чем большинство других редакторов.

Я не видел более расширяемого редактора, чем Emacs. Ведь он и был создан для этого: вы можете адаптировать его под свой рабочий процесс. В этом и заключается суть свободы пользователя. Вы не позволяете создателям редактора диктовать вам, что делать. Вместо этого вы говорите программе, что делать ей.

Дэвид Уилсон,
автор YouTube-канала System Crafters

Начиная с небольших настроек, пользователь по мере накопления опыта может научиться создавать свои собственные пакеты и приносить пользу Emacs-сообществу. Сам редактор написан на том же языке, что используется для управления его настройками. Конечно, ядро Emacs реализовано на С, но большая часть его функций и пакеты написаны на Emacs Lisp. Поэтому велики шансы, что активные участники сообщества смогут контрибьютить в сам редактор.

В сообществе Emacs много сильных и высококвалифицированных контрибьюторов. Для него написаны популярные пакеты, аналогов которым нет у других текстовых редакторов: Org mode, Magit, Org-roam и другие. А ещё участники комьюнити пишут статьи про Emacs, снимают обучающие видео и всегда готовы ответить на вопросы новичков.

Как часто вы видите крутые посты в блоге, которые взрывают мозг и открывают новые возможности Emacs? Я вижу их постоянно… Подобные материалы вдохновляют людей на работу в Emacs и поэтому очень важны.

Дэвид Уилсон,
автор YouTube-канала System Crafters

Наконец, контрибьюторы и мейнтейнеры Emacs действительно заботятся о пользователях. Некоторые участвуют в проекте более 10 лет. Есть и те, кто работает в Emacs с 1980-х.

Столько лет поддерживать редактор в рабочем состоянии — это огромный труд. …Emacs существует аномально долго и пережил множество конкурентов.

Дэвид Уилсон,
автор YouTube-канала System Crafters

Уилсон приходит к выводу: Emacs рано хоронить! Напротив — у него очень даже хорошее будущее :)

Что делать дальше

Emacs — это не только многофункциональная IDE, но и способ прикоснуться к легендарной хакерской культуре. Если вас вдохновили слова Прота и вы решили попробовать легендарный редактор, начните с этих шагов:

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована