Después de meses, incluso, años diría yo, resistiéndome a aprender TypeScript, finalmente he sucumbido a la tentación. Y si, la culpa de esto la tiene Rust, como lo estás leyendo. Levantar un servidor con Rust, y crear una API, es algo relativamente sencillo. Tan sencillo, que en estos últimos meses, he implementado distintos servicios con Rust. Pero, en todos ellos, he dado con un pequeño inconveniente, ni mas ni menos que el front. Hasta el momento, para pequeños proyectos, no he tenido grandes problemas. Sin embargo, conforme mis necesidades han ido creciendo, he visto en la necesidad de buscar una solución más sólida.
Introducción a TypeScript desde cero
¿Porque aprender TypeScript?
En los últimos tiempos me he visto empujado de forma gradual a un mayor uso de JavaScript, básicamente por que lo estoy utilizando con AGS en el escritorio, y porque lo quiero utilizar en el frontend de algunos desarrollos que estoy utilizando, de la mano de Svelte.
Svelte
Como te decía en la introducción, la cuestión es que en los últimos meses he implementado diferentes soluciones que tenía una parte de backend, implementado en Rust, y con la que he disfrutado muchísimo, y una parte de frontend. En principio, la parte de frontend era relativamente pequeña, y no era muy problemática.
La cuestión, es que he visto todas las posibilidades que ofrece esto, y he querido profundizar, y es cuando he encontrado, que si quería desarrollar servicios mas grandes, era necesario, utilizar un framework que permitiera desarrollar con comodidad. Tal y como lo estaba haciendo con Rust, pero por delante.
Llegados a este punto, estuve viendo las posibilidades que ofrecían los distintos framework, y finalmente elegí Svelte. Svelte, permite desarrollar tanto con JavaScript como con TypeScript. Inicialmente, no te engañaré, pensé porque aprender un nuevo lenguaje de programación, pero ¿por qué no aprender TypeScript?.
AGS
Otro de los proyectos personales en los que ando metido, es la personalización extrema de mi entorno de escritorio Linux. Y le he llamado personalización extrema, porque permite construir al mas mínimo detalle todas y cada una de las partes que lo componen.
Hace ya algunos años que estoy utilizando un tiling window manager como gestor de ventanas. El inconveniente de este tipo de escritorio, es que no es un escritorio completo, únicamente es un gestor de ventanas. Necesita de otras herramientas y complementos para dotarla de una funcionalidad completa. En este sentido, existe una gran cantidad de herramientas que te permite suplir estas deficiencias. Desde lanzadores de aplicaciones, sistemas de notificación y mucho mas.
Sin embargo, hace algunas semanas descubrí una solución implementada en TypeScript que permitía implementar todo aquello que no se encontraba en un tiling, y esta solución estaba desarrollada en TypeScript. Así que otra razón mas para aprender este lenguaje de programación.
¿Y por qué no JavaScript directo?
Pues realmente, hasta la fecha, era lo que estaba haciendo. Sin embargo, TypeScript, aporta una serie de características que hacen la programación mas confiable. Desde luego que la gran ventaja que ofrece TypeScript frente a JavaScript es el tipado estático. Así, esto se puede resumir en lo siguientes puntos,
- Detección de errores en tiempo de compilación: Esto que significa que los errores relacionados con los tipos se identifican antes de que se ejecute el código. Esto ayuda a prevenir muchos errores comunes que podrían surgir durante la ejecución del programa.
- Código más robusto y predecible: Al tener tipos definidos de manera explícita, el código se vuelve más robusto y predecible. Esto facilita la comprensión del código y reduce la posibilidad de errores relacionados con el tipo de datos.
- Mejora la calidad del código: El tipado estático fomenta una mejor organización del código y la escritura de funciones más específicas y claras. Además, facilita la lectura y mantenimiento del código, ya que los desarrolladores pueden entender más rápidamente cómo se espera que se use cada parte del programa.
- Autocompletado y sugerencias más precisas: Los entornos de desarrollo integrados (IDE) que admiten TypeScript pueden proporcionar autocompletado y sugerencias más precisas gracias a la información de tipos estáticos. Esto mejora la productividad del desarrollador y reduce la probabilidad de errores tipográficos.
- Refactorización segura: Las herramientas de refactorización pueden operar de manera más segura y eficiente cuando se dispone de información de tipos estáticos. Esto facilita la reestructuración del código sin introducir errores no deseados.
- Documentación mejorada: Al tener tipos explícitos, la documentación del código puede generarse de manera más precisa y completa. Esto beneficia a los desarrolladores que necesitan entender cómo usar diferentes partes del código.
El vídeo
A continuación encontrarás lo mismo que has podido leer hasta aquí pero en formato vídeo
Conclusión
Son estos dos framework los que inicialmente me han impulsado a aprender TypeScript, para así de forma clara mejorar en mis desarrollos, y poder hacer crecer mis aplicaciones de una forma mas sostenible en el tiempo.