Go programovací jazyk verze 1.13

Předložené vydání programovacího jazyka Přejděte na 1.13, který je vyvíjen společností Google za účasti komunity jako hybridní řešení, které kombinuje vysoký výkon kompilovaných jazyků s výhodami skriptovacích jazyků, jako je snadné psaní kódu, rychlost vývoje a ochrana proti chybám. Kód projektu distribuovány pod licencí BSD.

Syntaxe Go je založena na známých prvcích jazyka C s některými výpůjčkami z jazyka Python. Jazyk je poměrně stručný, ale kód je snadno čitelný a srozumitelný. Go kód je zkompilován do samostatných binárních spustitelných souborů, které běží nativně bez použití virtuálního stroje (profilování, ladění a další subsystémy pro detekci problémů za běhu jsou integrovány jako runtime komponenty), což umožňuje dosáhnout výkonu srovnatelného s programy C.

Projekt je zpočátku vyvíjen s ohledem na vícevláknové programování a efektivní provoz na vícejádrových systémech, včetně poskytování prostředků implementovaných na úrovni operátora pro organizaci paralelních výpočtů a interakci mezi paralelně prováděnými metodami. Jazyk také poskytuje vestavěnou ochranu proti přetečení alokovaných paměťových bloků a poskytuje možnost používat garbage collector.

hlavní inovacepředstaveno ve verzi Go 1.13:

  • Balíček crypto/tls má ve výchozím nastavení povolenou podporu protokolů TLS 1.3. Přidán nový balíček "crypto/ed25519" s podporou digitálních podpisů Ed25519;
  • Přidána podpora nových číselných doslovných předpon pro definování binárních čísel (např. 0b101), osmičkové (0o377), imaginární (2.71828i) a hexadecimální pohyblivé řádové čárky (0x1p-1021) a možnost používat znak „_“ k vizuálnímu oddělení číslic ve velkém počtu (1_000_000);
  • Omezení používání pouze počítadel bez znaménka v operacích směny bylo odstraněno, což zabraňuje zbytečným převodům na typ uint před použitím operátorů „‹‹“ a „››“;
  • Přidána podpora pro platformu Illumos (GOOS=illumos). Byla zajištěna kompatibilita s platformou Android 10. Byly zvýšeny požadavky na minimální verze FreeBSD (11.2) a macOS (10.11 „El Capitan“).
  • Pokračující vývoj nového modulového systému, který lze použít jako alternativu ke GOPATH. Na rozdíl od dříve oznámených plánů v Go 1.13 není tento systém ve výchozím nastavení povolen a vyžaduje aktivaci prostřednictvím proměnné GO111MODULE=on nebo použití kontextu, ve kterém se moduly aplikují automaticky. Nový modulový systém obsahuje integrovanou podporu verzování, možnosti doručování balíčků a vylepšenou správu závislostí. S moduly již vývojáři nejsou vázáni na práci v rámci stromu GOPATH, mohou explicitně definovat verzované závislosti a vytvářet opakovatelné sestavení.

    Na rozdíl od předchozích verzí nyní automatická aplikace nového systému funguje, když je soubor go.mod přítomen v aktuálním pracovním adresáři nebo nadřazeném adresáři při spuštění příkazu go, včetně toho, když je v adresáři GOPATH/src. Byly přidány nové proměnné prostředí: GOPRIVATE, která definuje cesty k veřejně přístupným modulům, a GOSUMDB, která specifikuje přístupové parametry do databáze kontrolních součtů pro moduly, které nejsou uvedeny v souboru go.sum;

  • Příkaz „go“ standardně načítá moduly a kontroluje jejich integritu pomocí databáze zrcadlení modulů a kontrolních součtů spravované společností Google (proxy.golang.org, sum.golang.org a index.golang.org);
  • Podpora pouze pro binární balíčky byla ukončena, vytváření balíčku v režimu „//go:binary-only-package“ nyní vede k chybě;
  • Přidána podpora pro příponu "@patch" k příkazu "go get", což naznačuje, že modul by měl být aktualizován na nejnovější verzi údržby, ale beze změny aktuální hlavní nebo vedlejší verze;
  • Při získávání modulů ze zdrojových řídicích systémů nyní příkaz "go" provádí dodatečnou kontrolu řetězce verze, přičemž se pokouší porovnat čísla pseudoverzí s metadaty z úložiště;
  • Přidána podpora kontrola chyb (zabalení chyb) prostřednictvím vytvoření obalů, které umožňují použití standardních ovladačů chyb. Například, chyba "e" může být zabaleno kolem chyby "w" poskytnutím metody Rozbalit, vrací "w". V programu jsou k dispozici obě chyby „e“ i „w“ a rozhodnutí se provádějí na základě chyby „w“, ale „e“ poskytuje další kontext k „w“ nebo jej interpretuje odlišně;
  • Byl optimalizován výkon runtime komponent (bylo zaznamenáno zvýšení rychlosti až o 30 %) a byl implementován agresivnější návrat paměti do operačního systému (dříve se paměť vracela po pěti a více minutách, ale nyní okamžitě po zmenšení velikosti haldy).

Zdroj: opennet.ru

Přidat komentář