Izdanje programskog jezika Go 1.13

Predstavljeno izdanje programskog jezika Idi 1.13, koji razvija Google uz sudjelovanje zajednice kao hibridno rješenje koje kombinira visoke performanse kompiliranih jezika s prednostima skriptnih jezika kao što su lakoća pisanja koda, brzina razvoja i zaštita od pogrešaka. Šifra projekta distribuira pod BSD licencom.

Sintaksa Go-a temelji se na poznatim elementima jezika C uz neke posuđenice iz jezika Python. Jezik je prilično koncizan, ali je kod lako čitljiv i razumljiv. Go kod je kompajliran u samostalne binarne izvršne datoteke koje se izvode izvorno bez korištenja virtualnog stroja (profiliranje, otklanjanje pogrešaka i drugi podsustavi za otkrivanje problema tijekom izvođenja integrirani su kao komponente vremena izvođenja), što vam omogućuje postizanje performansi usporedivih s C programima.

Projekt je inicijalno razvijen s ciljem programiranja s više niti i učinkovitog rada na sustavima s više jezgri, uključujući pružanje sredstava na razini operatera za organiziranje paralelnog računanja i interakcije između metoda koje se paralelno izvode. Jezik također pruža ugrađenu zaštitu od previše dodijeljenih memorijskih blokova i pruža mogućnost korištenja skupljača smeća.

Glavni inovacijepredstavljeno u izdanju Go 1.13:

  • Paket crypto/tls ima podršku za protokol omogućenu prema zadanim postavkama TLS 1.3. Dodan novi paket "crypto/ed25519" s podrškom za Ed25519 digitalne potpise;
  • Dodana podrška za nove numeričke literalne prefikse za definiranje binarnih brojeva (npr. 0b101), oktalnih (0o377), imaginarnih (2.71828i) i heksadecimalnih brojeva s pokretnim zarezom (0x1p-1021), te mogućnost korištenja znaka "_" za vizualno odvajanje znamenki u velikom broju (1_000_000);
  • Uklonjeno je ograničenje korištenja samo nepredznačenih brojača u operacijama pomaka, čime se izbjegavaju nepotrebne pretvorbe u tip uint prije upotrebe operatora “‹‹” i “››”;
  • Dodana podrška za platformu Illumos (GOOS=illumos). Osigurana je kompatibilnost s platformom Android 10. Povećani su zahtjevi za minimalne verzije FreeBSD (11.2) i macOS (10.11 “El Capitan”).
  • Nastavak razvoja novog sustava modula, koji se može koristiti kao alternativa GOPATH-u. Suprotno prethodno najavljenim planovima u Go 1.13, ovaj sustav nije omogućen prema zadanim postavkama i zahtijeva aktivaciju putem varijable GO111MODULE=on ili korištenje konteksta u kojem se moduli automatski primjenjuju. Novi sustav modula ima integriranu podršku za upravljanje verzijama, mogućnosti isporuke paketa i poboljšano upravljanje ovisnostima. S modulima, programeri više nisu vezani za rad unutar GOPATH stabla, mogu eksplicitno definirati verzionirane ovisnosti i stvarati ponovljive verzije.

    Za razliku od prethodnih izdanja, automatska primjena novog sustava sada radi kada je datoteka go.mod prisutna u trenutnom radnom direktoriju ili nadređenom direktoriju kada se izvodi naredba go, uključujući i kada se nalazi u direktoriju GOPATH/src. Dodane su nove varijable okruženja: GOPRIVATE, koja definira staze javno dostupnih modula, i GOSUMDB, koja specificira parametre pristupa bazi podataka kontrolnih zbrojeva za module koji nisu navedeni u datoteci go.sum;

  • Naredba "go" prema zadanim postavkama učitava module i provjerava njihov integritet pomoću zrcalne baze modula i kontrolne sume koju održava Google (proxy.golang.org, sum.golang.org i index.golang.org);
  • Podrška samo za binarne pakete je ukinuta; izrada paketa u načinu “//go:binary-only-package” sada rezultira pogreškom;
  • Dodana je podrška za sufiks "@patch" na naredbu "go get", što ukazuje da se modul treba ažurirati na najnovije izdanje za održavanje, ali bez mijenjanja trenutne glavne ili sporedne verzije;
  • Prilikom dohvaćanja modula iz sustava kontrole izvora, naredba "go" sada izvodi dodatnu provjeru niza verzija, pokušavajući uskladiti brojeve pseudo-verzija s metapodacima iz repozitorija;
  • Dodana podrška pregled grešaka (omotavanje grešaka) kroz stvaranje omotača koji omogućuju korištenje standardnih rukovatelja greškama. Na primjer, pogreška "e" se može omotati oko pogreške "w" pružanjem metode Razmotati, vraćajući "w". Obje pogreške "e" i "w" dostupne su u programu i odluke se donose na temelju pogreške "w", ali "e" daje dodatni kontekst za "w" ili ga tumači drugačije;
  • Optimizirane su performanse runtime komponenti (primjećeno je povećanje brzine do 30%) i implementirano je agresivnije vraćanje memorije operativnom sustavu (prije se memorija vraćala nakon pet ili više minuta, a sada odmah nakon smanjenja veličine gomile).

Izvor: opennet.ru

Dodajte komentar