Go 1.19 ja va ser alliberat i aquestes són les seves novetats

fa poc es va donar a conèixer el llançament de la nova versió del llenguatge de programació «Go 1.19», versió que arriba a millorar el llançament anterior afegint diverses millores i sobretot correccions d'errors, de les novetats que podem destacar hi ha les millores del maneig de memòria, millores de seguretat, entre altres coses més.

Per als que desconeixen de Go, han de saber que aquest és un llenguatge de programació que és desenvolupat en participació de la comunitat com una solució híbrida que combina l'alt rendiment dels llenguatges compilats amb avantatges com ara els llenguatges de scripting com la facilitat per escriure codi de desenvolupament i protecció contra errors.

La sintaxi de Go es basa en els elements habituals del llenguatge C amb alguns préstecs del llenguatge Python. El llenguatge és força concís, però el codi és fàcil de llegir i entendre.

El codi de Go es compila en fitxers executables binaris independents que s'executen de forma nativa, sense utilitzar una màquina virtual (els subsistemes de detecció de problemes de creació de perfils, depuració i altres en temps d'execució estan integrats com a components de temps d'execució).

Principals novetats de Go 1.19

En aquesta nova versió que es presenta de Go 1.19 es destaca que s'ha treballat per refinar el suport per a funcions i tipus genèrics agregats a l'última versió, amb l'ajuda dels quals el desenvolupador pot definir i utilitzar funcions dissenyades per treballar amb diversos tipus alhora, a més que s'ha dut a terme l'optimització del rendiment d'alguns programes que utilitzen genèrics ha augmentat en un 20%.

Un altre dels canvis que es destaca de la nova versió és que es va afegir suport per a enllaços, llistes i una sintaxi més simple per definir capçaleres als comentaris del document. La utilitat gofmt proporciona format tenint en compte les característiques avançades dels comentaris amb la documentació de l'API.

A més d'això es va revisar el model de memòria Go per alinear-lo amb C, C++, Java, JavaScript, Rust i Swift que no admeten valors atòmics consistents seqüencialment. S'han introduït nous tipus com atomic.Int64 i atomic.Pointer[T] al paquet sync/atomic per facilitar l'ús de valors atòmics.

D'altra banda, també s'esmenta que el recol·lector d'escombraries ara té la capacitat de definir límits flexibles, que s'imposen en limitar la mida de l'emmagatzematge dinàmic i tornar la memòria al sistema de manera més agressiva, és a dir, no es garanteix que el consum estarà dins dels límits especificats en totes les condicions. Els límits suaus poden ser útils per optimitzar programes que s'executen en contenidors de memòria fixa.

També es destaca que als sistemes Unix, els descriptors de fitxers addicionals s'habiliten automàticament (augmentant el límit RLIMIT_NOFILE), per accelerar les expressions de canvi grans als sistemes x86-64 i ARM64, s'utilitzen taules de salt, que permeten processar expressions de canvi grans fins a un 20% més ràpid.

En els sistemes riscv64, es va implementar el pas d'arguments de funció a través de registres de la CPU, cosa que va permetre aconseguir un augment del rendiment al voltant del 10%.

Dels altres canvis que es destaquen d'aquesta nova versió:

  • Es van implementar nombroses optimitzacions de rendiment.
  • S'ha afegit suport per configurar dinàmicament la mida de la pila de rutines per reduir la mida de les dades copiades
  • S'ha afegit suport experimental per a entorns Linux en sistemes amb processadors Loongson basats en l'arquitectura LoongArch de 64 bits (GOARCH=loong64).
  • Canviar el model de memòria no va afectar la compatibilitat amb el codi escrit prèviament.
  • S'ha afegit una nova restricció de compilació "unix" que es pot utilitzar en les línies "go:build" per filtrar els sistemes similars a Unix (aix, android, darwin, dragonfly, freebsd, hurd, illums, ios, linux, netbsd, openbsd, solaris).
  • Per millorar la seguretat, el mòdul us/exec ara ignora les rutes relatives en expandir la variable d'entorn PATH (per exemple, en determinar la ruta d'un fitxer executable, el directori actual ja no es verifica).

Finalment si estàs interessat en poder conèixer més sobre aquest nou llançament, pots consultar els detalls a el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.