Blog

Go: el lenguaje que vino a desafiar lo establecido

Go (también llamado Golang o Go language) es un lenguaje de programación de código abierto de propósito general, que fue desarrollado por ingenieros de Google para crear software fiable y eficiente. El lenguaje se diseñó inspirándose en la productividad y relativa simplicidad de Python, más la capacidad del clásico lenguaje C++. Algunos de los problemas de Go son sus tiempos de desarrollo lento, las dependencias de otros lenguajes y la duplicación de esfuerzos, pero tiene importantes virtudes y eficiencias, especialmente para crear microservicios.

Go comenzó a diseñarse en 2007 por desarrolladores de Google que querían crear un lenguaje de programación que fuera más fácil de usar, pero que aún tuviera las características útiles que se encuentran en otros lenguajes, como C ++, Python o JavaScript. Además, a medida que los procesadores de múltiples núcleos se hicieron más populares, fue necesario desarrollar un lenguaje con niveles de productividad más altos.

En 2008, el lenguaje comenzó a tomar forma, ya que pasó de las etapas de prototipo y se anunció públicamente en 2009. En ese mismo año, Go también se convirtió en un proyecto de código abierto, en el que los miembros de la comunidad podían proponer ideas y código. La versión 1.0 se lanzó posteriormente en 2012.

A lo largo de los años, se agregaron nuevas actualizaciones y características, como en 2018, cuando se incluyeron genéricos y manejo de errores. La popularidad de Go ha seguido creciendo y fluctuando.

¿Qué aporta Go?

Entre sus ventajas, destacan ciertas características interesantes, como su biblioteca estándar, la gestión de paquetes, o la escritura estática y el soporte a pruebas, así como su independencia de las plataformas. Go también admite pruebas unitarias para ejecutarse en paralelo con código escrito. Además, debido al diseño modular de Go, el código se puede compilar en casi cualquier plataforma.

Go utiliza procesos ligeros que permiten el procesamiento simultáneo y se comportan como subprocesos. La sintaxis imitará patrones que se ven comúnmente en lenguajes dinámicos. Algunas de las herramientas de Go que vale la pena destacar son su función “Gofmt”, que automáticamente formatea y aplica sangrías al código para facilitar su lectura, “Go run” que compila y ejecuta código simultáneamente, “Go get” que se integra perfectamente con GitHub y “Godoc”, que genera documentación basada en HTML, sobre la estructura del código y con los comentarios del desarrollador.

Go es utilizado por varios equipos de desarrollo de software y diferentes programadores. Las aplicaciones que utilizan Go incluyen servicios de contenedores como Docker y Kubernetes, servicios en la nube como, Terraform y OpenShift, herramientas de orquestación de servicios como Juju y otras aplicaciones, como las redes Bitcoin, por ejemplo, Lightning Network.

Go tiene características comparables a otros lenguajes de programación, pero proporciona una alternativa única en general. El principal objetivo del diseño de Go es facilitar la compilación rápida, a diferencia de otros lenguajes comunes.

En comparación con C ++, Go reduce la cantidad de errores y dependencias en tiempo de ejecución, además de aumentar la seguridad y la gestión de la memoria. Ruby proporciona un enfoque más seguro, pero requiere un intérprete y tarda más en compilarse. Java es otro lenguaje de programación popular; sin embargo, requiere una máquina virtual para ejecutar el código. Go elimina esta necesidad y combate la complejidad del código Java.

Los desarrolladores eligen Go, cuando quieren un lenguaje de programación que sea bueno para el desarrollo web, el desarrollo front-end, las secuencias de comandos y las aplicaciones de servidor de red. Debido al rápido tiempo de inicio del lenguaje Go, la baja sobrecarga del tiempo de ejecución y la capacidad de ejecutarse sin una máquina virtual, Go se ha convertido en un lenguaje muy popular para escribir microservicios, por ejemplo. Además, también se puede utilizar para la programación simultánea y para ejecutar varias tareas a la vez.

En estos años, ya se ha situado entre los diez principales lenguajes de programación más solicitados, solo detrás de otros lenguajes muy conocidos, como JavaScript o Python.