Go programski jezik izdanje 1.13

Poslao izdanje programskog jezika Idite 1.13, koji razvija Google uz sudjelovanje zajednice kao hibridno rješenje koje kombinuje visoke performanse kompajliranih jezika s prednostima skriptnih jezika kao što su jednostavnost pisanja koda, brzina razvoja i zaštita od grešaka. Šifra projekta distribuira pod BSD licencom.

Go-ova sintaksa je zasnovana na poznatim elementima jezika C sa nekim pozajmicama iz jezika Python. Jezik je prilično sažet, ali je kod lak za čitanje i razumijevanje. Go kod se kompajlira u samostalne binarne izvršne datoteke koje se pokreću nativno bez korištenja virtuelne mašine (profiliranje, otklanjanje grešaka i drugi podsistemi za otkrivanje problema tokom izvršavanja su integrisani kao runtime komponente), što vam omogućava da postignete performanse uporedive sa C programima.

Projekat je inicijalno razvijen sa okom na višenitnom programiranju i efikasnom radu na sistemima sa više jezgara, uključujući obezbeđivanje sredstava implementiranih na nivou operatera za organizovanje paralelnog računarstva i interakciju između paralelno izvođenih metoda. Jezik također pruža ugrađenu zaštitu od prekoračenja dodijeljenih memorijskih blokova i pruža mogućnost korištenja sakupljač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" sa podrškom za Ed25519 digitalne potpise;
  • Dodata podrška za nove numeričke literalne prefikse za definiranje binarnih brojeva (npr. 0b101), oktalnih (0o377), imaginarnih (2.71828i) i heksadecimalnog plutajućeg zareza (0x1p-1021), te mogućnost korištenja znaka "_" za vizualno razdvajanje cifara u velikom broju (1_000_000);
  • Uklonjeno je ograničenje korištenja samo nepotpisanih brojača u operacijama smjene, čime se izbjegavaju nepotrebne konverzije u tip uint prije upotrebe “‹‹” i “››” operatora;
  • Dodata podrška za Illumos platformu (GOOS=illumos). Osigurana je kompatibilnost sa platformom Android 10. Pojačani su zahtjevi za minimalne verzije FreeBSD-a (11.2) i macOS-a (10.11 “El Capitan”).
  • Nastavak razvoja novog sistema modula, koji se može koristiti kao alternativa GOPATH-u. Za razliku od prethodno najavljenih planova u Go 1.13, ovaj sistem nije omogućen prema zadanim postavkama i zahtijeva aktivaciju putem varijable GO111MODULE=on ili korištenje konteksta u kojem se moduli automatski primjenjuju. Novi sistem modula ima integrisanu podršku za verzionisanje, mogućnosti isporuke paketa i poboljšano upravljanje zavisnošću. Sa modulima, programeri više nisu vezani za rad unutar GOPATH stabla, mogu eksplicitno definirati verzionirane ovisnosti i kreirati ponovljive gradnje.

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

  • Komanda "go" po defaultu učitava module i provjerava njihov integritet koristeći zrcalo modula i bazu podataka checksum koju održava Google (proxy.golang.org, sum.golang.org i index.golang.org);
  • Podrška samo za binarne pakete je ukinuta; pravljenje paketa u režimu “//go:binary-only-package” sada dovodi do greške;
  • Dodata podrška za sufiks "@patch" komandi "go get", što ukazuje da modul treba ažurirati na najnoviju verziju za održavanje, ali bez promjene trenutne glavne ili manje verzije;
  • Prilikom preuzimanja modula iz sistema za kontrolu izvora, naredba "go" sada izvodi dodatnu provjeru niza verzije, pokušavajući upariti brojeve pseudo-verzija sa metapodacima iz spremišta;
  • Dodata podrška inspekcija greške (prematanje grešaka) kroz kreiranje omotača koji omogućavaju upotrebu standardnih rukovalaca greškama. Na primjer, greška "e" se može obaviti oko greške "w" pružanjem metode Odmotaj, vraćajući "w". Obje greške "e" i "w" su dostupne u programu i odluke se donose na osnovu greške "w", ali "e" daje dodatni kontekst za "w" ili ga drugačije tumači;
  • Optimizirane su performanse runtime komponenti (zapaženo je povećanje brzine do 30%) i implementiran je agresivniji povratak memorije u operativni sistem (ranije se memorija vraćala nakon pet ili više minuta, a sada odmah nakon smanjenja veličine hrpe).

izvor: opennet.ru

Dodajte komentar