fbpx

Go,  también llamado golang , es un lenguaje de programación open source creado por la empresa google, el Equipo que desarrollo este lenguaje estaba a cargo de los ingenieros Robert Griesemer, Rob Pike, and Ken Thompson. La construcción del lenguaje Go comenzo en el año 2007 , pero la primera versión no vería la luz hasta el año 2009. Se trata de un lenguaje de programación concurrente, compilado, inspirado en la sintaxis de Algol y C y con tipado estático.

Este lenguaje se puede desarrollar en Linux, OS X, Windows, varias versiones de BSD y Unix, y desde 2015 también en algunos dispositivos móviles, incluidos smartphones.

Los ingenieros de Google crearon Go con el objetivo de diseñar un nuevo lenguaje de programación que resolviera los problemas comunes de otros lenguajes, manteniendo sus características que consideraban positivas.

Algunas de estas características eran:

  • Ser de tipo estático, escalable a sistemas grandes (como Java y C ++). Por esta razón resulta más fácil de aprender para los desarrolladores que ya trabajaban con estas herramientas.
  • Ser productivo y legible, sin demasiadas palabras clave.
  • No se requieren herramientas, pero sí un buen soporte.
  • Soporte de redes y multiprocesamiento.
  • Go tiene muchas de las características y facilidad de lenguajes dinámicos como Python
  • Aun siendo un lenguaje diseñado para la programación de sistemas y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente.

La principal diferencia entre Go y C++, Java o C# es que estos son más pesados y voluminosos . El lenguaje de Google presume de sencillez, su sintaxis es clara y concisa. Mientras que C es desgraciadamente famoso por la complejidad de la sintaxis de sus declaraciones, Go utiliza inferencia implícita de tipos pudiéndose de esta manera evitar la declaración explícita de variables. La declaración de variables es simple y conveniente, y difiere de la de C. Mientras en C una declaración se haría así: int* i, j; , en Go la declaración se hace de la siguiente forma: var i, j *int . Así se consigue declarar tanto la variable i como la j como punteros, mientras que en el ejemplo en C, solo la i sería puntero.

Herramientas de Go

  • Go build , que genera los binarios de Go usando sólo la información en los propios archivos de origen.
  • Go test , unidades de testeo y microbenchmarks.
  • Go fmt , para el formato de código.
  • Go get , sirve para recuperar e instalar paquetes remotos.
  • Go vet , un analizador estático que busca posibles errores en el código.
  • Go run , un atajo para la construcción y ejecución de código.
  • Godoc , para mostrar la documentación o servirla a través de HTTP.
  • Gorename , para cambiar el nombre de variables, funciones, etc. de forma segura.
  • Go generate , una forma estándar de invocar generadores de código.

Por último, dejaremos una lista de

proyectos que utilizan o han utilizado Go:

  • Docker , un conjunto de herramientas para desplegar contenedores Linux.
  • Juju , una herramienta de orquestación de servicios de Canonical, empaquetadores de Ubuntu Linux.
  • Dropbox migró algunos de sus componentes críticos de Python a Go.
  • Google , para muchos proyectos, incluyendo el servidor de descarga dl.google.com.
  • MercadoLibre , para varias API públicas.
  • MongoDB , herramientas para administrar instancias de MongoDB.
  • Netflix , para dos partes de su arquitectura de servidor.
  • SoundCloud .
  • Uber , para manejar grandes volúmenes de consultas basadas en geofence

Algunos de los temas que se ven en el curso son.

hay más secciones que serán añadidas al curso de forma constante.