Según Wikipedia , “ Go (a menudo denominado Golang) es un lenguaje de programación creado en Google en 2009 por Robert Griesemer, Rob Pike y Ken Thompson.
Go es un lenguaje compilado de tipado estático en la tradición de C, con seguridad de memoria, recolección de basura, tipado estructural y características de programación concurrente de estilo CSP agregadas. El compilador y otras herramientas desarrolladas originalmente por Google son todas gratuitas y de código abierto. (Fue diseñado como) un nuevo lenguaje de programación que resolvería críticas comunes de otros lenguajes manteniendo sus características positivas. «
En el libro, Introducción al desarrollo web en Go , Go se describe como “ un lenguaje de programación de procedimiento, imperativo, modular, orientado a objetos, de tipo estático, recolectado de basura y compilado con una sintaxis muy similar a la familia de lenguajes C (C , C ++, C #, Java, Javascript, etc…) y características de concurrencia inspiradas en CSP ”.
Go es un lenguaje de programación procedimental porque los procedimientos (funciones) se unen para formar un programa. Es un lenguaje de programación imperativo porque las funciones se construyen a partir de declaraciones, que generalmente se expresan como comandos imperativos.
Entonces, ¿cuáles son los beneficios de usar Go? Aquí hay sólo algunos de ellos:
Actuación
En mayo de 2014, Brad Fitzpatrick hizo una presentación en la conferencia GoCon en Tokio. En él dio esta comparación de Go a otros lenguajes comunes.
Él cree que C todavía representa el lenguaje más rápido y eficiente para ejecutar comandos de computadora, pero que también es un lenguaje difícil de desarrollar. Sin embargo, ve que Go compite con C en velocidad, pero es más fácil de crear para los desarrolladores. Otra ventaja es que la mayoría de los lenguajes anteriores están escritos para ejecutarse en un solo procesador. Con múltiples procesadores ahora la norma, necesitamos un lenguaje que esté diseñado para explotar el multiproceso.
Go es rápido y eficiente para las computadoras, pero también rápido y divertido para los humanos. Probablemente esté familiarizado con muchos de los otros lenguajes de secuencias de comandos que se muestran arriba, pero generalmente no son tan rápidos de ejecutar como Go. Go parece estar en un punto óptimo entre velocidad y usabilidad.
Concurrencia
Dado que Go se ha escrito para aprovechar múltiples núcleos de forma nativa, sabe cómo usarlos y también escalarlos horizontalmente. Puede administrar la concurrencia fácilmente, ya que el concepto está integrado de forma nativa en Go. Go ofrece un código sencillo y atractivo, lo que significa que es fácil de escribir.
Go tiene una sintaxis de sentido limpio que escribe casi como un lenguaje de programación.
Compilación rápida
La eficiencia de la compilación es una de las principales razones por las que se desarrolló Go. Como resultado, sus creadores han desarrollado un lenguaje con tiempos de construcción impresionantemente rápidos. A diferencia de, por ejemplo, C ++ que tiene que volver a leer los archivos de encabezado, Go evita ralentizar el compilador al eludir algunos de los escollos de otros lenguajes. La gestión de dependencias de Go es mucho más eficiente y opera en todos los módulos, mejorando así la velocidad.
El lanzamiento de Go 1.8 vino con una mejora del 15% en los tiempos de compilación. También anunciaron que continuarán enfocándose en reducir aún más los tiempos de compilación en versiones futuras.
Recolección de basura
Go tiene recolección de basura, por lo que administra toda tu memoria por ti, y lo hace de muy buena manera. Dado que los creadores de Go se han centrado realmente en las increíbles funciones de recolección de basura, la administración de la memoria ya no es un problema del que deba preocuparse.
Potentes bibliotecas estándar
Go tiene bibliotecas estándar muy potentes que le permiten realizar muchas tareas de alto nivel rápidamente. Go está diseñado teniendo en cuenta el desarrollo web, por lo que tiene una biblioteca estándar para trabajar con JSON.
La mayoría de los lenguajes dependen de una biblioteca de código abierto para manejar JSON, mientras que Go ha incorporado el manejo de JSON.
Varias plataformas
Go se compila en varios sistemas operativos. Puede desarrollar en una máquina y compilar para ejecutarse en una arquitectura diferente, ¡y funciona!
Los paquetes de los que depende su aplicación se incluirán automáticamente en el binario generado, por lo que todo lo que tiene que hacer es enviarlo a los usuarios.
Respaldado por Google
Go funciona con Google, que fue una de las razones más importantes por las que los desarrolladores eligieron Go en primer lugar. Google diseñó Go desde el principio para admitir la escalabilidad y la eficacia, lo que lo hace ideal para el desarrollo de aplicaciones basadas en la nube.
Fuente abierta
Go ha sido proporcionado por Google como código abierto. Si realmente te gusta y quieres contribuir al proyecto, también puedes hacerlo.
Hay muchas bibliotecas de código abierto disponibles para los desarrolladores. Su subrepo es completo y fácil de usar.
Empresas que utilizan Golang
Muchas organizaciones importantes han adoptado Go, aquí hay algunas:
https://github.com/golang/go/wiki/GoUsers
https://www.quora.com/Other-than-Google-what-companies-are-using-Go-in-production
Esta declaración de un usuario del blog qihoo Go Language puede ilustrar lo que Go puede hacer:
“ Inicialmente, nuestro sistema basado en Go funcionaba en 20 servidores, con 20 millones de conexiones en tiempo real en total. El sistema envió 2 millones de mensajes al día. Ese sistema ahora se ejecuta en 400 servidores y admite más de 200 millones de conexiones en tiempo real. Ahora envía más de 10 mil millones de mensajes al día. «