DEV Community

Cover image for Lo nuevo en Golang 1.23: Mejoras en el lenguaje, compilador y herramientas
Roberto Morais
Roberto Morais

Posted on

1

Lo nuevo en Golang 1.23: Mejoras en el lenguaje, compilador y herramientas

El 13 de agosto de 2024, el equipo de Go lanzó Golang 1.23, una versión que trae novedades importantes y mejoras enfocadas en la eficiencia, el compilador y el lenguaje en general. ¡Aquí te resumo lo más destacado de esta actualización!

🚀 Cambios en el Lenguaje

🔄 Iteradores en bucles for-range

Ahora, los bucles for-range soportan funciones iteradoras con las siguientes firmas:

  • func(func() bool)
  • func(func(K) bool)
  • func(func(K, V) bool)

Esto facilita la iteración sobre colecciones personalizadas y ofrece mayor flexibilidad al trabajar con estructuras de datos propias.

🧩 Alias de tipos genéricos (experimental)

Se introduce un soporte preliminar para alias de tipos genéricos. Aunque todavía está en fase experimental y debe habilitarse manualmente, esta funcionalidad promete simplificar la reutilización de tipos genéricos a medida que evoluciona el lenguaje.

🛠️ Novedades en Herramientas

📊 Telemetría opcional

Go 1.23 incluye un sistema de telemetría opcional que recopila estadísticas de uso y fallos del compilador. Esta información ayudará al equipo de Go a mejorar futuras versiones.

🧑‍💻 Nuevas opciones del comando go

Se han añadido nuevas opciones al comando go que facilitarán la gestión de proyectos:

  • go env -changed: Muestra solo las variables de entorno modificadas.
  • go mod tidy -diff: Muestra los cambios necesarios como un diff sin modificar archivos.
  • go list -m -json: Incluye campos como Sum y GoModSum para gestionar dependencias.

⚡ Mejoras en el Compilador y Rendimiento

El compilador en Go 1.23 trae optimizaciones importantes:

  • Optimización de variables locales: Se ha reducido el uso de memoria gracias a mejoras en la superposición de espacios en la pila.
  • Optimización Guiada por Perfil (PGO): Mejora el tiempo de compilación y la eficiencia general en proyectos grandes.

Estas mejoras no solo aceleran el proceso de desarrollo, sino que también optimizan la ejecución de las aplicaciones en producción.

🔧 Mejoras en el Runtime

Se han optimizado los temporizadores (time.Timer y time.Ticker) para que sean recolectados por el garbage collector más rápidamente cuando pierden referencias. Esto mejora la gestión de recursos y la eficiencia del runtime.

📚 Actualizaciones en Bibliotecas Estándar

Varias bibliotecas estándar reciben mejoras:

  • crypto/x509: Ahora rellena automáticamente el campo Certificate.Leaf al cargar pares de claves, facilitando el uso de certificados.
  • Mejoras en go/types y os.

Estas actualizaciones están orientadas a mejorar la seguridad, el rendimiento y la experiencia de desarrollo con Go.

🗂️ Compatibilidad y Requisitos de Plataforma

Go 1.23 mantiene la compatibilidad hacia atrás, pero introduce cambios mínimos en los requisitos de algunas plataformas:

  • macOS: Se requiere macOS 11 Big Sur o superior.
  • Linux: Es la última versión compatible con kernel 2.6.32; futuras versiones requerirán al menos kernel 3.2.

🎯 Conclusión

La versión 1.23 de Go refuerza el compromiso del lenguaje con la eficiencia, flexibilidad y rendimiento. Las novedades en el compilador, el runtime y las herramientas aseguran que Go siga siendo una opción sólida para desarrolladores de todo el mundo.

¡Actualiza a Go 1.23 y prueba todas estas novedades! 🚀

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

The best way to debug slow web pages cover image

The best way to debug slow web pages

Tools like Page Speed Insights and Google Lighthouse are great for providing advice for front end performance issues. But what these tools can’t do, is evaluate performance across your entire stack of distributed services and applications.

Watch video