Pas një periudhë gjashtë muajsh zhvillimi, është lëshuar versioni 1.25 i gjuhës së programimit Go, e zhvilluar nga Google në bashkëpunim me komunitetin. Gjuha kombinon performancën e lartë tipike të gjuhëve të kompilimit me avantazhe si thjeshtësia e kodit, shpejtësia e lartë e zhvillimit dhe mbrojtja nga gabimet.
Sintaksa e Go bazohet në elemente të njohura të gjuhës C me huazime të veçanta nga gjuha Oberon. Gjuha është mjaft konçize, por kodi lexohet dhe perceptohet lehtësisht. Kodi në gjuhën Go kompilohet në skedarë executable të veçantë, që funksionojnë natyrshëm, pa përdorimin e një makine virtuale (modulet e profilimit, debuguese dhe nënkategoritë e tjera të zbulimit të problemeve integrohen si komponente runtime), duke mundësuar arritjen e një performance të ngjashme me programet në gjuhën C.
Projekti është fillimisht zhvilluar me një fokus në programimin me shumë përgjegjësi dhe punën efikase në sisteme me shumë bërthama. Për shembull, në nivelin e operatorëve janë zbatuar mjete për organizimin e llogaritjeve paralele dhe ndërveprimin mes metodave që ekzekutohen paralelisht. Gjuha gjithashtu ofron mjete të ndërtuara për mbrojtjen nga daljet jashtë kufijve të buffers dhe mundësinë e përdorimit të mbledhësit të plehrave.
Ndryshimet në publikimin e ri përfshijnë:
- Është shtuar një mbledhës eksperimental plehrash 'greenteagc', i dizajnuar për të rritur performancën e krijimit dhe skanimit të objekteve të vogla. Në aplikacione ku përdoret intensivisht mbledhja e plehrave, përdorimi i 'greenteagc' tregon një reduktim të kostove të mbledhjes së plehrave prej 10-40%.
- Janë shtuar paketa eksperimentale encoding/json/v2 dhe encoding/json/jsontext. Paketa e parë përfshin një implementim të rishikuar me performancë të lartë të paketës encoding/json. Paketa e dytë ofron funksione për përpunimin e sintaksës JSON në nivel të ulët.
- Janë përfshirë një paketë të re testing/synctest për testimin e sinkronizimit midis rrjedhave të ndryshme të kodit që ekzekutohet paralelisht.
- Në komandën 'go build', opsioni '-asan' është aktivizuar si parazgjedhje, duke kryer verifikimin e rrjedhjeve të memories gjatë përfundimit të programit.
- Në komandën 'go vet' janë shtuar analizues të rinj 'waitgroup' dhe 'hostport' për kontrollimin e përdorimit të papërshtatshëm të sync.WaitGroup.Add dhe fmt.Sprintf('%s:%d', host, port).
- Kur llogaritet vlera e GOMAXPROCS, tani jo vetëm që caktohet numri i CPU-ve logjikë të disponueshëm, por merret parasysh edhe kufizimet e performancës të aplikuara në kontejnerë.
- Në kompajler dhe linkues janë implementuar mbështetje për gjenerimin e informacionit për debug në formatin DWARF5, i cili ofron një përfaqësim më kompakt të të dhënave.
Burimi: opennet.ru
