Go – Hello World

Desde que inicié mi carrera me he especializado en Java, y a su vez, había tenido algunos acercamientos a Python, lenguaje que me encanta por su sencillez y poder.

Hace unas semanas surgió una nueva posibilidad laboral, en un trabajo en el cual se me asignaría por proyectos, entregándome una gran posibilidad de crecimiento profesional, me pareció que era una oportunidad que no podía desaprovechar, así que sin más, acepté la oferta laboral, y estoy a poco más de una semana de entrar a esta nueva empresa.

La sorpresa de esto, es que me asignarán un proyecto en un lenguaje que desconocía totalmente, que es el lenguaje de Google: Go. Si bien ya había escuchado bastante del mismo, nunca había entrado a conocerlo como tal, y este último tiempo me he dedicado a aprender más y más sobre el lenguaje y sus beneficios. Es por esto que hoy hago un pequeño post para mostrar básicamente cómo funciona y qué es lo que nos puede ofrecer.

¿ Qué es Go?

  • Es un lenguaje de programación multiplataforma. Es compilado (el resultado del código fuente es un archivo binario que se puede desplegar en un servidor o computador) e imperativo (cada línea de código es una instrucción).
  • Deriva su sintaxis de C, con algunas diferencias.
  • Tiene tipado estático, es decir, cuando se declara una variable, se define qué tipo de variable es.
  • Trae características de lenguajes interpretados, por ejemplo, no sólo permite el tipado estático, Go también puede inferir qué tipo de variable se está declarando.

¿ Qué beneficios hay al utilizar Go?

  • Es fácil de aprender, y su sintaxis es simple comparado con C.
  • Tiene un uso de CPU eficiente y es veloz. Esto también es porque es compilado.
  • Hace fácil el manejo de concurrencia, la cual es parte nativa del lenguaje, a diferencia por ejemplo de Java.
  • Las librerías estándar de Go te permiten desarrollar una aplicación sin necesitar librerías externas. Puedes hacer un servidor http, o usar sockets sin tener que recurrir a nada más que el lenguaje en sí mismo.
  • Tiene un linter definido e integrado al lenguaje.
  • Tiene un fácil despliegue, al ser compilado, sólo se debe subir el binario al servidor y ejecutarlo.

¿ Qué empresas lo utilizan?

  • Google
  • Docker
  • Canonical
  • Heroku

El primer Hello World

Ahora vamos al ejemplo básico de todo programador novato en un lenguaje, nuestro querido primer Hola Mundo. Para esto obviamente necesitamos descargar Go desde su página web: https://golang.org/

La instalación es tan simple como dar a Siguiente, Siguiente y Finalizar. Una vez listo esto, ya podremos utilizar el CLI de Go, y verificar la instalación abriendo una terminal y escribiendo:

go version

Lo cuál debería darnos como salida la versión que tenemos instalada del lenguaje:

Con esto listo, ya podemos empezar a trabajar, pueden utilizar su IDE predilecto, en mi caso soy amante de Jetbrains y sus soluciones, por lo que utilizo GoLand:

Una vez creada una carpeta de nuestro Proyecto, agregamos nuestro primer archivo: main.go

Y el código para hacer nuestro Hello World:

package main

import "fmt"

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

Explicaciones de cada línea de nuestro código

Esto se ve simple, verdad? vamos ahora a analizar cada línea del código para entenderlo un poco mejor.

package main

Package representa a un proyecto o un workspace (un conjunto de archivos fuente), entonces, por ejemplo, si tenemos tres archivos fuente y todos pertenecen al workspace main, es necesario que indiquemos mediante un import que pertenecen allí.

En el caso de por qué usamos main, es para especificar que es un package ejecutable, entonces, si usamos por ejemplo import package blabla, hacemos un go build, esto no nos dará ningún ejecutable como resultado, por lo tanto, si queremos tener código que podamos ejecutar usaremos main, y si no, en el caso de crear código que pueda ser usado con otros fines, o por otros desarrolladores, es que se utilizarán otros nombres de packages.

Si utilizamos el package main, debe siempre tener una función llamada main.

import “fmt”

Acá se está diciendo básicamente que se le entregue al package main acceso a todo el código y funcionalidades dentro del paquete llamado FMT.

En este caso, FMT, es el nombre de una librería estándar incluída en el lenguaje Go por defecto. Viene de la palabra “format”, y tiene funcionalidades usadas para imprimir un montón de información específicamente a la terminal.

func main()

Func declara una función main, que es la función principal que se ejecutará al ejecutar el script.

Dentro de esta función está la llamada a la librería que importamos anteriormente fmt y el método al que queremos llamar, Println, que va a mostrar por consola el mensaje que le entreguemos mediante las comillas dobles que recibe como parámetro.

Ejecutando el código

Una vez tenemos esto listo, por consola podemos lanzarlo así:

go run main.go

Dándonos como resultado:

Y eso es todo!, ya tenemos nuestra primera aplicación con Go.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: