Programmeerimiskeele Go 1.23 väljaanne, mis toetab telemeetria

Kuue kuu arenduse järel ilmus programmirke Go 1.23, mida arendab ettevõte Google koos kogukonnaga, olles hübriidlahendus, mis ühendab kompileeritavate keelte kõrge sooritusvõime skriptikeelte eelistega, nagu koodi kirjutamise lihtsus, arenduse kiirus ja vigade vähendamine. Projekti kood levitatakse BSD litsentsi alusel.

Go süntaks põhineb tavalistel C keele elementidel, kus on eraldi laenud Oberoni keelest. Keel on piisavalt lühike, kuid samas on kood kergesti loetav ja arusaadav. Go keeles kirjutatud kood kompileeritakse eraldi binaarfailideks, mis töötavad kohaliku taseme teenustes, ilma virtuaalmasina kasutamiseta (profiliseerimis- ja tõrkeotsingu moodulid ning muud probleemide tuvastamise alamsüsteemid integreeritakse runtime-komponentidena), mis võimaldab saavutada tootlikkuse, mis on sarnane C keeles kirjutatud programmidega.

Projekt on algselt välja töötatud silmas pidades mitme lõime programmeerimist ja tõhusat töötamist mitme tuumaga süsteemides, pakkudes sealhulgas operaatorite tasemel rakendatud tööriistu paralleelsete arvutuste korraldamiseks ja paralleelselt töötavate meetodite vaheliseks suhtlemiseks. Keel pakub ka sisseehitatud kaitsevahendeid lubamatute mäluplokkide ületamise vastu ja võimaldab kasutusele võtta prügikoristajat.

Uue väljaande muudatused:

  • For-tsüklites on väärtuste vahemike määramisel võimalik määrata funktsioon argumentidena range väljendiks, et kasutada seda funktsiooni iteraatorina, võimaldades luua oma iteraatoreid mis tahes järjestustele. Saab määrata funktsioone järgmistes tüüpides: func(func() bool), func(func(K) bool) ja func(func(K, V) bool). Uus iter pakett lisab põhitegevused järjestuste läbimiseks. Lisaks on pakettidesse slices ja maps lisatud uusi võimalusi iteraatoritega töötamiseks. Näiteks saab assotsiatiivse massiivi võtmete sorteeritud kujul läbimiseks nüüd kirjutada: "for i, x := range slices.Sorted(maps.Keys(m)) {…}".
  • Lisatud algtugi (lülitatakse sisse GOEXPERIMENT=aliastypeparams) tüüpide aliasite kasutamiseks, millel on oma parameetrid, geneerilistes funktsioonides, mille abil saab luua funktsioone, mis töötavad mitme tüübiga korraga.
  • Tööriistakomplekti on integreeritud võime saata telemeetriat server telemetry.go.dev. Telemeetriat salvestatakse kohalikes failides, mis on auditeerimiseks saadaval, ja see hõlmab ainult tööriistakomplekti kasutamise omadusi (telemeetriat ei lisata kasutaja rakendustele, mis on koostatud tööriistakomplekti abil). Vaikimisi on välisele serverile telemeetriate saatmine keelatud (opt-in) ja see nõuab aktiveerimist uue käsu "go telemetry on" kaudu. Telemeetriate saatmine aitab tuvastada anomaaliaid ja ebanormaalset käitumist, hinnata arendajate tegelemise omadusi tööriistakomplektiga ning mõista, millised valikud on kõige nõudlikumad ja millised ei ole peaaegu mingil kasutusel. Eeldatakse, et kogunenud statistika annab võimaluse tööriistakomplekti uuendada, tõsta efektiivsust ja mugavust.
    Programmeerimiskeele Go 1.23 väljaanne, mis toetab telemeetria
  • Lisatud käsk "go env -changed", et kuvada ainult seadeid, mille väärtused erinevad vaikimisi väärtustest.
  • Lisatud käsk "go mod tidy -diff", mis võimaldab muuta faile asemel kuvada muudatused patch formaadis diff.
  • Käsku "go vet" on lisatud versioonide analüsaator, mis näitab elemente, mis on valitud Go versiooni jaoks liiga uued. Näiteks annab analüsaator hoiatuse, kui kasutate funktsiooni reflect.TypeFor, mis ilmus versioonis 1.22, kui üritate seda kasutada moodulis, mis kuulutab enda toetust versioonile 1.21.
  • Ajavahemike ja kella rakenduste realiseerimist on parendatud, tehes muudatusi, mis on seotud vahemälu ja prügikoristuse optimeerimisega.
  • Lisatud pakett structs, mis määratleb tüüpide struktuuri omaduste muutmiseks.
  • Lisatud pakett unique, mis sisaldab funktsioone võrreldavate väärtuste kanoniseerimiseks.
  • Go.mod ja go.work failidesse on lisatud toetushaldus direktiivi godebug jaoks, et juhtida tõrkeotsimist.
  • Lisatud eksperimentaalsed toetused OpenBSD-le 64-bitistes RISC-V süsteemides (openbsd/riscv64). Parendatud toetust Linuxile, macOS-ile, ARM64-le, RISC-V-le ja WASI-le.
  • I386 ja amd64 arhitektuuride sooritusvõimet on parandatud, kasutades koodiprofiteerimise põhjal optimeerimist (PGO – Profile-guided optimization), mis arvestab käitusaja jooksul määratletud eripäradega.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster