Lëshimi i gjuhës programuese Go 1.13

prezantuar lëshimi i gjuhës së programimit Shkoni 1.13, e cila po zhvillohet nga Google me pjesëmarrjen e komunitetit si një zgjidhje hibride që kombinon performancën e lartë të gjuhëve të përpiluara me avantazhet e gjuhëve të skriptimit si lehtësia e shkrimit të kodit, shpejtësia e zhvillimit dhe mbrojtja nga gabimet. Kodi i projektit shperndare nga nën licencën BSD.

Sintaksa e Go bazohet në elementë të njohur të gjuhës C me disa huazime nga gjuha Python. Gjuha është mjaft koncize, por kodi është i lehtë për t'u lexuar dhe kuptuar. Kodi Go përpilohet në ekzekutues binar të pavarur që funksionojnë në mënyrë të pavarur pa përdorur një makinë virtuale (profilimi, korrigjimi dhe nënsistemet e tjera të zbulimit të problemeve të kohës së ekzekutimit janë të integruara si komponentët e kohës së funksionimit), i cili ju lejon të arrini performancë të krahasueshme me programet C.

Projekti është zhvilluar fillimisht duke pasur parasysh programimin me shumë fije dhe funksionimin efikas në sistemet me shumë bërthama, duke përfshirë sigurimin e mjeteve në nivel operatori për organizimin e llogaritjeve paralele dhe ndërveprimin midis metodave të ekzekutuara paralelisht. Gjuha ofron gjithashtu mbrojtje të integruar kundër blloqeve të kujtesës së tepërt dhe ofron mundësinë për të përdorur një grumbullues mbeturinash.

Kryesore risitëprezantuar në versionin Go 1.13:

  • Paketa crypto/tls ka mbështetjen e protokollit të aktivizuar si parazgjedhje TLS 1.3. U shtua paketa e re "crypto/ed25519" me mbështetje për nënshkrimet dixhitale Ed25519;
  • Mbështetje e shtuar për parashtesa të reja numerike letrare për të përcaktuar numrat binarë (p.sh. 0b101), oktal (0o377), imagjinar (2.71828i) dhe pikë lëvizëse heksadecimal (0x1p-1021) dhe aftësinë për të përdorur karakterin "_" për të ndarë vizualisht shifra në numër të madh (1_000_000);
  • Është hequr kufizimi për përdorimin e vetëm numëruesve të panënshkruar në operacionet e ndërrimit, gjë që shmang konvertimet e panevojshme në llojin uint përpara përdorimit të operatorëve "‹‹" dhe "››";
  • Mbështetje e shtuar për platformën Illumos (GOOS=illumos). Është siguruar përputhshmëria me platformën Android 10. Kërkesat për versionet minimale të FreeBSD (11.2) dhe macOS (10.11 "El Capitan") janë rritur.
  • Zhvillimi i vazhdueshëm i sistemit të ri të modulit, i cili mund të përdoret si një alternativë ndaj GOPATH. Ndryshe nga planet e shpallura më parë në Go 1.13, ky sistem nuk aktivizohet si parazgjedhje dhe kërkon aktivizimin përmes variablës GO111MODULE=on ose përdorimin e një konteksti në të cilin modulet aplikohen automatikisht. Sistemi i ri i modulit përmban mbështetje të integruar të versionit, aftësi për dërgimin e paketave dhe menaxhim të përmirësuar të varësisë. Me modulet, zhvilluesit nuk janë më të lidhur me punën brenda një peme GOPATH, mund të përcaktojnë në mënyrë eksplicite varësitë e versionuara dhe të krijojnë ndërtime të përsëritshme.

    Ndryshe nga versionet e mëparshme, aplikimi automatik i sistemit të ri tani funksionon kur një skedar go.mod është i pranishëm në direktorinë aktuale të punës ose direktorinë prind kur ekzekutohet komanda go, duke përfshirë edhe kur është në drejtorinë GOPATH/src. Variabla të reja mjedisore janë shtuar: GOPRIVATE, e cila përcakton shtigjet e moduleve të aksesueshme nga publiku dhe GOSUMDB, e cila specifikon parametrat e aksesit në bazën e të dhënave checksum për modulet që nuk janë të listuara në skedarin go.sum;

  • Komanda "shko" si parazgjedhje ngarkon modulet dhe kontrollon integritetin e tyre duke përdorur pasqyrën e modulit dhe bazën e të dhënave kontrolluese të mbajtur nga Google (proxy.golang.org, sum.golang.org dhe index.golang.org);
  • Mbështetja vetëm për paketat binare është ndërprerë; ndërtimi i një pakete në modalitetin “//go:vetëm-binare-paketë” tani rezulton në një gabim;
  • Mbështetja e shtuar për prapashtesën "@patch" në komandën "shko merr", që tregon se moduli duhet të përditësohet në versionin më të fundit të mirëmbajtjes, por pa ndryshuar versionin aktual kryesor ose të vogël;
  • Kur merren module nga sistemet e kontrollit të burimit, komanda "shko" tani kryen një kontroll shtesë në vargun e versionit, duke u përpjekur të përputhë numrat e pseudo-versionit me meta të dhënat nga depoja;
  • Mbështetje e shtuar inspektimi i gabimeve (mbështjellja e gabimeve) përmes krijimit të mbështjellësve që lejojnë përdorimin e trajtuesve standardë të gabimeve. Për shembull, një gabim "e" mund të mbështillet rreth gabimit "w" duke ofruar një metodë Zhbllokohet, duke kthyer "w". Të dy gabimet "e" dhe "w" janë të disponueshme në program dhe vendimet merren në bazë të gabimit "w", por "e" ofron kontekst shtesë për "w" ose e interpreton atë ndryshe;
  • Performanca e komponentëve të kohës së funksionimit është optimizuar (është vënë re një rritje e shpejtësisë deri në 30%) dhe është zbatuar një kthim më agresiv i memories në sistemin operativ (më parë, memoria kthehej pas pesë ose më shumë minutash, por tani menjëherë pas zvogëlimit të madhësisë së grumbullit).

Burimi: opennet.ru

Shto një koment