La nueva versión del lenguaje de programación de Google, Go 1.21, trae nuevas funciones integradas para facilitar la tarea de los usuarios.
Go 1.21, la última actualización del lenguaje de programación Go de Google, ya está disponible como versión candidata. La nueva versión agrega funciones integradas (mínimo, máximo y claro) y hace que la optimización guiada por perfil (PGO) esté disponible de forma general. También se destacan las adaptaciones de WebAssembly.
Publicada el 21 de junio, la versión candidata de Go 1.21 se puede descargar desde el sitio web del proyecto, con la versión etiquetada como RC2 debido a que se encontró y solucionó un error después de go1.21.rc1. El lanzamiento de la producción se espera para agosto.
Detalles sobre la versión
Las funciones min y max calculan el valor más pequeño o más grande, respectivamente, de un número fijo de argumentos o tipos ordenados. Debe haber al menos un argumento. La función clear toma un argumento de tipo de parámetro map, slice o type y elimina o pone a cero todos los elementos.
La optimización guiada por perfiles, presentada como versión preliminar en Go 1.20 en febrero, pasa del estado de versión preliminar en la nueva versión. PGO permite que la cadena de herramientas del compilador realice optimizaciones específicas de la carga de trabajo y de la aplicación en función de la información del perfil de tiempo de ejecución.
Hasta ahora, PGO ha mejorado el rendimiento entre un 2% y un 7% cuando se midió el impacto en un amplio conjunto de programas. El compilador Go se ha reconstruido con PGO habilitado.
Además, Go 1.21 promete mejoras de rendimiento adicionales. Ajustar el recolector de elementos no utilizados podría resultar en que algunas aplicaciones vean una reducción de hasta un 40% en la latencia de cola, mientras que la recopilación de seguimientos con runtime/trace ahora incurre en un costo de CPU mucho menor en los sistemas AMD64 y Arm64.
Otras características de Go 1.21:
Por otro lado, se está realizando una vista previa de un puerto WASI (WebAssembly System Interface) experimental. Para ayudar a escribir código WebAssembly más general, el compilador también admite una nueva directiva wasmimport para importar funciones desde el host Wasm.
Además, la biblioteca estándar agrega un nuevo paquete log/slog para el registro estructurado. Se ofrece un nuevo paquete de sectores para operaciones comunes en sectores de cualquier tipo de elemento. Esto incluye funciones de clasificación que generalmente son más rápidas y ergonómicas que el paquete de clasificación.
La biblioteca estándar también agrega un nuevo paquete de mapas para operaciones comunes en mapas de cualquier tipo de clave o elemento. Un nuevo paquete cmp incluye nuevas utilidades para comparar valores ordenados.
La herramienta Go ahora es compatible con la compatibilidad de idiomas hacia atrás y hacia adelante. Así, se han realizado mejoras en la inferencia de tipos para funciones genéricas. La descripción de la inferencia de tipos se ha ampliado y aclarado en la especificación.
Y como si fuera poco, una versión futura de Go abordará un problema común con el lenguaje: captura de variable de bucle. Go 1.21 presenta una vista previa de esta capacidad, que se puede habilitar en el código mediante una variable de entorno.