Lëshimi i gjuhës së programimit Go 1.16

ËshtĂ« paraqitur versioni i gjuhĂ«s sĂ« programimit Go 1.16, e cila zhvillohet nga kompania Google nĂ« bashkĂ«punim me shoqĂ«rinĂ« si njĂ« zgjidhje hibride, duke kombinuar performancĂ«n e lartĂ« tĂ« gjuhĂ«ve tĂ« kompilimit me avantazhet e gjuhĂ«ve skiptike, si lehtĂ«sia nĂ« shkrimin e kodit, shpejtĂ«sia e zhvillimit dhe siguria nga gabimet. Kodi i projektit shpĂ«rndahet nĂ«n licencĂ«n BSD.

Sintaksa e Go-së është e bazuar në elemente të njohura nga gjuha C me disa huazime nga gjuha Python. Gjuha është mjaft e përshtatshme, por gjithashtu kodi lexohet dhe kuptohet lehtësisht. Kodi në gjuhën Go kompilohet në skedarë ekzekutivë binarë të veçantë, të cilët ekzekutohen në mënyrë natyrale pa përdorimin e makinerive virtuale (modulet e profilizimit, debugging dhe nën-sistemet e tjera për zbulimin e problemeve integrohen si komponentë të runtime), gjë që lejon arritjen e performancës që është në nivelin e programeve në gjuhën C.

Projekti zhvillohet fillimisht me fokus në programimin me shumë procese dhe funksionimin efikas në sisteme me shumë bërthama, duke ofruar gjithashtu mjete të implementuara në nivelin e operatorëve për organizimin e llogaritjeve paralel dhe ndërveprimin ndërmjet metodave që ekzekutohen paralelisht. Gjuha gjithashtu ofron mjete të integruara mbrojtjeje nga dalja jashtë zonave të lejuara të blloqeve të alokuar të memorjes dhe siguron mundësinë e përdorimit të një mbledhësi të plehrave.

Novitetet kryesore të prezantuara në versionin Go 1.16:

  • Paketa embed Ă«shtĂ« shtuar, duke ofruar mjete pĂ«r integimin e skedarĂ«ve dhe katalogĂ«ve tĂ« rastĂ«sishĂ«m nĂ« program. PĂ«r tĂ« specifikuar skedarĂ«t qĂ« duhet tĂ« integrohen nĂ« fazĂ«n e kompilimait, ofrohet njĂ« direktivĂ« e re «//go:embed». PĂ«r shembull, duke specifikuar nĂ« kod njĂ« koment «//go:embed test.txt» dhe duke shpallur njĂ« variabĂ«l «var f embed.FS» do tĂ« çojĂ« nĂ« integrimin e skedarit test.txt dhe mundĂ«sinĂ« pĂ«r t'u qasur tek ai pĂ«rmes njĂ« referencĂ« «f». NĂ« mĂ«nyrĂ« tĂ« ngjashme, mund tĂ« integrohen skedarĂ«t e nevojshĂ«m pĂ«r funksionimin ose vlerat e veçanta tĂ« njĂ« tipi tĂ« caktuar, pĂ«r shembull, pĂ«r tĂ« marrĂ« njĂ« variabĂ«l string «s» nga skedari version.txt mund tĂ« specifikohet: import _ "embed" //go:embed version.txt var s string print(s)
  • Sistemi i ri i moduleve me mbĂ«shtetje tĂ« integruar pĂ«r versionimin Ă«shtĂ« tani i detyrueshĂ«m, duke zĂ«vendĂ«suar mjetet pĂ«r menaxhimin e varĂ«sive bazuar nĂ« GOPATH. Variabli i mjedisit GO111MODULE tani Ă«shtĂ« i vendosur nĂ« 'on' siç Ă«shtĂ« standard, dhe regjimi i moduleve pĂ«rdoret pavarĂ«sisht pranisĂ« sĂ« skedarit go.mod nĂ« katalogun punues ose prind. NĂ« kĂ«tĂ« mod, komandat e ndĂ«rtimit, si ‘go build’ dhe ‘go test’, nuk ndryshojnĂ« pĂ«rmbajtjen e go.mod dhe go.sum, ndĂ«rsa komanda ‘go install’ trajton argumentet me tregues versioni (‘go install example.com/cmd@v1.0.0’). PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r, duhet tĂ« ndryshoni GO111MODULE nĂ« 'auto'. Vlen tĂ« theksohet se 96% e zhvilluesve tashmĂ« kanĂ« kaluar nĂ« sistemin e ri tĂ« moduleve.
  • Optimizimi i ndĂ«rtuesit Ă«shtĂ« kryer. PĂ«r projektet e mĂ«dha, ndĂ«rtimi tani realizohet 20-25% mĂ« shpejt dhe kĂ«rkon 5-15% mĂ« pak memorie.
  • Kompilatori tani mbĂ«shtet zbatimin inline tĂ« funksioneve me pĂ«rkufizime tĂ« shkurtra tĂ« cikleve ‘for’, vlerat e metodĂ«s (method values) dhe konstruksionet ‘type switch’.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r sistemet Apple me çipit e ri ARM tĂ« Apple M1. JanĂ« shtuar portet netbsd/arm64 dhe openbsd/mips64 me mbĂ«shtetje pĂ«r NetBSD nĂ« ARM me 64-bit dhe OpenBSD nĂ« sistemet MIPS64. NĂ« portin linux/riscv64 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r cgo dhe modalitetin "-buildmode=pie".
  • PĂ«rkrahja pĂ«r modalitetin e kompilimit x87 (GO386=387) Ă«shtĂ« ndalur. MbĂ«shtetje pĂ«r procesorĂ«t pa instruktione SSE2 tani Ă«shtĂ« e disponueshme pĂ«rmes modalitetit tĂ« programit "GO386=softfloat".

Së fundmi, mund të theksohet fillimi i testimit të versionit beta të gjuhës Dart 2.12, në të cilën është stabilizuar modaliteti i përdorimit të sigurt të vlerës "Null" (null safety), i cili ndihmon në evitimin e crash-ëve që shkaktohen nga përpjekjet për të përdorur variablat me vlera që nuk janë të definuara dhe janë caktuar në "Null". Ky modalitet nënkupton se variablat nuk mund të kenë vlera të paqarta, nëse nuk u caktohet shprehimisht vlera null. Në këtë modalitet, llojet e variablave merren parasysh me rigorozitet, çka i lejon kompiluesit të aplikojë optimizime të tjera. Përputhshmëria e llojeve kontrollohet në fazën e kompilimit; për shembull, në rastin e një përpjekjeje për t'i caktuar një vlerë "Null" një variabli me tipin që nuk nënkupton një gjendje të paqartë, siç është "int", do të njoftohet një gabim.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster