705 - Así se programa más rápido, Zed, el editor ultra veloz

705 - Así se programa más rápido, Zed, el editor ultra veloz

#zed es el editor ultra rápido con el que programar es una auténtica delicia, veloz, minimalista, configurable y extenible

1:25
-3:15

Llevo algunos meses siguiendo la evolución de Zed. Lo instalé en su momento, lo probé, pero no me terminaba. Por algún tipo de razón no me terminaba de cuadrar. ¿Puede ser que tenga el síndrome de Estocolmo con Neovim?. Ni idea. Sea como fuere, el pasado miércoles, en el tópico de Editores del grupo de Telegram de atareao con Linux, Paco, se adelantó al propio correo de Zed, que me llegaría unos minutos mas tarde, y puso un enlace al blog de Zed donde decían que habían añadido una característica realmente interesante como es la depuración. Como te puedes imaginar, me falto tiempo para actualizar mi versión de Zed, y comenzar a darle una oportunidad mas a fondo a este fantástico editor de código, que está disponible para Linux y MacOS.

Así Se Programa Más Rápido, Zed, el Editor Minimalista y Potente

Al margen

Antes de que se me olvide, dos asuntos que quería comentar… El primero es que he estado actualizando el bot que publica los tips en el grupo de atareao con Linux de Telegram. Hasta la fecha, lo estaba haciendo publicando con HTML, y he decidido pasarlo a MarkdownV2. Estos días he estado haciendo algunas pruebas y parece que está funcionando como se espera. Tengo que decir, que solo he actualizado uno de los dos expertos, el correspondiente a Python. Si todo va bien, en los próximos días actualizaré el otro.

El segundo de los temas está relacionado directamente con este nuevo episodio. Hace ya algún tiempo hice un episodio sobre fondos de pantalla. En concreto hace casi seis años, y fue el episodio 94, titulado Fondos de pantalla productivos. En este episodio trataba un sistema para aprender esos atajos de teclado que solemos utilizar. Para ello con una plantilla en SVG se podía hacer una chuleta, que posteriormente se exportaba a PNG y la tenías de fondo de pantalla para aprender esos atajos, o simplemente para que te resultara más sencillo de consultar.

Hace ya algún tiempo que decidí ir migrando algunos de esas chuletas o fondos de pantalla de SVG a Typst, porque realmente tenía mas sentido. Así, que hoy te traigo exactamente el de Zed, en formato PDF, y que te dejo aquí por si lo quieres descargar. Por supuesto que el resto de fondos de pantalla, las puedes encontrar en el repositorio en Github.

Atajos de teclado de Zed

Un paseo por el pasado

Te diría que empecé con Vim aproximadamente en el 2019, si no es que fue antes… Y en el momento que entendí el lenguaje de Vim, todo comenzó a tener sentido. Me resisistí a dar el salto a Neovim, al menos 3 años, quizá con la llegada de Lua como lenguaje para realizar los scripts en Neovim, y el Protocolo de Servidor de Lenguaje (LSP). A partir de ahí, he disfrutado y sufrido con este increible y extensible editor. Y digo que he sufrido, porque he tenido que pelear con distintas gestores de paquetes y configuraciones hasta llegar a la configuración que hoy me tiene realmente enamorado.

Sin embargo, eso no quita, que vaya, puntualmente probando otros editores. Es mas, en otros entornos, utilizo otros editores, como puede ser Visual Studio Code, PyCharm o Idea. Todo dependiendo de que es lo que quiera hacer o programar, según sea el caso.

Así, incluso, para escribir los artículos y los guiones, sigo prefiriendo Neovim, sobre Obsidian. Me resulta mas lígero, práctico y cómodo utilizar mi editor por defecto… Salvo para la sincronización, claro.

Zed

¿Que es Zed?

Zed es un editor de texto moderno, ultrarrápido y diseñado para la colaboración en tiempo real. Es el resultado del trabajo de un pequeño grupo de personas que anteriormente participaron en el desarrolló Atom, y ahora han formado una nueva empresa llamada Zed Industries, que es la que está detrás de esta nueva herramienta. Zed se centra en ofrecer un rendimiento excepcional, con una interfaz limpia y moderna, y funcionalidades colaborativas nativas. En concreto, estos socios fundadores, por llamarlos de alguna forma, son,

  • Nathan Sobo: Fue el líder del equipo de Atom en GitHub y co-lideró el desarrollo de Teletype para Atom, que fue pionero en la colaboración de texto en tiempo real.
  • Antonio Scandurra: Se unió al equipo de Atom en 2014 y también participó en la arquitectura de Teletype, investigando las bases de lo que hoy es Zed. Es un experto en sistemas distribuidos.
  • Max Brunsfeld: Fue una figura clave en el equipo de Atom y es el creador de Tree-sitter, el framework de análisis sintáctico que es fundamental para el rendimiento y la inteligencia de código en Zed (y en otras herramientas de análisis de código).

