Un poco de historia...

Hmm... haciendo memoria, veo que ya encontré el editor de texto definitivo hace unos cuantos años: Enki. Pero definitivamente no era el definitivo.

Hace menos años empecé con Atom. Para mí fue amor a primera vista: unas tecnologías atractivas (Electron, CoffeeScript/ECMAScript, CSON...), completamente hackeable, una comunidad grande y activa, pensado para trabajar principalmente con el teclado, con una gran empresa detrás (GitHub) que garantiza su mantenibilidad a largo plazo...

Pero, a pesar de los avances que cada vez iban a mejor con el asunto del rendimiento, lo cierto es que a día de hoy sigue teniendo un rendimiento nefasto en muchísimas de sus áreas.

Con el trabajo que estaba haciendo recientemente, empezaba a notar demasiado que su bajo rendimiento me afectaba a la hora de trabajar, así que decidí probar aquello que muchos recomendaban: Visual Studio Code.

La toma de contacto

Mi primera toma de contacto con Code ha sido muy buena. Realmente, diría que la mejor de entre todos los editores/IDE que he probado en mi vida.

La UI que se presenta a primera vista es sumamente limpia y bien organizada.

[caption id="attachment_2004" align="alignnone" width="1366"]Visual Studio Code Aspecto general[/caption]

  • A la izquerda tenemos una barra vertical de iconos con las secciones principales:
    • Explorador. Donde pasamos la mayor parte del tiempo. Contiene el listado de editores abiertos y el árbol de directorios del proyecto actual, si lo hay.
    • Búsqueda.
    • Control de versiones, que por defecto viene con soporte para Git. Permite realizar de manera bastante cómoda la mayoría de operaciones comunes.
    • Depurador.
    • Gestor de paquetes.
  • Según la sección en la que estemos, la siguiente barra vertical cambiará. En la foto aparece la del explorador.
  • La ventana principal del editor, con sus pestañas en la barra superior.
  • La barra inferior muestra algo de información interesante como:
    • Errores de linters.
    • Estado del VCS.
    • Configuración del editor actual.
    • Lenguaje.

Me estoy dejando algunas cosas porque no quiero hacer de esto un repaso intensivo de la UI de Code; tan solo destacar que es una UI muy amigable, que se siente ligera como un editor de texto, pero potente como un IDE.

Diferencias con Atom

Primero, la que considero que es una buena característica en la que Atom gana: puedes tener más de una carpeta en un proyecto. En Code, un proyecto = una carpeta (de momento), así que si quieres irte a otro tienes que abrir otra ventana o cambiar de proyecto.

Pero diría francamente que las ventajas de Atom terminan ahí...

En cuanto a Code, es muy notable que tiene un rendimiento muy superior. Hagas lo que hagas, Code va ligero. Cosas como cambiar de proyecto o usar edición múltiple en cientos de sitios del mismo fichero, que en Atom son auténticos cuellos de botella, Code las solventa sin despeinarse.

Code además incluye de fábrica muchísimas cosas que en Atom necesitarías un paquete (o decenas de ellos) para hacer. Por ejemplo:

  • Depurador.
  • Visor de estado del VCS, con herramientas para las operaciones básicas.
  • Gestor de tareas.
  • Terminal integrada.
  • Minimapa.
  • Iconos diferentes por tipo de archivo.
  • Listado de editores abiertos.
  • Gestor de proyectos.

Para algunas de estas cosas (y muchas otras), tienes que entrar en la configuración, pero nuevamente tiene un gestor de configuración (que se guarda toda en JSON bajo $XDG_CONFIG_HOME, no como Atom) muy interesante y amigable.

Todo esto hace que prácticamente estemos hablando de un mero editor de texto contra un completo IDE. Normalmente siempre he tirado más hacia los editores de texto, pero lo cierto es que cuando tienes un IDE que funciona más rápido y es más fácil de usar que un editor, ¿qué ventajas le quedan al editor?

Ah y no me quiero olvidar de que con Code tienes repositorio para apt y yum/dnf para que puedas recibir las actualizaciones automáticamente en Linux, cosa que en Atom llevamos reclamando 3 años ya...

Las extensiones

Esto no lo catalogaré como diferencias a nivel técnico, ya que ambos tienen un buen gestor de extensiones que es muy flexible y tienen gran cantidad de ellas disponibles gratuitamente.

Donde sí se nota una gran diferencia es en la filosofía que se percibe detrás del ecosistema de extensiones de cada editor.

Cuando uno llega a Atom, prácticamente no le queda más remedio que ponerse a buscar e instalar como mínimo una decena de complementos comunitarios para empezar a trabajar. Los complementos en Atom tienden a ser la mínima expresión que cumple una determinada tarea. De hecho, Atom es en sí mismo una gran colección de complementos.

Sin embargo, al llegar a Code, no tienes un listado de complementos instalados de fábrica. Code es todo ello una sola pieza. Y por ejemplo, cuando te instalas la extensión para Python, tienes con todo lo que necesitas para desarrollar en el mismo paquete:

  • Soporte para virtualenvs.
  • 6 linters diferentes.
  • Autocompletado inteligente con ayuda.
  • Formateadores de código automáticos.
  • Refactorización.
  • Navegación en el código.
  • Depuración local y remota (ideal para Docker).
  • Ejecución de tests.

Y todo ello conectando Code con las herramientas que ya existen en el ecosistema Python y que hacen estas tareas (es decir, sin inventar demasiadas cosas).

Conclusión

Era reticente a usar Code, supongo que quizás por el concepto que tenía en la cabeza de Microsoft, y la mala experiencia que he tenido durante mucho tiempo con sus productos. Pero está claro que están cambiando de mentalidad (recordemos que Code tiene licencia MIT) y la cosa está funcionando bien.

La experiencia ha sido tan positiva, que me quedo con Code, sin ninguna duda. ¿Y tú? ¿Te animas a probarlo? 😊