Es momento de conocer a Golang!!!, me encanta aprender nuevas cosas, así que ya hace un tiempo me di la tarea de salir del lenguaje que siempre fue mi eterno compañero (Java) si, si, si, todo eso pero aun goza de buena salud y es muy bien cotizado en las grandes compañías a nivel mundial. 😀
Bueno ya muchos lo saben, pero les contaré de todas maneras, Golang/Go es un lenguaje de programación open source, compilado y tipado estáticamente, fue desarrollado por Google y en su creación participaron Rob Pike, Robert Griesemer y Ken Thompson. Golang o Go fue publicado en noviembre del año 2009 y ya tiene casi doce años con nosotros.
Ventajas de Golang
¿Porque deberíamos usar Golang/Go? , sabemos que tenemos muchos lenguajes donde podemos elegir, porque uno más, si ya tenemos Node, Java, Python. Veamos por parte que tiene Golang para ofrecernos.
Lenguaje compilado
Golang/Go es un lenguaje compilado y por ello su código es compilado a un binario nativo. Esto no existe en lenguajes como Nodejs.
Compilación muy rápida
Golang fue diseñado para hacer una compilación muy rápida.
Recolección de basura
Golang/Go utiliza la recolección de basura y por ello la gestión de la memoria se realiza prácticamente de forma automática, por lo tanto nosotros como desarrolladores no debemos preocuparnos por la gestión de la memoria.
Opensource
Golang/Go es Open Source y por ello podemos participar/contribuir al proyecto aquí.
Concurrente
Con Golang/Go podemos ejecutar varias cosas al mismo tiempo, lanzar un proceso y, mientras éste se está ejecutando, realizar otras cosas, sin tener que esperar a que el proceso termine. No confundamos la concurrencia con paralelismo. Ya veremos esto algún día. 😀
Instalemos Golang!!
Para instalar Golang/Go en Mac tenemos Brew como opción, aunque hay más 😀
#Utilizando Brew
brew update && brew install golang
Luego creamos nuestros directorios de trabajo
mkdir -p $HOME/go/{bin,src,pkg}
Debemos definir las siguientes variables de entorno
export GOPATH=$HOME/go
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"
Ahora recargamos nuestra configuración, dependiendo de cual sea nuestra shell
source $HOME/.bashrc
source $HOME/.zshrc
Aro Aro Aro!!!! ( For English speakers, this is to say “with your permission”).
GOROOT es el directorio “raíz” de Golang/Go que contiene el código fuente de Go. Homebrew registra automáticamente esta ruta.
GOPATH Golang/Go adopta una postura rígida en la cual dice que todos los proyectos y dependencias del lenguaje deben existir en un solo directorio conocido como GOPATH. Cada vez que desarrollamos un proyecto Golang/Go o instalamos un módulo de terceros lo hacemos en este directorio.
Verificamos la instalación de Golang/Go
go version
go version go1.16.2 darwin/amd64
Ahora para crear un nuevo proyecto debemos hacerlo bajo el directorio (GOPATH)
$HOME/go/
El GOPATH que definimos consiste de 3 directorios
Si quieren saber para que es cada uno de los directorios, en la cli de Golang/Go tenemos un comando que explica muy bien esto.
go help gopath
Así se verán nuestros directorios
Ahora veamos que función cumple cada directorio
src: Este directorio contiene el código fuente. Este determina la ruta desde donde vamos a importar.
pkg: Este directorio contiene los package instalados. Como en el árbol de Golang, para cada sistema operativo y arquitectura tiene su propio subdirectorio.
bin: Este directorio contiene todos los compilados.
Nos vamos a crear una mini aplicación en Golang.
Creando Hello World
Vamos a ir a nuestro GOPATH y crearemos un directorio para contener nuestro proyecto
cd $GOPATH/src
mkdir helloworld
cd helloworld
Dentro de nuestro directorio helloworld, vamos a inicializar nuestro proyecto como un módulo Golang/Go. Esto quiere decir que cualquiera podrá instalar nuestro código Golang/Go desde Github.
go mod init github.com/{nombre_de_nuestro_repositorio}/helloworld
Después de ejecutar el comando anterior, veremos un nuevo archivo en el directorio, con el nombre go.mod
module github.com/{nombre_usuario}/nombre_repositorio
go 1.16
Este archivo contiene toda la información acerca de módulos, nombre de este mismo y versión de Golang/Go que estamos usando. Todas las versiones de dependencias serán almacenadas aquí.
Creamos nuestro primer código ejecutable
Vamos a usar GOLAND es un IDE para Golang de Jetbrains.
Ahora creamos un proyecto nuevo, creamos un archivo main.go
Dado que el IDE nos ayuda en la compilación tan sólo presionando el botón verde de “Play”, si queremos ejecutar el programa vía línea de comandos deberemos hacer lo siguiente
go build
go run main.go
Hello world Culture Tech.
Ya tenemos nuestra primera aplicación en Golang/Go.!!!!
Anímense a entrar en el mundo de Golang/Go, es un lenguaje muy bueno y fácil de aprender, tiene algunas cosas complejas y como todo, también sus desventajas que iremos analizando cuando estemos en ejemplos más avanzados. Espero que les guste, seguiré creando más ejemplos a partir de la base que construimos ahora y como siempre me dejan sus comentarios.
Un abrazo !!! 😉