Zed ze centra en la velocidad, el rendimiento y la colaboración. Nace de la necesidad de un editor que sea potente como VS Code, rápido como Vim/Neovim, y con colaboración nativa. Zed está implementado en Rust y utiliza la GPU para un rendimiento gráfico excepcional, lo que lo hace increíblemente rápido.

Las características de Zed

Las características principales de Zed incluyen,

  • Rendimiento Extremo, cuando lo pruebas, lo primero que notas es lo fluido que es. Abrir proyectos grandes, buscar en archivos, todo va como un rayo. En mi caso, lo he notado sobre todo en los tiempos de apertura. Mientras que con Visual Studio Code, puede tardar unos segundos en abrir la aplicación, en el caso de Zed, es tan rápido como con Neovim o Vim. Y lo mismo, es la sensación que experimentas cuando escribes código, no tiene nada que ver.
  • La otra gran característica que cabe resaltar es la colaboración en tiempo real. Sin embargo, poco te puedo decir de esta característica, porque actualmente no he podido colaborar con nadie. Así que tendré que esperar a probarlo para hablarte de ella.
  • Terminal Integrado. Este es un imprescindible de hoy en día para cualquier editor que se precie. El funcionamiento es como te puedes esperar.
  • Nada mas instalarlo, no tienes que configurar nada. Tiene soporte para los principales lenguajes. En mi caso particular, que he estado trabajando con Rust, Python y TypeScript, funciona a las mil maravillas, y tanto el resaltado de sintaxis, como las otras características fundamentales de cualquier editor, están ahí para disfrutarlas.
  • Por otro lado, tiene todas esas características que encuentras en los editores mas actuales, como la paleta de comandos, la configuración en JSON, etc.
  • La interfaz es realmente limpia, y es altamente configurable, con la posibilidad de personalizar los atajos de teclado. Por ejemplo, en mi caso, cambié el de terminal, para que fuera Ctrl+ñ, y no se me diera problemas con mi teclado.

Ventajas y desafíos

Sobre las ventajas de Zed respecto a otros editores, podría destacar, al menos los siguientes,

  • Velocidad inigualable, desde luego esta es su carta de presentación. Sin ninguna dudas, es una de sus características principales, y lo cierto es que solo por esto, ya vale la pena darle una oportunidad. Como te he comentado, prácticamente no noto diferencia alguna entre iniciar Zed comparado con Neovim.
  • Colaboración nativa, muy potente y fluida. Esto viene de la documentación, porque como te comenté anteriormente, todavía no tuve la oportunidad de probarlo.
  • Moderno y eficiente, para equipos y desarrolladores que buscan lo último. En cuanto a los desafíos y las cuestiones a tener en cuenta,
  • Ecosistema de extensiones, aún no tiene la madurez de otros editores como VS Code. Es un punto en desarrollo. Esto es probablemente el talón de Aquiles de esta aplicación, que es lo que ha sucedido en otros ecosistemas completamente diferentes a este.
  • Funcionalidades específicas, puede que le falten algunas características muy nicho que editores más veteranos ya tienen, pero se va actualizando constantemente. No tienes mas que ver, que recientemente añadieron la tan deseada depuración.
  • Curva de aprendizaje pronunciada, dependiendo sobre todo de ro editor, como cualquier cambio, requiere un pequeño tiempo de adaptación a sus atajos y flujo.

Instalación y configuración básica

Respecto a la instalación, indicarte que está disponible tanto en Linux como en MacOS. En el caso particular de ArchLinux, lo puedes instalar directamente desde los repositorios oficiales con tan solo ejecutar el siguiente comando,

sudp pacman -S zed

En otros casos, siempre puedes recurrir a ejecutar la siguiente instrucción en la línea de comandos,

curl -f https://zed.dev/install.sh | sh

En cuanto a la configuración, no necesitas realizar ninguna configuración, previa, ni instalar extensiones, ni nada por el estilo. Desde luego, este es el punto, en el que está muy por delante de Neovim. Y una de las razones por las que he querido darle una oportunidad. Tengo que confesarte que mantener la configuración de Neovim, es un auténtico dolor, por el puzzle de complementos que estoy utilizando.

A pesar de ello, si que hice algunos cambios mínimos en la configuración que puedes encontrar en mis Dotfiles.

Mi experiencia con Zed

Con el objetivo de probar a fondo Zed, he comenzado un pequeño proyecto que se llama LiLa, y que no es ni mas ni menos que un Lanzador de Aplicaciones para Linux. La idea viene de ULauncher, sin embargo, quiero darle otro enfoque, y por supuesto partir de Rust, para que sea más rápido. Ya te iré contando como va este proyecto, aunque puedes encontrar LiLa en GitHub, aunque actualmente está en pleno desarrollo y es incapaz de hacer nada.

