Vydanie programovacieho jazyka Go 1.13

Predloženej vydanie programovacieho jazyka Choďte na 1.13, 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.13:

  • Balík crypto/tls má štandardne povolenú podporu protokolov TLS 1.3. Pridaný nový balík „crypto/ed25519“ s podporou digitálnych podpisov Ed25519;
  • Pridaná podpora pre nové číselné doslovné predpony na definovanie binárnych čísel (napr. 0b101), osmičkových (0o377), imaginárnych (2.71828i) a hexadecimálnych s pohyblivou rádovou čiarkou (0x1p-1021) a možnosť použiť znak „_“ na vizuálne oddelenie číslic vo veľkom počte (1_000_000);
  • Obmedzenie používania iba počítadiel bez znamienka v zmenových operáciách bolo odstránené, čo zabraňuje zbytočným konverziám na typ uint pred použitím operátorov „‹‹“ a „››“;
  • Pridaná podpora pre platformu Illumos (GOOS=illumos). Kompatibilita s platformou Android 10 bola zabezpečená Požiadavky na minimálne verzie FreeBSD (11.2) a macOS (10.11 “El Capitan”).
  • Pokračujúci vývoj nového modulového systému, ktorý možno použiť ako alternatívu ku GOPATH. Na rozdiel od predtým oznámených plánov v Go 1.13 tento systém nie je štandardne povolený a vyžaduje aktiváciu prostredníctvom premennej GO111MODULE=on alebo použitie kontextu, v ktorom sa moduly aplikujú automaticky. 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.

    Na rozdiel od predchádzajúcich vydaní teraz funguje automatická aplikácia nového systému, keď je súbor go.mod prítomný v aktuálnom pracovnom adresári alebo nadradenom adresári pri spustení príkazu go, vrátane toho, keď je v adresári GOPATH/src. Boli pridané nové premenné prostredia: GOPRIVATE, ktorá definuje cesty k verejne prístupným modulom a GOSUMDB, ktorá špecifikuje prístupové parametre do databázy kontrolných súčtov pre moduly, ktoré nie sú uvedené v súbore go.sum;

  • Príkaz „go“ štandardne načíta moduly a skontroluje ich integritu pomocou zrkadla modulov a databázy kontrolných súčtov, ktorú spravuje Google (proxy.golang.org, sum.golang.org a index.golang.org);
  • Podpora len pre binárne balíky bola ukončená. Vytváranie balíka v režime „//go:binary-only-package“ teraz vedie k chybe;
  • Pridaná podpora pre príponu „@patch“ k príkazu „go get“, čo naznačuje, že modul by mal byť aktualizovaný na najnovšie vydanie údržby, ale bez zmeny aktuálnej hlavnej alebo vedľajšej verzie;
  • Pri získavaní modulov zo zdrojových riadiacich systémov príkaz "go" teraz vykonáva dodatočnú kontrolu reťazca verzie, pričom sa pokúša porovnať čísla pseudoverzií s metaúdajmi z úložiska;
  • Pridaná podpora kontrola chýb (zabalenie chýb) prostredníctvom vytvorenia obalov, ktoré umožňujú použitie štandardných obslužných programov chýb. Napríklad, chyba "e" možno zabaliť okolo chyby "w" poskytnutím metódy Rozbaliť, vracia "w". V programe sú k dispozícii obe chyby „e“ aj „w“ a rozhodnutia sa robia na základe chyby „w“, ale „e“ poskytuje dodatočný kontext k „w“ alebo ho interpretuje odlišne;
  • Bol optimalizovaný výkon runtime komponentov (bolo zaznamenané zvýšenie rýchlosti až o 30 %) a implementovaný agresívnejší návrat pamäte do operačného systému (predtým sa pamäť vracala po piatich a viacerých minútach, ale teraz okamžite po zmenšení veľkosti haldy).

Zdroj: opennet.ru

Pridať komentár