¿Por qué deberías aprender Golang en 2021?

golangWallpaper

Golang es un lenguaje de programación creado por Rober Griesemer, Rob Pike y Ken Thompson, desarrolladores de Google. Desarrollado con el propósito de adaptarse a las nuevas circunstancias tecnológicas, para sustituir aquellos viejos lenguajes de programación como C, que a pesar de ser de los lenguajes más rápidos, también es uno de los más antiguos y por lo que muchos de los paradigmas para los que fue diseñado, ya están obsoletos.

Golang llega como un soplo de aire fresco capaz de desbancar a los antiguos lenguajes de programación, fusionando la rapidez y eficacia de C y C++, lenguajes en los que se basa, con la sencillez de uso de lenguajes de alto nivel como Python, dando lugar a una mezcla con la que sin tener muchos conocimientos sobre software o desarrollo, nos permite crear software muy eficiente y rápido, siendo así una mezcla perfecta para aquellas personas que quieren aprender a programar.

Además, Golang está teniendo un gran crecimiento, por lo que podrás encontrar una gran cantidad de tutoriales, asimismo tiene una gran comunidad de desarrolladores, y es un lenguaje buscado por grandes empresas como Google.

¿Pero… qué es Golang? 🤔

Golang comienza siendo un lenguaje de programación OpenSource, esto quiere decir que cualquiera puede descargar su código y experimentar con él. Además, es un lenguaje con tipado fuerte, lo cual evita confusiones a la hora de desarrollar código cuando se trabaja en equipo, por lo que ahorra tiempo a este.

A diferencia de lenguajes como Python que son lenguajes interpretados, Golang es un lenguaje compilado, y además unos de los objetivos de este lenguaje es minimizar el tiempo de compilado, es por esto, por ejemplo, que Golang no nos deja realizar, dependencias circulares, lo cual está genial, ya que nos obliga a organizar mejor nuestro código y haciéndolo más escalable.

Una característica muy interesante es su concurrencia, lo cual nos permite ejecutar múltiples rutinas, al mismo tiempo, esto hace que sea una muy buena herramienta para el desarrollo de videojuegos por ejemplo, o en la creación de páginas web, algo de lo que más adelante hablaré.

La documentación de Golang es amplia y en ella podremos encontrar numerosos tutoriales, guías, consejos, buenas prácticas, etc, además de la excelente documentación, con la cual podrás aprender muchísimo.

Aprender Golang desde 0 🤓

Si aún no has elegido tu primer lenguaje de programación, Golang es un lenguaje muy sencillo de aprender, su sintaxis se asemeja a la de otros lenguajes de alto nivel como Python, por lo que no te tendrás que preocupar si se te ha olvidado algún “;”.

Además, Go nos ofrece una herramienta con la que desarrollar proyectos de forma escalable, simple, segura y muy eficiente, promoviendo buenas prácticas, etc, por lo que creo que es un muy buen lenguaje para aquellas personas que quieren aprender un nuevo lenguaje o que quieren aprender a programar.

Si nunca has programado, te recomiendo que empieces por lo básico, aprendiendo que son las variables, estructuras de control como los ifs y los bucles, las funciones, etc. Te dejo a continuación un pequeño programa para que puedas comenzar a aprender:

 //main.gopackage main  //Nombre del paquete al que pertenece el archivo
import «fmt»  //fmt es un paquete para la entrada y salida de datos por consolafunc main() {

fmt.Println(«Introduce tu nombre: «)  //mostramos texto por pantalla
var nombre string  //creamos una variable llamada «nombre» de tipo string
fmt.Scanln((&first)  //esperamos una entrada de datos por consola
fmt.Println(«Hola «+ nombre)  //mostramos texto por pantalla

}

Además te dejo este link a una excelente página en inglés, donde podrás encontrar multitud de ejemplos desde lo básico a conceptos más complejos y elaborados para que puedas seguir aprendiendo.

¿Qué podemos hacer con Golang? 💻

Como ya hemos dicho, Golang es un lenguaje muy versátil, lo podemos usar en multitud de proyectos, creación de páginas webs, desarrollo de APIs, web scrappig, aplicaciones de consola, … y mucho más. Para los más avanzados muestro a continuación una breve explicación de como crear una pequeña API con Golang y desplegarlo en un servidor Nginx.

¿Tutorial API con Golang? 📖

❗ Para seguir este tutorial necesitas tener unos conocimientos básicos de Golang (Go) y Nginx.

Doy por hecho que ya has instalado Golang y que lo has configurado correctamente, si no sabes como hacerlo, te dejo el link a la página oficial de Golang donde podrás encontrar como hacer esto de forma sencilla. Igualmente doy por hecho que tienes instalado Nginx en tu pc, si no es así, si tienes Windows, haz click aquí para ver la guía oficial de como hacerlo. Si tienes Linux o Mac, puedes ejecutar el siguiente conjunto de comandos para su instalación.

$ sudo apt update
$ sudo apt install nginx

Gracias a su naturaleza concurrente, Go es capaz de manejar múltiples llamadas sin bloquear los recursos, lo cual nos permite crear un potente back-end cuya rapidez supera a las otras aplicaciones desarrolladas en Php, Node, Java, Python, etc. Te dejo el siguiente link para que le puedas echar un vistazo a algunos benchmark que prueban esto. Esto hace que sea uno de los mejores lenguajes de programación para generar páginas webs, ya que es capaz de manejar múltiples peticiones, sin llegar a bloquearlas, por lo que es muy rápido, y la rapidez, hace que mejore la experiencia de aquellos usuarios que visiten nuestra página web.

Dicho todo esto, vamos a pasar ahora a crear una pequeña API con Golang, que se podrá usar como back-end de una posible página web, lo cual es muy sencillo, hoy en día existen frameworks que permiten a Golang de manejar peticiones Http, como Fiber, un framework basado en Fasthttp, que pretende tener una sintaxis similar a la de Express, por lo que si eres desarrollador Node.js junto con Express, te será muy sencillo aprender a usar Go junto con Fiber.

 //main.gopackage main  //Nombre del paquete al que pertenece el archivo
import «github.com/gofiber/fiber/v2»  //importamos Fiberfunc main() {
app := fiber.New();  //Creamos una nueva instancia de fiber a la que llamaremos app
app.Get(«/», func(c *fiber.Ctx) error {  //le indicamos que debe de escuchar la url «/»
    return c.SendSring(«Hola mundo»)  //devolvemos una respuesta
})
app.Listen(«:3000»)  //le indicamos por que puerto debe de escuchar
}

Para iniciar nuestro programa solo necesitamos ejecutar el siguiente comando en una terminal, suponiendo que el archivo se llama «main.go»:

$ cd ruta/al-archivo
$ go run main.go

Vamos a pasar ahora a desplegarlo en Nginx

Con Golang no te tendrás que preocupar de compatibilidades entre sistemas Windows, Linux o Mac a la hora de desplegar la API, ya que Golang nos permite compilar el código en un archivo binario compatible con estos sistemas operativos. Supongamos que disponemos de un servidor de aplicaciones Nginx, dentro de una máquina con Ubuntu 20.04.

Ahora debemos de colocar nuestro archivo binario compilado por Go, en la máquina donde se encuentre nuestro servidor Nginx, en este caso, nuestra propia máquina, si no es así, tendrás que hacer con SSH o FTP, pero en nuestro caso no tendremos que hacer nada.

Para generar el archivo binario compatible con nuestro servidor Ubuntu podemos ejecutar el siguiente comando en una terminal:

$ cd ruta/al-archivo
$ GOOS=linux GOARCH=amd64 go build

Ahora solo debemos de configurar nuestro servidor de aplicaciones Nginx para que dirija las llamadas hacia ese binario. Para ver como sería la configuración, dejo el siguiente link hacia la documentación de Nginx para que puedas ver como hacer una configuración sencilla.

#myApp.conf
http {
server {    server_name myApp.com;
listen 8080;location ruta/al-archivo {
proxy_pass http://localhost:8080; #redirije estas peticiones a la ruta de arriba
}

}
}

Ahora si vamos a nuestro navegador y escribimos en la barra de navegación «localhost:8080», nos debería aparecer el mensaje de la API, «Hola Mundo».

Pero podemos ir más allá y hacer de nuestro archivo binario un servicio y hacer que se ejecute en segundo plano en nuestro servidor, de esta forma, podemos hacer, por ejemplo, que si nuestro back-end sufre, un error que hiciese que se cayese, este se levante automáticamente sin ningún problema. Pero eso lo dejamos para un futuro tutorial.😉

Recuerda que si te ha gustado puedes ayudarnos compartiendo el post en tus redes sociales.😉👍

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Necesita estar de acuerdo con los términos para continuar

Menú