• info@moldeointeractive.com.ar
  • +54-911-25601603

Hemos probado la Windows Terminal

Nota de opinión

Ignacio Buioli
- 24/06/2019

Linux y Windows son mundos a parte que cada vez más se acercan. En su momento, Linux pasó a utilizar interfaces gráficas para atraer nuevos usuarios y mantener a los clásicos usuarios de Linux, a los que por mucho que les guste trabajar en terminal estaban pidiendo algo un poco más digerible. Lo mismo pasó con la introducción de Wine a distros de Linux, pero desde entonces ha pasado mucha agua debajo del puente.

Hace aproximadamente 3 años que estamos viviendo un comportamiento, a priori, no habitual en Microsoft; y es que con el cambio de dirección también cayeron un poco en la cuenta de que el Open Source es el módelo de negocios del software actual. Primero crearon el VS Code, uno de los mejores editores de código en el mercado (el cual es completamente gratuito y posee versiones abiertas, incluso funciona muy bien en RasPi). Luego desarrollaron la WSL, un sistema para integrar Linux directamente dentro de Windows y ejecutar comandos mediante una simple terminal, de hecho ya está en fase de pruebas la WSL2, que incluye un kernel propio de Linux dentro de Windows, mejorando el rendimiento y la compatibilidad. Nos sorprendió, además, la compra de GitHub por parte de Microsoft, y por el momento han mantenido la esencia del popular sistema de repositorios remotos, agregando incluso la opción de crear repositorios privados de forma gratuita. Con todo esto, no debe sorprendernos que Microsoft decidió, por fin, hacer una Terminal como la gente.

La anunciaron hace unos meses, con bombos y platillos (como si fuese un nuevo teléfono móvil) a través de su canal de Youtube. Debo decir que han acertado, es exactamente una de las cosas que se necesitaban para desarrollar sobre Windows (que pese a todo, cada tanto toca meternos a realizar ciertas maniobras). El problema de Windows en sí es que posee muchas arquitecturas para comandos: la tradicional cmd, su intento de reemplazo llamado PowerShell, y ahora se le suman todas las terminales Linux de tipo WSL (si, en plural, ya que es posible descargarnos una por distribución e incluso por versión). Francamente, hay muy buenas terminales de terceros, como Hyper; pero en Windows les cuesta un poco poder administrar la ramificación de terminales. En ese caso, es muy positivo la propuesta de Windows Terminal -proyecto Open Source subido a GitHub- que se propone brindar la administración de terminales mediante el uso de pestañas que ejecuten internamente una terminal distinta. Es un concepto simple, pero realmente soluciona varios problemas de Windows y no había sido propuesto antes.

En Moldeo Interactive somos amantes de Linux, y justamente por eso nos gusta que se lleguen a acuerdos donde se ve a Linux dentro de Windows, pero sobre todo donde Windows deje un poco esa arrogancia y le de herramientas de buen nivel a los desarrolladores que deseen trabajar ahí, o que eventualmente tengan que trabajar sobre sistemas operativos de Windows (como es nuestro caso). Un mundo con más cuota del mercado para Linux sería genial; un mundo donde el único sistema operativo fuese Linux no sería tan agradable; mejor que las personas puedan elegir con libertad. Eso es otra discusión, el punto es que la Windows Terminal entró en fase de Preview (es decir, están probando para sacar una alpha, por lo tanto es muy verde el asunto) que se puede descargar desde Microsoft Store; y nosotros decidimos probarla en una computadora con Windows que usamos cada tanto para ciertas labores. Comenzamos, entonces, con esta review de la Windows Terminal Preview. Para los interesados en saber las condiciones técnicas de la computadora donde hicimos las pruebas, adelantamos que es una máquina que está muy bien, pero no se trata de nada del otro mundo: Intel i7 8° Gen, 8 Gb de Ram, disco duro SSD de 500 Gb, Gigabyte H3670M D3H. Se trata, sin embargo, de una máquina muy nueva (con menos de 5 meses de uso).

Rendimiento

