Golang, también conocido como “Go”, es un lenguaje compilado, rápido y de alto rendimiento que pretende ser simple y está diseñado para que sea fácil de leer y comprender. Go fue creado en Google por Rob Pike, Robert Griesemer y Ken Thompson, y apareció por primera vez en noviembre de 2009. La sintaxis de Golang está diseñada para ser muy limpia y accesible.
Go se inventó en 2007 en un momento en que las arquitecturas de CPU de varios núcleos eran comunes en todas partes y ningún lenguaje de programación simplificaba el desarrollo de aplicaciones de subprocesos múltiples. La responsabilidad de administrar diferentes subprocesos de manera segura y eficiente fue una gran responsabilidad para los desarrolladores. Go es diferente de otros idiomas; es joven pero tan poderoso. Goroutines revolucionó la programación competitiva en otro nivel.
Está probado y demostrado que las aplicaciones que están escritas en Go tienen un alto rendimiento y son escalables. Golang es un lenguaje muy eficiente, al igual que C / C++ , que maneja paralelismos como Java y tiene una legibilidad de código fácil como Python y Pearl. Golang tiene ventajas arquitectónicas indiscutibles sobre sus predecesores.
Go es utilizado por algunas de las grandes marcas como BBC, Uber, Novartis, Basecamp y Soundcloud. Uber ha informado un mejor rendimiento, alto rendimiento, latencia y tiempo de actividad. BBC, el nombre de la casa en la transmisión de noticias mundiales, lo usa para el backend, incluidos los rastreadores y raspadores web. El sistema de compilación e implementación de Soundcloud está en Go.
¿Por qué ir?
Es fácil de aprender para los programadores con experiencia en C++, y también convertir el código heredado a Go es bastante sencillo y sencillo. Al ser un lenguaje compilado y tipificado estáticamente, es mucho más rápido que las opciones interpretadas y también ofrece la mayoría de los beneficios de rendimiento. Go como lenguaje es más similar a C; sin embargo, además de las características de C, Go ofrece seguridad de memoria, recolección de elementos no utilizados, escritura estructural y concurrencia estilo CSP.
Go se adapta muy bien al software en la nube general orientado al rendimiento. Las herramientas populares de DevOps están escritas en Go, como Docker, e incluso el sistema de orquestación de contenedores de código abierto Kubernetes está integrado en Go. Vitess , un sistema de base de datos distribuido creado por Google y un backend de MySQL creado con Golang, ha sido utilizado por YouTube desde 2011.
Golang ocupó la quinta posición en la Encuesta de desbordamiento de pila que se realizó en 2018. Según el informe de GitHub del segundo trimestre de 2018, Golang tuvo una tasa de crecimiento de casi el 7 % en general con un cambio de 1,5 respecto al trimestre anterior. Y para el cuarto trimestre de 2019, Golang ha crecido a un aumento general del 8 %.
¿Razones por las que Golang es tan popular?
- Go es un lenguaje compilado y tipificado estáticamente; por lo tanto, puede detectar fácilmente los problemas desde el principio.
- Go compila instantáneamente en código de máquina, por lo que hace que el ciclo de edición/actualización sea relativamente rápido y aún así se produce un código de máquina razonablemente eficiente.
- Go está diseñado de tal manera que facilita la escritura de programas en red altamente concurrentes.
- Go viene con una gran cantidad de infraestructura integrada para admitir las pruebas; puede definir y probar módulos sin esfuerzo; esto fortalece aún más la disciplina de la ingeniería.
- Las características multiplataforma de Go facilitan mucho la portabilidad del código, y esta es la ventaja más significativa de Go.
- Go proporciona una herramienta de formateo, pelusa y verificación obstinada como parte predeterminada del paquete, y el compilador de Go incluso aplica cosas como variables no utilizadas. Esto lo convierte en un lenguaje profesional.
- El soporte nativo de Go para la concurrencia y el paralelismo es lo que lo hace tan especial. Esto hace que Go sea un lenguaje perfecto para aplicaciones que requieren procesamiento pesado concurrente y/o paralelo, redes, computación masiva, etc.
- Go es lo mejor para la compatibilidad con la nube. Go se presenta con una mejor instalación de recolección de basura, un buen paquete de red y resuelve el problema de las variables no utilizadas, compiladores multiculturales y transculturales.
Casos Prácticos
1. SendGrid movido a Ir
SendGrid, una plataforma de comunicación con el cliente, decidió pasar a Go como su lenguaje de desarrollo principal en 2014. El equipo de SendGrid necesitaba hacer un cambio fundamental en su lenguaje de desarrollo, y todo se redujo a una competencia entre Scala, Java y Go. . El mayor desafío que enfrentó SendGrid en el desarrollo entonces fue la programación concurrente. Tener la idea de la programación asincrónica concurrente como parte del lenguaje fue una de las razones más convincentes por las que se eligió Go en SendGrid.
2. Hexac cambió de Python a Go
Tigran Bayburtsyan, cofundador y director de tecnología de Hexac, escribe un artículo exclusivo en el que comparte por qué su empresa pasó de Python a Go. Según las estadísticas de su base de código, después de reescribir todos sus proyectos en Go, obtuvieron un 64 % menos de código que antes. Ahorraron una gran cantidad de recursos (memoria, CPU) debido a las funciones de lenguaje integradas de Go.
Go le dio a su equipo de desarrollo una gran flexibilidad, un solo idioma para todos los casos de uso, y para todos funcionó muy bien. En Hexact Inc, obtuvieron alrededor de un 30 % más de rendimiento en sus servicios de back-end y API. Ahora pueden manejar el registro en tiempo real, transferirlo a la base de datos y hacer streaming con Websocket desde uno o varios servicios. Este es un resultado sobresaliente del uso de las funciones de idioma de Go.
3. Salesforce abandonó Python por Go
Antes de lanzar Einstein Analytics en 2017, Salesforce renovó el backend y lo reconstruyó por completo en el popular lenguaje Go de Google. El arquitecto principal de Salesforce, Guillaume Le Stum, afirmó que «Python no funciona bien con subprocesos múltiples, mientras que Go está diseñado para aplicaciones pesadas adecuadas para los sistemas de producción de Google, el lenguaje ha sido probado y aprobado por Google, por lo que Salesforce optó por cambiar Einstein Analytics, la parte vital de Salesforce, desde una aplicación híbrida C-Python hasta una aplicación completamente Go.
4. Containerum elige pasar por encima de los demás
Containerum, una plataforma de administración de contenedores, ha estado utilizando Go como su idioma principal durante aproximadamente cuatro años y, a pesar de ciertos desafíos, el equipo de ingeniería cree que es una buena opción. La principal razón para elegir Go at Containerum Platform es que consiste en un grupo de servicios más pequeños que se comunican con otros componentes del sistema. Para garantizar esto, es muy necesario asegurar la compatibilidad de la interfaz y escribir un código que sea demasiado simple, fácil de leer y mantener.
Go permite agregar parches y permite usar componentes listos en la base de código, por ejemplo, validación de análisis de nombres de imágenes, modelos de objetos clave, etc. y esta es una de las razones por las que Containerum eligió Go. Containerum consideró Go sobre otros lenguajes debido a sus muchas características/hechos profesionales, como escritura estática, minimalismo, biblioteca estándar, rendimiento fantástico, compilación súper rápida y mucho más.
5. Las herramientas populares de DevOps están escritas en Go
La gigante empresa Google consideró escribir Kubernetes en otros idiomas, incluidos, pero según Joe Beda, cofundador de Kubernetes, ninguno de estos idiomas fue tan efectivo como Go. Hubo muchas razones por las que Kubernetes está escrito en Go. Algunos de ellos incluyen: excelentes bibliotecas, herramientas rápidas, simultaneidad integrada, recolección de elementos no utilizados, seguridad de tipos, etc. Según Joe, los patrones y las herramientas en Go han alentado al equipo de Kubernetes a crear un código bien factorizado y reutilizable que brindará ambos un alto grado de flexibilidad y velocidad al mismo tiempo.
Docker ha sido el mayor usuario de Go. Al equipo de Docker le gustaba Go porque les ofrecía muchos beneficios: compilación estática sin dependencias, lenguaje neutral, un entorno de desarrollo completo, biblioteca estándar y tipos de datos sólidos y extensos, tipado de pato sólido y la capacidad de compilar para múltiples arquitecturas con mínima molestia.
Istio, parte del ecosistema de Kubernetes, también está escrito en Go. Dado que Kubernetes también se escribió en Go, fue un enfoque perfecto para que Istio escribiera en Go. Esa no es solo una razón, entre muchas, la idoneidad de Go para proyectos de redes distribuidas y descentralizadas fue una de las razones principales para elegir Go en Istio.
Si está programando sus aplicaciones en GoLang, ¿qué tan difícil es practicar CI/CD? Bastante difícil, ¿no? Bueno, ahora no. Con las últimas innovaciones en Go, como Go Center GOPROXY, el camino hacia CI/CD de calidad es mucho más claro. GoCenter es una colección pública central para módulos Go inmutables. Le permite buscar módulos y versiones, también puede agregar fácilmente sus módulos para compartirlos públicamente.
Publicación traducida automáticamente
Artículo escrito por Pavan_Belagatti y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA