Guerra de editores

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Rivalry entre usuarios de Emacs y editores de texto Vim

La guerra de editores es la rivalidad entre los usuarios de Emacs y los editores de texto vi (ahora generalmente Vim, o más recientemente Neovim). La rivalidad se ha convertido en una parte duradera de la cultura hacker y de la comunidad del software libre.

El debate entre Emacs y vi fue una de las "guerras santas" llevado a cabo en grupos de Usenet, con muchas guerras de llamas libradas entre aquellos que insisten en que su editor de elección es el modelo de edición perfecta e insultan al otro, desde al menos 1985. Se han librado batallas relacionadas sobre sistemas operativos, lenguajes de programación, sistemas de control de versiones., e incluso el estilo de sangría del código fuente.

Comparación

Las diferencias históricas más importantes entre vi y Emacs se presentan en la siguiente tabla:

Características de Emacs y vi
Característica Emacs vi
Ejecución de Keystroke Tradicionalmente, los comandos de Emacs son combinaciones clave para las que se sujetan las teclas de modificador mientras se presionan otras teclas; un comando se ejecuta una vez completamente escrito. Esto todavía forma un árbol de órdenes, pero no uno de los pulsadores individuales. vi conserva cada permutación de teclas tipo. Esto crea un camino en el árbol de decisiones que identifica inequívocamente cualquier comando.
Uso de memoria y personalizabilidad Emacs ejecuta muchas acciones en startup, muchas de las cuales pueden ejecutar código de usuario arbitrario. Esto hace que Emacs tome más tiempo para comenzar (incluso en comparación con vim) y requieren más memoria. Sin embargo, es altamente personalizable e incluye un gran número de características, ya que es esencialmente un entorno de ejecución para un programa Lisp diseñado para la edición de texto. Emacs 18 (publicado en 1987) introdujo un modo servidor diseñado para funcionar continuamente en el fondo. Se pueden iniciar varias instancias de Emacs en modo cliente, adhiriéndose a este servidor y compartiendo estado. El tiempo de inicio del cliente de Emacs es prácticamente instantáneo ya que todo lo que hace es invocar el proceso de Emacs existente para redibujar la pantalla. vi es un programa más pequeño y más rápido, pero con menos capacidad de personalización. vim ha evolucionado de vi a proporcionar significativamente más funcionalidad y personalización que vi, haciéndolo comparable a Emacs. vi tiempo de inicio es casi instantáneo para pequeños archivos de texto, mientras que vim es casi tan rápido.
Ambiente de usuario Emacs, aunque también inicialmente diseñado para usar en una consola, tenía soporte X11 GUI añadido en Emacs 18, e hizo el defecto en la versión 19. Los GUI actuales Emacs incluyen soporte completo para el espaciamiento proporcional y la variación de tamaño de fuente. Emacs también soporta imágenes incrustadas e hipertexto. vi, como emacs, se utilizó originalmente exclusivamente dentro de una consola de texto, sin ofrecer interfaz gráfica de usuario (GUI). Muchos derivados modernos, como MacVim y gVim, incluyen GUIs. Sin embargo, el apoyo a fuentes proporcionalmente espaciadas sigue ausente. También falta soporte para diferentes fuentes de tamaño en el mismo documento.
Interfaz de función/navegación Emacs utiliza acordes de metakey. Las claves o los acordes clave pueden definirse como teclas prefijo, que colocan Emacs en un modo en el que espera prensas clave adicionales que constituyen una unión clave. Los acoplamientos clave pueden ser específicos para el modo, personalizando aún más el estilo de interacción. Emacs proporciona una línea de comandos accedida por M-x que puede configurarse para autocompletar de varias maneras. Emacs también proporciona un defalias macro, permitiendo nombres alternativos para comandos. vi utiliza distintos modos de edición. Bajo "modo de entrada", las teclas insertan caracteres en el documento. Bajo "modo normal" (también conocido como "modo de mando", no confundirse con "modo de línea de comandos", lo que permite al usuario entrar comandos), pulsaciones de teclas desnudas ejecutan comandos vi.
Teclado La expansión de uno de los backronyms de Emacs es Escape, Meta, Alt, Control, Cambio, que resume perfectamente la mayoría de las teclas de modificador que utiliza, sólo dejando fuera Super. Emacs fue desarrollado en teclados de la academia espacial que tenían más modificadores clave que diseños modernos. Hay varios paquetes de emacs, tales como ergoemacs o ergoemacs que reemplazan estas combinaciones clave con otras más fáciles de escribir, o la personalización se puede hacer ad hoc por el usuario. vi no utiliza el Alt clave y rara vez utiliza el Ctrl llave. vi's keyset está restringido principalmente a las llaves alfanuméricas, y la llave de escape. Esta es una reliquia duradera de su herencia teletipo, pero tiene el efecto de hacer la mayor parte de la funcionalidad de vi accesible sin frecuentes alcances de dedo incómodo.
Soporte de lenguaje y script Emacs tiene soporte completo para todos los sistemas de escritura compatibles con Unicode y permite que múltiples scripts sean libremente intermixed. vi tiene soporte rudimentario para idiomas distintos del inglés. Moderno Vim admite Unicode si se utiliza con un terminal que admite Unicode.

