Какая функциональность отсутствует в GNU Emacs по сравнению с XEmacs?

32

С точки зрения функциональности, какие ключевые моменты в настоящее время отличают XEmacs от GNU Emacs?

Чтобы учесть различные графики выпуска, в качестве основы для сравнения следует рассматривать самую последнюю версию разработки каждого варианта Emacs.

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

паприка
источник
1
XEmacs фактически мертв (последний стабильный выпуск был в 2009 году), поэтому он в значительной степени не имеет значения. Почти все его «особые» функции были включены в GNU Emacs (я не знаю достаточно подробностей, чтобы ответить окончательно).
Шости
4
@shosti: Вопрос не имеет никакого отношения к функциям, которые существуют в XEmacs, но не существуют в GNU Emacs - однако их может быть немного. Или даже для функций, которые существуют, но могут иметь лучший дизайн или реализацию в XEmacs. Будет ли GNU Emacs когда-либо принимать такие вещи - это отдельный вопрос. Но этот вопрос не имеет значения, особенно для будущего развития GNU Emacs. (Это может быть неуместно для кого-то, просто желающего выбирать между этими двумя, как пользователь.)
Дрю

Ответы:

27

Насколько я могу судить, в XEmacs в течение очень долгого времени присутствовала, в основном, одна особенность, которой до сих пор нет в GNU Emacs: динамическая загрузка модулей, написанных на C или FFI.

Хотя это регулярно обсуждается в списке рассылки emacs-devel, и больше нет никаких возражений против его реализации со стороны текущего сопровождающего, но он все еще находится в стадии разработки.

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

Фактически, есть признаки того, что код для этой функции теперь будет приветствоваться в базе кода для Emacs 25, если они по умолчанию отключены.

Сигма
источник
8

Поскольку Emacs является расширяемым, любая функция, отсутствующая в Emacs, может быть добавлена ​​подходящими пакетами ELisp. Важные отличия являются внутренними:

  • XEmacs использует надлежащие непрозрачные типы для символов, событий, сопоставлений клавиш и т. Д., Где Emacs использует целые числа и списки;
  • XEmacs имеет экстенты как объединяющую абстракцию, где Emacs имеет текстовые свойства и наложения.

Поскольку XEmacs в настоящее время в основном не поддерживается, стоит обойти мелкие недостатки в системе типов Emacs и использовать поддерживаемую версию.

JCH
источник
8

Xah Lee написал в 2007 году о пакетах XEmacs, которые, по его мнению, были более зрелыми. В настоящее время в GNU Emacs есть package.el, поэтому трудно найти более отшлифованные пакеты в XEmacs.

На веб-сайте XEmacs также есть страница, которая документирует различия .

XEmacs не поддерживает пользовательские макросы чтения, но поддерживает дополнительные макросы чтения #+и #-.

Уилфред Хьюз
источник