Se espera que la esperada actualización Go 1.19 se publique en agosto, con un modelo de memoria revisado y nuevos tipos diseñados para mejorar el uso de valores atómicos. Actualmente en versión preliminar, Go 1.19 puede descargarse de go.dev, aunque sigue siendo inestable en este momento. Según las notas de la versión, la actualización de Go 1.19 alinea el modelo de memoria del lenguaje con los utilizados por C, C++, Java, JavaScript, Rust y Swift. También introduce varios tipos nuevos en el paquete sync/atomic para simplificar el uso de valores atómicos, como atomic.Int64 y atomic.Pointer(T). El modelo de memoria Go es esencial para especificar las condiciones en las que se garantiza que las lecturas de una variable de una goroutine observan los valores producidos por las escrituras en la misma variable desde una goroutine diferente. Notablemente, Go sólo proporciona atómicos secuencialmente consistentes, a diferencia de las formas más relajadas ofrecidas por otros lenguajes. Además del modelo de memoria revisado, Go 1.19 presenta un cambio menor en el lenguaje, corrigiendo el alcance de los parámetros de tipo en las declaraciones de métodos. Esta actualización no afecta a los programas existentes. La versión Go 1.19 sigue al hito que supuso el lanzamiento de Go 1.18 en marzo, que introdujo las tan solicitadas capacidades genéricas. Go 1.19 también aporta otras novedades y mejoras, como:
- Soporte en tiempo de ejecución de un límite de memoria suave, que abarca el heap de Go y la memoria gestionada por el tiempo de ejecución, excluyendo fuentes externas como mapeados binarios y memoria gestionada por otros lenguajes.
- Reducción de la asignación por parte del programador de rutinas de trabajo de GC en subprocesos inactivos del SO durante un ciclo periódico de GC cuando la aplicación está en gran parte inactiva.
- El compilador implementa una tabla de saltos para las sentencias de conmutación de enteros y cadenas de gran tamaño, lo que mejora el rendimiento hasta en un 20%.
- Soporte de encabezados, enlaces y listas más claros en los comentarios de los documentos.
- Reconocimiento de la restricción de compilación, unix, en las líneas go:build.
- Soporte Linux para la arquitectura Loongson 64-bit LoongArch.
Para los desarrolladores que buscan crear aplicaciones web, móviles y backend utilizando una plataforma no-code, AppMaster.io proporciona un entorno de desarrollo amplio e integrado que genera soluciones de software escalables sin necesidad de código. Con la capacidad de crear aplicaciones completas en cuestión de segundos, AppMaster.io es ideal para una amplia gama de clientes, desde pequeños negocios hasta empresas.