Vydanie programovacieho jazyka Go 1.14

Predloženej vydanie programovacieho jazyka Choďte na 1.14, ktorý je vyvíjaný spoločnosťou Google za účasti komunity ako hybridné riešenie, ktoré kombinuje vysoký výkon kompilovaných jazykov s výhodami skriptovacích jazykov, ako je jednoduchosť písania kódu, rýchlosť vývoja a ochrana pred chybami. Kód projektu distribuovaný pod licenciou BSD.

Syntax Go je založená na známych prvkoch jazyka C s niektorými výpožičkami z jazyka Python. Jazyk je pomerne stručný, ale kód je ľahko čitateľný a zrozumiteľný. Go kód je zostavený do samostatných binárnych spustiteľných súborov, ktoré bežia natívne bez použitia virtuálneho stroja (profilovanie, ladenie a ďalšie podsystémy na detekciu problémov pri behu sú integrované ako runtime komponenty), čo umožňuje dosiahnuť výkon porovnateľný s programami C.

Projekt je pôvodne vyvinutý s ohľadom na viacvláknové programovanie a efektívnu prevádzku na viacjadrových systémoch, vrátane poskytovania prostriedkov na úrovni operátora na organizáciu paralelných výpočtov a interakciu medzi paralelne vykonávanými metódami. Jazyk tiež poskytuje vstavanú ochranu pred nadmerne alokovanými pamäťovými blokmi a poskytuje možnosť používať zberač odpadu.

Hlavné inováciepredstavené vo vydaní Go 1.14:

  • Nový modulový systém v príkaze "go" je vyhlásený za pripravený na všeobecné použitie, štandardne povolený a odporúčaný na správu závislostí namiesto GOPATH. Nový modulový systém obsahuje integrovanú podporu verzií, možnosti doručovania balíkov a vylepšenú správu závislostí. S modulmi už vývojári nie sú viazaní na prácu v rámci stromu GOPATH, môžu explicitne definovať závislosti verzií a vytvárať opakovateľné zostavy.
  • Pridané podpora pre vkladanie rozhraní s prekrývajúcim sa súborom metód. Metódy zo vstavaného rozhrania môžu mať teraz rovnaké názvy a podpisy ako metódy v existujúcich rozhraniach. Explicitne deklarované metódy zostávajú jedinečné ako predtým.
  • Výkon výrazu „odložiť“ bol vylepšený, takže je takmer taký rýchly ako priame volanie odloženej funkcie, čo umožňuje vykonanie odloženej funkcie v kóde citlivom na výkon.
  • Poskytuje sa asynchrónna preempcia coroutines (goroutines) – slučky, ktoré neobsahujú volania funkcií, môžu teraz potenciálne viesť k zablokovaniu plánovača alebo oneskoreniu začiatku zbierania odpadu.
  • Efektívnosť systému prideľovania pamäťových stránok sa zlepšila a v konfiguráciách s veľkými hodnotami GOMAXPROCS je teraz podstatne menej sporov o zámky. Výsledkom je znížená latencia a zvýšená priepustnosť pri súčasnej intenzívnej distribúcii veľkých blokov pamäte.
  • Zamykanie bolo optimalizované a počet kontextových prepínačov bol znížený pri spustení interných časovačov používaných vo funkciách time.After, time.Tick, net.Conn.SetDeadline.
  • V príkaze go je príznak „-mod=vendor“ štandardne povolený, ak v koreňovom adresári existuje adresár dodávateľa určený na doručovanie externých závislostí viazaných na konkrétneho dodávateľa. Pridaný samostatný príznak "-mod=mod" na načítanie modulov z vyrovnávacej pamäte modulov namiesto z adresára "vendor". Ak je súbor go.mod len na čítanie, príznak „-mod=len na čítanie“ je štandardne nastavený, ak neexistuje žiadny horný adresár „vendor“. Pridaný príznak "-modfile=file" na určenie alternatívneho súboru go.mod namiesto súboru v koreňovom adresári modulu.
  • Pridaná premenná prostredia GOINSECURE, keď je nastavená, príkaz go nevyžaduje použitie HTTPS a preskakuje kontrolu certifikátu pri priamom načítaní modulov.
  • Kompilátor pridal príznak „-d=checkptr“, ktorý je štandardne povolený, na kontrolu súladu kódu s pravidlami pre bezpečné používanie unsafe.Pointer.
  • Súčasťou dodávky je nový balík hash/maphash s nekryptografickými hašovacími funkciami na vytváranie hašovacích tabuliek pre ľubovoľné bajtové sekvencie alebo reťazce.
  • Pridaná experimentálna podpora pre 64-bitovú platformu RISC-V v systéme Linux.
  • Pridaná podpora pre FreeBSD na 64-bitových systémoch ARM.

Zdroj: opennet.ru

Pridať komentár