Go es un proyecto de código abierto, desarrollado por un equipo en Google, el cual tiene muchas personas que contribuyen desde el nicho de la comunidad abierta en ya más de 9 años. Go se ha desarrollado principalmente como un lenguaje de programación para sistemas, y se ha usado en proyectos comerciales incluso, como Docker.
En GopherCon 2017, algunas ideas de Go 2 empezaron a surgir, cuando el desarrollador clave de Go, Russ Cox, dio una plática sobre el futuro de Go, indicando algunas de las ideas que se implementarían en lo que se llamó informalmente “Go 2”. Los desarrolladores han indicado que la meta para Go 2 es corregir los problemas que tuvo Go para poder escalarlo, dando además acceso a todo el código existente de Go 1. Entre los cambios se incluyen características propuestas haciendo que Go fuese la versión 1.13, es decir, el paso uno en el proceso de evaluación.
Se busca, por ejemplo, que en Go 2 se incluya soporte adicional para el manejo de errores, introduciendo valores de solo-lectura inmutables, y añadiendo alguna forma de “generics”. El primer cambio, de hecho, será añadir soporte para los identificadores basados en Unicode TR31. Los desarrolladores dicen que esto es un problema importante para los programadores de Go que usan alfabetos no occidentales y que esta dificultad no debería ser realmente problema para nadie.
Otro cambio es el soporte de literales numéricas además de literales binarias enteras. Otros lenguajes tienen esas características y muchos programadores de Go han insistido que se añadan a Go lo más pronto posible. Pero el cambio final, que hará que se pase de Go 1.13 a Go 2 es la capacidad de tener enteros con signo como contadores de corrimiento (shifts counts). Los desarrolladores han estimado que el 38% de los no-corrimientos de constantes requieren de una conversión (artificial) de unidades uint, y la nueva capacidad serpa la de tener expresiones de corrimiento, las cuales podrán sincronizarse mejor con las expresiones de índica y las funciones interconstruidas cap y len.
Toda la información relevante puede hallarse en el sitio oficial del lenguaje Go.