Приложение A Антиновости Emacs 29
Для тех пользователей, кто живёт в обратном времени, вот информация о
понижении версии до Emacs 29.4. Мы надеемся, что вам понравится большая
простота, возникающая из-за отсутствия многих функций Emacs 30.2.
- События колёсика мыши снова следуют соглашениям платформы и оконной системы:
иногда это
wheel-up/down, а иногда mouse-4/5/6/7. Программы на
Lisp, использующие их, должны снова учитывать действующие соглашения и
вести себя соответствующим образом.
- Команда
describe-function больше не отвлекает вас показом
ненужных деталей, таких как тип объекта функции. Хакеры Emacs всегда
знают, является ли функция примитивом, нативно-скомпилированной функцией
Lisp или любым другим видом. Констатация очевидного просто занимает
драгоценное место на экране; по мере движения в прошлое, когда типичные
размеры экрана становятся меньше, эта трата становится всё менее
оправданной. Поэтому мы сделали эту трату меньше.
- Поддержка стилизованного подчёркивания в атрибуте face была удалена.
Простого подчёркивания должно быть достаточно; всё остальное — просто
раздувание кода и ползучий фичеризм. Цветные подчёркивания на TTY-фреймах
по той же причине больше не поддерживаются.
- IELM перестал сохранять историю ввода. Вас больше не будут раздражать
вводы с прошлых сессий; каждая сессия начинается с чистого листа. Что
может быть проще и легче для запоминания?
- Вы больше не можете отключать JavaScript в сессиях xwidget Webkit. Поскольку
xwidgets исчезнут в одной из предыдущих версий Emacs, мы решили сделать
этот шаг в этом направлении и избавиться от этого усложнения.
- Режим
minibuffer-regexp-mode был удалён. Регулярные выражения —
это просто строки, поэтому для их редактирования не нужен никакой особый
режим.
- Мы удалили пакет Compat. Совместимость вперёд для пакетов ELPA становится
всё менее важной по мере движения назад во времени, и довольно скоро ELPA
исчезнет полностью. Мы решили, что благоразумно начать готовиться к этому
уже сейчас.
- Мы вернулись к интерпретации
\x без последующих шестнадцатеричных
цифр как кода символа ноль (NUL), как это всегда было в Emacs.
Экономия на наборе только благодаря этому достаточна, чтобы оправдать это
упрощение.
- Чтобы сохранить Emacs чистым и элегантным, мы удалили возможность показывать
подсказки для растровых изображений на полях. Какая важная информация может
отображаться на полях, и зачем ей нужны подсказки для объяснения своего
назначения? Мы решили, что неоправданно сохранять это в прошлых версиях
Emacs.
- Причудливые средства, связанные с сортировкой, такие как функция
value< и аргументы в виде ключевых слов для sort, были
удалены как слишком сложные. Базовой функции sort должно быть
достаточно в предстоящие годы.
- Функции, связанные с графом наследования основных режимов, были признаны
ненужными и поэтому удалены. Это включает
provided-mode-derived-p,
derived-mode-add-parents и другие. Мы решили, что ручное
распутывание отношений наследования режимов способствует написанию более
ясного кода и делает намерения очевидными.
- Мы удалили ненужную функциональность для обработки событий сенсорных
экранов, поскольку сенсорные экраны постепенно исчезают из виду по мере
движения назад во времени. Нет необходимости хранить эти новые изобретения
в прошлом как устаревшие.
- Различные новые функции и переменные для перемещения и транспозиции sexp-выражений
и для перемещения по операторам программ были удалены как ненужные.
Исходных команд, которые перемещают по сбалансированным выражениям, более
чем достаточно.
- Мы удалили некоторые причудливые формы
declare для функций, такие как
ftype. Emacs Lisp — это язык без строгой типизации, что делает эти
объявления несовместимыми с духом языка. Типы closure и
interpreted-function удалены по той же причине: нет необходимости
различать типы функций Lisp.
- Компилятор байт-кода перестал выдавать предупреждения о практиках, которые
некоторые пуристы считают сомнительными. Это включает предупреждения об
отсутствии маркеров
lexical-binding, о пустых телах специальных форм
и макросов, о сравнении с литералами, о condition-case без
обработчиков, об изменении констант и некоторые другие. По мере движения
в прошлое типичный хакер Emacs лучше всех знает, что является правильным
кодом, а что нет, и поэтому эти предупреждения становятся бесполезными
раздражителями. Скатертью дорога!
- Тип
obarray удалён. Массивы объектов вернулись к своему исходному
представлению в виде векторов. Каждый удалённый тип данных Lisp делает
Emacs проще и удобнее в использовании, так что это желанное удаление.
- В рамках продолжающегося поиска простоты многие другие функции и переменные
были исключены. Другие функции и переменные, которые были объявлены
устаревшими начиная с Emacs 24, были добавлены обратно в качестве подготовки
к выпуску Emacs 24 в каком-то далёком прошлом.