Voy a empezar con lo mejor que tiene esta terminal. ¿Rendimiento de una Terminal? Muchos sabrán de lo que estoy hablando, pero lo comento al paso. Una terminal es un programa que envía comandos a "otro software", el cual se encarga de ejecutarlos y devolver una respuesta que será visualizada en la propia terminal. Ese "otro software" se encuentra a un nivel muy bajo, casi código máquina, pero la comunicación de envío-recepción por parte de la terminal es fundamental. Las terminales actuales no son cajas negras con texto blanco (al menos no son eso solamente). Hoy en día algo tan simple como el resaltado de color se ha vuelto fundamental, el uso de múltiples pestañas, terminal dividida en paneles, personalización, inclusive la posibilidad de agregar addons. Y si, somos muy quisquillosos también, porque en el fondo es una terminal, queremos que abra rápido y que no demore nada al escribir texto y recibir logs. Y sobre esto la verdad es que parece ser el punto donde más decidió dedicar el equipo de desarrollo, ya que es la terminal que mejor funciona en Windows. Ayuda el hecho que sea una App nativa, programada en C# (por ejemplo, Hyper está programada con Electron y se nota la demora al abrir). La aceleración en el renderizado de texto también aporta lo suyo. Es lo mejor que ha mostrado hasta ahora la Windows Terminal, cumple con lo que dice, abre rápido, no se traba, puede manejar una cantidad insana de pestañas con la misma facilidad que lo hace con una, buen rendimiento para una versión Preview.

Interfaz

Entramos a los puntos complicados. En el video la interfaz se ve muy orgánica, simple, pocos botones pero una terminal no necesita mucho. Sin embargo, en esta versión preview se la siente tosca. Desde lo visual -hablamos de lo menos importante- no está muy bien armada, las pestañas son por momentos muy grandes, el botón para agregar una nueva pestaña es enorme sin razón y está muy mal ubicado. Funcionalmente hay mil problemas también, la barra de pestañas es casi toda la barra superior, por lo tanto solo hay un espacio mínimo que permite draguear. De igual manera, cuando se agregan muchas pestañas se pierden las nuevas (quedan cortadas) y solo se puede acceder mediante el uso de la rueda del mouse, lo cual es una funcionalidad muy interesante pero le falta información desde lo visual y una opción para hacerlo sin la rueda del mouse. A todo esto se suman muchos errores visuales al cambiar de tamaños o resolución, todo se puede consultar en una mega-issue en el github de la Windows Terminal, e incluso reportar otros errores visuales.

Funcionalidad

Otro de los puntos flojos de esta terminal, le falta de todo y lo poco que tiene lo hace regular. Para copiar/pegar utiliza el sistema clásico con el click derecho del mouse, algo que a dia de hoy queda un poco obsoleto. Uno espera que se despliegue un menú con las opciones de copiar/pegar y dividir la terminal en paneles. Pero en este caso hay que ser piadosos, a Hyper le tomó muchas versiones poder incluirlo y que funcione bien. Otro tema a considerar es el scroll, el cual funciona bien en una vista normal, pero al momento de pasar a una vista como la del Nano o Vim se encuentra completamente deshabilitado, sin contar que hay errores al hacer scroll hacia arriba. Esto es algo normal en las terminales, les cuesta entender bien el funcionamiento de la WSL, pero para la Windows Terminal sería una forma muy buena de sobresalir del resto. Por otro lado, permite renderizar emoticones, cosa que parece importarle mucho a Microsoft con esta Terminal, pero la verdad aún no vemos ningún utilidad práctica.

Herramientas

Es un si y un no. Lo importante es que la terminal es Open Source y tiende a ser lo más personalizable posible, lo que permite agregar una cantidad interesante de pestañas con una configuración propia, rutas y lineas de comando. Por ejemplo, es posible tener una pestaña con WSL de Ubuntu y otra que ejecute SSH para conectarnos a un servidor. No queda claro cual será el límite final, por el momento soporta 9 perfiles, esperemos que desarrollen alguna manera de poder tener más, es muy útil para trabajar con servidores (pero si es verdad que quedaría limitado con los shorcuts). El problema es la parte de settings, ya que la única forma de configurar algo es modificando un JSON. Esto es bastante normal, pero tratándose de Windows se espera una mínima interfaz gráfica, especialmente porque la documentación del JSON es, de momento, inexistente. Por suerte ya hay información y parece que está en el roadmap de la versión 1.0 final. Lo de los shorcut está interesante, pero por el momento algunas combinaciones entran en conflicto con las de programas usados en entornos Unix. Por ejemplo, en Nano Control+W es para buscar un término, en este caso cierra la pestaña, algo peligroso. Destacamos, aún así, lo personalizable que es, ya que los shortcut se pueden personalizar en Settings.

Conclusiones

¿La terminal es buena? Sí. ¿La puedo usar para trabajar? Sí, pero yo me esperaría a una versión más completa. Actualmente en la parte de proyectos llevan un roadmap muy grande de aquí a la versión 1.0, con múltiples incidencias. Con lo cual deberemos esperar un poco (al parecer una versión más interesante estará disponible para fin de este año). Mientras tanto, invito a probarlo y a reportar issues, aprovechando esta nueva etapa open source de Microsoft.