En este blog ya escribimos un artículo sobre Go , el lenguaje de programación lanzado por Google allá por el año 2009 y que vino a resolver los problemas comunes de otros lenguajes. Pues bien, en esta nueva entrada vamos a intentar convencerte de que veas por qué es importante aprender este lenguaje de programación que está encandilando cada vez a más usuarios.

Los creadores de Go destacaron que fue desarrollado originalmente como un lenguaje para servidores . Sin embargo podemos decir sin error a equivocarnos que ha crecido, junto con su comunidad, para lograr realizar tareas mucho más generales. Podemos decir que Go es el camino rápido para escribir C . Cualquier cosa que pudieras programar en C, se podría hacer en Go hasta cinco veces más rápido , con errores mínimos y disfrutando realmente al escribirlo (cosa que rara vez ocurre en C.) La recolección de basura está muy bien conseguida, al igual que la ausencia del malloc propio de C.

Una de las principales características que destacan los que trabajan con Go es su altísima velocidad . Donde un código C se ejecuta muy rápido, el código de Go en realidad no se queda demasiado lejos. Antes de seguir ahondando en otras funcionalidades de Go, vamos a ver la sintaxis común y básica, algunos tipos básicos, y compararla con C.

En Go, la declaración de variables es muy concisa. En vez de declarar explícitamente el tipo de nuestra variable, la inferencia de tipo asigna el tipo e inicializa nuestra variable. Por ejemplo, si queremos declarar una variable simple:

En Go:
myVar := 33

En C:
int myVar = 33;

Como ves, se ahorra mucho en la sintaxis y podemos olvidarnos de colocar los punto y coma al final. Las funciones pueden devolver varios valores con nombre y devolver un:
Result, err
Ahora veamos el famoso programa Hello World en Go y en C:

helloworld.c

#include <stdio.h>

int main ()
{
printf ("Hello World!\n");
}

helloworld.go

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello World!")
}  

Quizás este último ejemplo no sea el mejor, pues se usa menos código en C. Sin embargo, en términos de funcionalidad, la opción de Go es la mejor . Y se puede apreciar también en el ejemplo lo similares que son ambos lenguajes. Una vez visto un poco de código, vamos a comprobar en un ejemplo concreto si soporta las pruebas de carga. ¿Cómo de rápido es Go? Aquí vemos una comparación con varios programas simples pero repetitivos en Ruby:

govsruby

Como se puede comprobar, Golang es mucho más eficiente que Ruby. En el primer programa, ‘fasta-redux’, el programa tardó 110.37 segundos en ejecutarse y salir. Utilizando Go, lo hizo en tan solo 1,79 segundos, unas 100 veces más rápido.

Pero no todo es la velocidad de procesamiento. Go también maneja concurrencia de una manera mucho más favorable que la mayoría de los idiomas. Para ello utiliza hilos muy ligeros llamados Goroutines . Estas Goroutines se pueden multiplicar en miles. Por lo tanto, tenemos útiles paquetes por defecto, velocidades muy rápidas, una sintaxis excelente, concurrencia impresionante y cientos de recursos en línea para ayudarle en la experiencia con Go.

Conclusiones
No todo es brillante en Go. Tiene defectos en cuanto a las funciones de salida de paquetes por defecto o el conjunto de pruebas. Volviendo a los aspectos positivos, el lenguaje esta siendo ampliamente aceptado por start-ups y grandes empresas , además de muchos proveedores de Saas/Paas. Resumiendo, si estás buscando un lenguaje de programación concurrente, paralelo, simple, y con posibilidades de crecimiento para aprender, no busques más, Go merece la pena