Beneficios de Emacs

  • Emacs tiene una interfaz no-modal
  • La naturaleza no modal de los componentes clave de Emacs hace que sea práctico recibir apoyo como componentes clave de todo el sistema operativo.
  • Uno de los programas informáticos más portados. Se ejecuta en modo de texto y bajo interfaces gráficas de usuario en una amplia variedad de sistemas operativos, incluyendo la mayoría de sistemas similares a Unix (Linux, los diversos BSDs, Solaris, AIX, IRIX, macOS etc.), MS-DOS, Microsoft Windows, AmigaOS y OpenVMS. Los sistemas Unix, tanto gratuitos como patentados, suelen proporcionar Emacs agrupados con el sistema operativo.
  • Emacs server architecture permite que varios clientes se adjunten a la misma instancia Emacs y compartan la lista de amortiguadores, matar anillo, deshacer historia y otro estado.
  • Sistema de ayuda en línea con llaveros, funciones y comandos documentados en la mosca.
  • Extensible y personalizable Lisp variante de lenguaje de programación (Emacs Lisp), con características que incluyen:
    • Capacidad para emular vi y vim (utilizando Mal, Viper o Vimpulse).
    • Un poderoso y extensible gestor de archivos (dired), depurador integrado, y un gran conjunto de desarrollo y otras herramientas.
    • Tener cada comando ser una función Emacs Lisp permite comandos a DWI (Hacer lo que quiero) respondiendo programáticamente a acciones pasadas y estado de documento. Por ejemplo, a switch-or-split-window comando podría cambiar a otra ventana si existe, o crear uno si es necesario. Esto reduce el número de pulsaciones y comandos que debe recordar un usuario.
    • "Un sistema operativo dentro de un sistema operativo". Emacs Lisp permite programar Emacs mucho más allá de las funciones de edición. Incluso una instalación base contiene varias docenas de aplicaciones, incluyendo dos navegadores web, lectores de noticias, varios agentes de correo, cuatro clientes de IRC, una versión de ELIZA, y una variedad de juegos. Todas estas aplicaciones están disponibles en cualquier lugar que Emacs funcione, con la misma interfaz de usuario y funcionalidad. A partir de la versión 24, Emacs incluye un gestor de paquetes, lo que facilita la instalación de aplicaciones adicionales incluyendo navegadores web alternativos, EMMS (Emacs Multimedia System), y mucho más. También están disponibles numerosos paquetes para la programación, incluyendo algunos dirigidos a combinaciones específicas de lenguaje/libración o estilos de codificación.

Beneficios de vi

  • Editar comandos son composables
  • Vi tiene una interfaz modal
  • Vi carga más rápido que Emacs.
  • Al estar profundamente asociado con la tradición UNIX, se ejecuta en todos los sistemas que pueden implementar la biblioteca C estándar, incluyendo UNIX, Linux, AmigaOS, DOS, Windows, Mac, BeOS, OpenVMS, IRIX, AIX, HP-UX, BSD y sistemas compatibles con POSIX.
  • Vim y neovim son extensibles y personalizables a través de script Vim o API para idiomas interpretados como Python, Ruby, Perl y Lua.
  • Ubiquitous. Esencialmente todos los sistemas Unix y Unix-like vienen con vi (o una variante) incorporados. Vi (y ex, pero no vim) se especifica en el estándar POSIX.
  • Los entornos de rescate del sistema, los sistemas incrustados (en particular los con BusyBox) y otros entornos limitados a menudo incluyen vi, pero no emacs.

Evolución

La elección de editor se presenta durante una presentación en una convención de tecnología.

En el pasado, florecieron muchos editores pequeños inspirados o derivados de vi. Esto se debió a la importancia de conservar la memoria con la cantidad comparativamente minúscula disponible en ese momento. A medida que las computadoras se han vuelto más poderosas, muchos clones de vi, Vim en particular, han crecido en tamaño y complejidad de código. Estas variantes vi de la actualidad, al igual que las antiguas variantes livianas de Emacs, tienden a tener muchas de las ventajas y desventajas percibidas del lado opuesto. Por ejemplo, Vim sin ninguna extensión requiere unas diez veces el espacio en disco requerido por vi, y las versiones recientes de Vim pueden tener más extensiones y funcionar más lentamente que Emacs. En El arte de la programación de Unix, Eric S. Raymond llamó al supuesto peso ligero de Vim en comparación con Emacs "un mito compartido". Además, con las grandes cantidades de RAM en las computadoras modernas, tanto Emacs como vi son livianos en comparación con los grandes entornos de desarrollo integrado como Eclipse, que tienden a provocar la burla de los usuarios de Emacs y vi por igual.

Tim O'Reilly dijo, en 1999, que el tutorial de O'Reilly Media sobre vi vende el doble de copias que el de Emacs (pero señaló que Emacs venía con un manual gratuito). Muchos programadores usan Emacs y vi o sus diversas ramificaciones, incluido Linus Torvalds, que usa MicroEMACS. También en 1999, el creador de vi, Bill Joy, dijo que vi fue "escrito para un mundo que ya no existe". y afirmó que Emacs se escribió en máquinas mucho más capaces con pantallas más rápidas para que pudieran tener "comandos divertidos con la pantalla brillando y todo eso, y mientras tanto, estoy sentado en casa en una especie de excedente de la Segunda Guerra Mundial". vivienda en Berkeley con un módem y una terminal que apenas puede sacar el cursor de la línea de fondo".

Además de Emacs y vi workalikes, pico y su clon de código abierto y gratuito nano y otros editores de texto como ne a menudo tienen sus propios defensores externos en las guerras de editores, aunque no en la medida de Emacs y vi.

A partir de 2020, tanto Emacs como vi pueden presumir de estar entre los programas de aplicación más longevos de todos los tiempos, además de ser los dos editores de texto más utilizados en Linux y Unix. Muchos sistemas operativos, especialmente los derivados de Linux y BSD, incluyen múltiples editores de texto con el sistema operativo para satisfacer la demanda de los usuarios. Por ejemplo, una instalación predeterminada de macOS contiene ed, nano, TextEdit y Vim. Con frecuencia, en algún momento de la discusión, alguien señalará que ed es el editor de texto estándar.

Humor

Richard Stallman aparece como San IGNU -cius, un santo en la Iglesia de Emacs

La Iglesia de Emacs, formada por Emacs y el creador del Proyecto GNU, Richard Stallman, es una religión paródica. Si bien se refiere a vi como el "editor de la bestia" (vi-vi-vi siendo 6-6-6 en números romanos), no se opone al uso de vi; más bien, llama anatema al software propietario. ("Usar una versión gratuita de vi no es un pecado sino una penitencia.") La Iglesia de Emacs tiene su propio grupo de noticias, alt.religion.emacs, que tiene publicaciones que pretenden apoyar este sistema de creencias.

Stallman se ha referido a sí mismo como St IGNU−cius, un santo en la Iglesia de Emacs.

Los partidarios de vi han creado un culto de vi opuesto, argumentado por los usuarios de Emacs de línea más dura como un intento de "imitar a sus superiores".

Con respecto a la naturaleza modal de vi (un punto común de frustración para los nuevos usuarios), algunos usuarios de Emacs bromean diciendo que vi tiene dos modos: "señalar repetidamente" y "romperlo todo". Los usuarios de vi disfrutan bromeando acerca de que las secuencias de teclas de Emacs inducen el síndrome del túnel carpiano, o mencionan una de las muchas expansiones satíricas del acrónimo EMACS, como "Escape Meta Alt Control Shift" (un golpe a la confianza de Emacs en las teclas modificadoras) u "Ocho megabytes y cambios constantes" (en una época en la que había una gran cantidad de memoria) o "EMACS hace que cualquier computadora sea lenta" (un acrónimo recursivo como los que usa Stallman) o 'Eventually Munches All Computer Storage', en referencia a los altos requisitos de recursos del sistema de Emacs. GNU EMACS se ha ampliado a "Generalmente no utilizado, excepto por científicos informáticos de mediana edad" haciendo referencia a sus fanáticos más fervientes y su uso decreciente entre los programadores más jóvenes en comparación con editores más orientados a gráficos como Atom, BBEdit, Sublime Text, TextMate y Visual Studio Code.

Como un toque en Emacs' rasgo característico, se sabe que los defensores de vi describen a Emacs como "un gran sistema operativo, al que solo le falta un editor decente". Se sabe que los defensores de Emacs responden que el editor es realmente muy bueno, pero que el sistema operativo podría mejorar (refiriéndose a la famosa falta de concurrencia de Emacs, que ahora se ha agregado).

Un juego entre usuarios de UNIX, ya sea para probar la profundidad de la comprensión del editor por parte de un usuario de Emacs o para burlarse de la complejidad de Emacs, consistía en predecir qué sucedería si un usuario mantuviera presionada una tecla modificadora (como Ctrl o Alt) y escribieron su propio nombre. Este humor de juego se originó con los usuarios del antiguo editor TECO, que era la base de implementación, a través de macros, del Emacs original.

Debido a cómo se sale de vi (":q", entre otros), los piratas informáticos bromean sobre un método propuesto para crear una secuencia de caracteres pseudoaleatoria haciendo que un usuario que no esté familiarizado con vi se siente frente a un editor abierto y pedirles que salgan del programa.

El motor de búsqueda de Google también se unió a la broma al hacer que las búsquedas de vi generaran la pregunta "Quiso decir: emacs" aparece en la parte superior de la página y busca emacs, lo que da como resultado "Quiso decir: vi".

Contenido relacionado

Datsun

Tejer

Cocina teochew

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save