# Primeros pasos con Go/Golang

Go es un lenguaje de programación compilado y estáticamente tipado. Este lenguaje fue creado por [Robert Griesemer](https://en.wikipedia.org/wiki/Robert_Griesemer "Robert Griesemer"), [Rob Pike](https://en.wikipedia.org/wiki/Rob_Pike "Rob Pike") y [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson "Ken Thompson") dentro de Google. Fue anunciado en noviembre del 2009 y lanzaron la primera versión en Marzo 2012.

Cuando hablamos de un lenguaje de programación compilado hacemos referencia a que el código escrito en el debe pasar por el proceso de compilación para ser ejecutado en nuestra maquina.

Estáticamente tipado indica que le tenemos que dar/indicar el tipo a las variables o constante para poder almacenar algo en ellas.

Este lenguaje fue creado con el principal objetivo de crear procesos pesados, el mismo tiene el poder de C pero una sintaxis mas al estilo Python.

Podemos detallar muchas ventajas a la hora de decir porque usar este lenguaje, entre ellas se destacan:

*   Gran velocidad de compilación.
*   Soporte nativo para concurrencia.
*   Alto rendimiento.
*   Lenguaje con una gran comunidad detrás.
*   Nos obliga a usar buenas practicas.

Hoy en día Go es muy usado en empresas o startups, por lo cual el nicho de uso es muy grande. Entre estas encontramos a Google, MercadoLibre, Twitter, Twitch, entre otras.

### *Todo muy linda la historia, pero vamos a armar nuestro primer programa en Go.*

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1648468942159/yjB6_NcaK.jpeg)

Lo primero que tenemos que hacer es descargar e instalar Go en nuestra computadora.

Para este paso puntualmente, vamos a recurrir a la comunidad y a la documentación oficial dado que es clara y tiene un caso para cada sistema operativo.

[**Download and install**  
*Download and install Go quickly with the steps described here. For other content on installing, you might be interested…*golang.org](https://golang.org/doc/install "https://golang.org/doc/install")[](https://golang.org/doc/install)

Lo primero que vamos a hacer es crear un archivo con extensión `.go`, en este archivo vamos a colocar todo nuestro código. Como nombre vamos a poner `main.go` dado que es buena practica llamar así al punto de inicio o entrada de la aplicación.

Dentro de `main.go` lo primero que tenemos que hacer es definir **package,** en nuestro caso caso será main.

package main

Dado que nuestro programa va a ser un programa de ejecución en consola, llamaremos un paquete de Go para poder imprimir en la misma. Este paquete se llama [**fmt**](https://pkg.go.dev/fmt)**.**

import "fmt"

Seguido de esto crearemos nuestra función principal, esta se encargara de ejecutar todo el código.

func main() {  
  fmt.Println("Hola Mundo");  
}

*   **func** es la manera en la cual le decimos a Go, crea una función llamada main.
*   **fmt** es el paquete que se encarga de imprimir en consola.
*   **Println** indica que imprima algo y luego haga un salto de linea.

Una vez que escribamos esto vamos a guardar el archivo y pasaremos a compilar y ejecutar el mismo, tenemos dos maneras de realizar este proceso.

#### Compilando con go build

Una vez posicionado en la carpeta que se encuentra `main.go` ejecutaremos el siguiente comando.

go build main.go

De manera mas genérica el comando seria así:

go build RUTA\_AL\_ARCHIVO

Una vez finalizada la ejecución del comando, proseguiremos a ejecutar nuestro programa.

./main

Automáticamente deberíamos ver un mensaje por consola diciendo, “Hola Mundo”.

La otra manera de ejecutar un proceso de compilación y ejecución de nuestro archivo es usando **go run ARCHIVO,** este comando resume los dos comandos anteriores a uno solo.

Internamente crea una carpeta temporal en la cual se encuentra la compilación del archivo y una vez finalizado este proceso procede a ejecutar el archivo compilado y a eliminar la carpeta temporal.

Este comando es recomendable usarlo en momento de desarrollo dado que nos ahorra unos segundos de tiempo, a la hora de usar cualquier aplicación escrita en Go en producción es necesario usar `go build`

> **VSCode Extensión recomendada**

> Si estas usando Visual Studio Code, contamos con una extensión para poder trabajar mas rápido y sin errores, la misma se llama [Go y es creada por el Team de Golang](https://marketplace.visualstudio.com/items?itemName=golang.Go) .

Otra forma de ejecutar un programa Go es usando el [Playground](https://play.golang.org/p/MAohLsrz7JQ) que nos brinda la pagina oficial de Golang o el IDE de [JetBrains](https://www.jetbrains.com/go/) , tenemos una prueba gratuita, pero si somos estudiantes podemos acceder completamente al IDE de manera gratuita en la siguiente pagina [Free Educational Licenses](https://www.jetbrains.com/community/education/#students).

En los próximos días seguiremos hablando de Go y comenzaremos con sus variables y constantes.

#### Fuentes y links de interés:

Sitio oficial de Go/Golang

[**The Go Programming Language**  
*Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.*golang.org](https://golang.org/ "https://golang.org/")[](https://golang.org/)

JetBrains Free Educational Licenses

[**Free Educational Licenses - Community Support**  
*Learn or teach how to code with best-of-industry tools from JetBrains. Free Educational Licenses for JetBrains' tools.*www.jetbrains.com](https://www.jetbrains.com/community/education/#students "https://www.jetbrains.com/community/education/#students")[](https://www.jetbrains.com/community/education/#students)
