Absolutamente
Los indicadores de popularidad de idiomas retrasan las tendencias de la industria. Claro, puedes aprender cosas en la parte superior de TIOBE y ser uno de los otros millones de personas que conocen ese idioma (por ejemplo, Java) y probablemente no aprenderás nada nuevo aparte de la sintaxis del idioma. Es una idea mucho mejor dedicar su tiempo a aprender un idioma que implemente ideas nuevas para usted y que tenga alguna posibilidad de ser utilizado en lugares interesantes.
Go se usa en lugares como Docker [1] debido a dos de sus atributos clave: simplicidad y soporte para la concurrencia. Go es un lenguaje simple que se siente como algo que surgió de C. Hay muchas cosas que no admite que probablemente te volverán loco durante las primeras semanas que lo uses (por ejemplo, genéricos). Pero, toma algunas decisiones que le ahorrarán muchos dolores de cabeza más adelante. Por ejemplo, los creadores de Go han sido muy conscientes de limitar el lenguaje para realizar operaciones de tiempo constante a menos que sea obvio que la operación no puede ser de tiempo constante. Se pueden encontrar ejemplos de esto dentro de la conversión de tipos de matrices. El beneficio de esta simplicidad (en sintaxis y en el análisis del rendimiento) es que su código es fácil de leer y comprender, aunque puede ser un poco más extenso. Esto puede ser positivo para proyectos que necesitan ser bastante confiables. En segundo lugar, Go tiene un gran modelo de concurrencia. En lugar de confiar en hilos, cerraduras, semáforos, etc., Go usa gorutinas (que pueden considerarse hilos ligeros) y canales para la comunicación entre ellas. Es un buen modelo que facilita la escritura de servidores que solucionan fácilmente el problema de C10k [2].
- ¿Qué necesitas para crear un negocio de almacenamiento en la nube?
- ¿Qué conocimiento debo requerir para crear un software profesional?
- ¿Qué tipo de herramienta de depuración se puede implementar para que un depurador de software se vuelva eficiente en cuanto al tiempo para depurar un problema?
- Cómo mejorar mi productividad de programación
- ¿Qué es una configuración básica o típica para una aplicación que utiliza bases de datos SQL y NoSQL?
La adopción de Go definitivamente ha mejorado si sabes dónde buscar. Empresas como CloudFlare, Dropbox, Docker, etc., están buscando ir a construir sistemas de backend y middleware.
Lo más importante es que aprender Go significa que estará expuesto a un nuevo modelo de simultaneidad y a un código diferente. Esto es inherentemente más útil que elegir qué aprender según la popularidad actual.
Notas al pie
[1] Docker
[2] C10K – Un servidor web sin bloqueo en Go