Vim es un popular editor de texto y código para amantes de la 'vieja escuela' (se lanzó en 1991 como versión mejorada del mucho más vetusto 'Vi', y sigue pudiendo ejecutarse en modo texto) que sigue contando con una base de usuarios mucho mayor de lo que podría pensarse en estos tiempos en los que los tiempos soplan a favor de herramientas como el Visual Studio Code.
Tantos son aún sus fans, que regularmente siguen protagonizando 'flames' con los entusiastas usuarios de otro editor igualmente retro, el Emacs.
La última versión de Vim hasta ahora (la 8.2) fue lanzada hace dos años y medio, pero desde hace unos días está disponible la nueva versión 9.0 que, al margen de algunas correcciones de errores, incluye exclusivamente una única novedad en lo que se refiere a nuevas funcionalidades: un nuevo lenguaje de scripting. "¿Y eso es una gran novedad?", os preguntaréis. Y sí, lo es.
Uno de los grandes atractivos de Vim radica en todas las tareas que facilita llevar a cabo gracias a sus completas combinaciones de teclas y la posibilidad de usar macros; mientras lo usemos, podemos olvidarnos del ratón y del menú de herramientas: todo está a unos cuantos golpes de tecla de distancia.
Desembarca Vim9Script
Pero cuando incluso los marcos resultan insuficientes para realizar de manera solvente la tarea requerida, Vim contaba ya con un lenguaje de scripting interno —Vimscript— que facilitaba la automatización de tareas complejas, así como la creación de extensiones. No temáis: Vimscript seguirá estando disponible también la nueva versión de Vim para salvaguardar la retrocompatibilidad.
Sin embargo, en esta nueva versión se introduce un nuevo lenguaje de scripting, el Vim9Script cuyo objetivo es el de mejorar "dramáticamente" el rendimiento de los scripts. De hecho, según han anunciado sus desarrolladores, las funciones compiladas de Vim9Script se ejecutan ahora entre 10 y 1000 veces más rápido que las desarrolladas con Vimscript.
Realmente, los cambios de sintaxis entre ambas versiones son relativamente modestos —si bien intentan acercarlo a los estándares de otros lenguajes conocidos, como JavaScript—; las diferencias importantes radican en aspectos como la diferenciación entre variables/funciones locales versus globales, y en que las funciones definidas con :def se compilarán antes de ejecutarse. También habrá diferencias menores en la gestión de errores.
Bram Moolenar, el creador y aún responsable del desarrollo de Vim, explicaba lo siguiente en una entrevista publicada el pasado mes de enero:
"Vim9 no es un 'fork', sino el siguiente paso en la mejora de Vim. Primero hice un experimento para comprobar si compilar una función en bytecode funcionaría para hacer que el script de Vim funcionara mucho más rápido. Resultó que funcionó bien, pero requirió hacer cambios en la sintaxis.
No fue una decisión fácil la de optar por admitir dos variantes de un lenguaje de script al mismo tiempo, pero creo que funcionará y hará felices a los escritores de complementos. […] Cada cual puede decidir qué sintaxis usar en cada archivo y cada función".
Ver todos los comentarios en https://www.genbeta.com
VER 2 Comentarios