Durante estos días desarrollando LiLa con Zed, me he sentido realmente cómodo. Lo primero, es que no necesité configurar nada para comenzar a programar, ni siquiera a depurar. Todo fue realmente muy sencillo.

Sin embargo, lo que mas me ha costado, es adaptarme a los nuevos atajos de teclado, y eso que estoy utilizando el modo Vim que viene de caja con Zed. Esto me ha facilitado mucho el trabajo. Sin embargo, tanto la paleta de comandos, como la configuración, todavía no me acostumbré. Y ya te digo, que todavía no he conseguido terminar de acostumbrarme. Tengo un buen trabajo por delante, pero creo que una vez superado Vim, cualquier otra cosa es simplemente coser y cantar.

Zed vs Neovim

Con el objetivo de que te puedas hacer una idea, hice un par de tablas comparativas. La primera es la de Zed con Neovim, y que puedes ver a continuación,

Característica PrincipalZedNeovim
FilosofíaRendimiento Extremo, Colaboración NATIVA, UI moderna.Editor modal en terminal, Altamente configurable.
Tipo de InterfazGráfica (GUI)Terminal (CLI)
RendimientoUltrarrápido (Rust, GPU), fluidez consistente en GUI.Extremadamente rápido (ligero), velocidad configurable.
ColaboraciónIntegrada y nativa (llamadas, cursores compartidos).Requiere plugins y configuración compleja.
Curva de AprendizajeMás baja (similar a VS Code/Atom).Alta (Modo Vim, configuración compleja).
PersonalizaciónBuena, a través de configuraciones y futuro ecosistema.Extrema (vía Lua y plugins masivos).
Ecosistema de PluginsJoven y en crecimiento.Maduro y muy extenso.
Modo VimExcelente soporte de modo Vim integrado.Es Vim, soporte nativo y completo.
Uso TípicoDesarrollo en equipo, proyectos grandes, rendimiento.«Power users», personalización total, entornos de terminal.
Disponibilidad en LinuxSí (versión preview)Sí (totalmente nativo).

Tengo que decirte, que todavía no me he acostumbrado a los atajos de teclado de Zed, lo que me hace que siga utilizando el ratón mucho mas de lo que me gustaría. De la misma forma, me resulta muchos más práctico ir abriendo y cerrando Neovim, que hacerlo con Zed… Pero entiendo que esto es algo que irá cambiando con el tiempo.

Zed vs Visual Studio Code

La segunda tabla comparativa es la de Zed con Visual Studio Code, que puedes ver a continuación,

Característica PrincipalZedVisual Studio Code (VS Code)
FilosofíaRendimiento Extremo, Colaboración NATIVA, UI moderna.Editor de código ligero, altamente extensible, con fuerte soporte de Microsoft.
Tipo de InterfazGráfica (GUI)Gráfica (GUI)
RendimientoUltrarrápido (Rust, GPU), diseñado para mínima latencia.Muy rápido y responsivo, pero puede ser más exigente con recursos en proyectos muy grandes o con muchas extensiones.
ColaboraciónIntegrada y nativa (llamadas, cursores compartidos).Requiere extensión de terceros (ej. Live Share).
Curva de AprendizajeBaja (intuitivo, similar a otros editores modernos).Baja (muy accesible para principiantes, interfaz familiar).
PersonalizaciónBuena, a través de configuraciones y futuro ecosistema de extensiones.Extrema (a través de configuraciones y un vasto marketplace de extensiones).
Ecosistema de PluginsJoven y en crecimiento (aún limitado).Masivo y muy maduro (miles de extensiones para todo).
Modo VimExcelente soporte de modo Vim integrado.Soporte a través de una extensión (Vim).
Uso TípicoDesarrollo en equipo, proyectos grandes, rendimiento prioritario.Desarrollo general, cualquier tamaño de proyecto, amplio soporte de lenguajes y herramientas.
Disponibilidad en LinuxSí (versión preview)Sí (completamente nativo y estable).

Conclusión

Desde luego, que le voy a dar una oportunidad a este editor. Solo por la rapidez, y por la facilidad con la que comienzas a programar ya vale la pena. Y eso que todavía me queda probar la colaboración.

La cuestión es que tiene grandes retos por delante. Entra en un mercado donde Visual Studio Code, tiene la mayor parte de la tarta, y además se encuentra en un estado maduro y muy establecido. Y está el tema de las extensiones. Nos hemos acostumbrado al uso de las extensiones, y en el caso de Zed, puedes decir que se encuentra en un estado casi embrionario.


Más información,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *