Registro de decisión de arquitectura: lenguaje de programación Go
Título: Adopción del lenguaje de programación Go
Estado: Aceptado
Contexto
Nuestra organización ha usado principalmente el lenguaje de programación Java para construir aplicaciones web. Sin embargo, hemos tenido algunas dificultades debido a lo verboso de Java y a la complejidad de algunos frameworks. Además, nuestro equipo ha mostrado interés en explorar lenguajes de programación modernos para un desarrollo más eficiente y sólido. Tras investigar, hemos identificado Go como una posible solución a los problemas que enfrentamos con Java.
Decisión
De ahora en adelante adoptaremos el lenguaje de programación Go para construir aplicaciones web.
Justificación
Simplicidad y legibilidad: Go es conocido por su simplicidad y su sintaxis concisa. Esto facilita leer y escribir código, y reduce la complejidad de nuestro proceso de desarrollo.
Alto rendimiento y escalabilidad: Go se compila a código máquina que se ejecuta de forma nativa en el servidor. Esto se traduce en tiempos de ejecución más rápidos y un mejor rendimiento en comparación con lenguajes interpretados como Java. Además, el modelo de concurrencia de Go maneja varias solicitudes simultáneamente, lo que lo hace muy escalable.
Sólido apoyo de la comunidad: Go tiene una comunidad vibrante de desarrolladores que han contribuido a su crecimiento a lo largo de los años. Esto significa que hay abundantes recursos, bibliotecas y frameworks que nos ayudan a empezar y a construir aplicaciones sólidas.
Flexibilidad: Go puede usarse tanto para el desarrollo de front end como de back end. Esto significa que podemos aprovechar sus ventajas en ambas áreas en nuestros proyectos de desarrollo.
Implicaciones
Capacitación: nuestros desarrolladores tendrán que recibir capacitación para aprender el lenguaje de programación Go y sus particularidades.
Experiencia: podemos enfrentar algunas dificultades en la transición de Java a Go. Puede llevar algo de tiempo que nuestros desarrolladores se vuelvan competentes en el nuevo lenguaje.
Herramientas: tendremos que adoptar nuevas herramientas y frameworks específicos de Go. Sin embargo, podemos aprovechar la infraestructura existente para minimizar el impacto de este cambio.
Dependencia de un proveedor: Go es un lenguaje de programación de código abierto y no estaremos atados a ningún proveedor ni prestador de servicios.
Conclusión
La adopción del lenguaje de programación Go nos ayudará a mejorar nuestro proceso de desarrollo y a construir aplicaciones sólidas. Tendremos que invertir recursos en capacitación y herramientas para respaldar esta transición, pero creemos que los beneficios de esta decisión superan los costos.