Go 1.19 został już wydany i to są jego nowości

Ostatnio ogłoszono wydanie nowej wersji języka programowania «Go 1.19», wersja, która ulepsza poprzednie wydanie, dodając różne ulepszenia, a przede wszystkim poprawki błędów.Wśród nowości, które możemy wyróżnić, są między innymi ulepszenia w zarządzaniu pamięcią, ulepszenia bezpieczeństwa.

Dla tych, którzy są nowicjuszami w Go, powinniście wiedzieć, że jest to język programowania, który jest rozwijany przy udziale społeczności jako rozwiązanie hybrydowe, które łączy wysoką wydajność języków kompilowanych z zaletami, takimi jak języki skryptowe, takie jak łatwość pisania kodu, rozwój i ochrona przed błędami.

Składnia Go jest oparta na zwykłych elementach języka C. z pewnymi zapożyczeniami z języka Python. Język jest dość zwięzły, ale kod jest łatwy do odczytania i zrozumienia.

Kod Go jest kompilowany do oddzielnych binarnych plików wykonywalnych które działają natywnie, bez użycia maszyny wirtualnej (profilowanie, debugowanie i inne podsystemy rozwiązywania problemów w czasie wykonywania są wbudowane jako składniki środowiska uruchomieniowego).

Główne nowe funkcje Go 1.19

W tej nowej wersji Go 1.19, która jest prezentowana, podkreślono, że wykonano prace nad udoskonaleniem obsługi funkcji i typów ogólnych dodany w najnowszej wersji, za pomocą którego programista może zdefiniować i używać funkcji przeznaczonych do pracy z kilkoma typami jednocześnie, a optymalizacja wydajności niektórych programów używających generyków została zwiększona o 20%.

Kolejną zmianą, która wyróżnia się na tle nowej wersji, jest to dodano obsługę linków, list i prostszej składni aby zdefiniować nagłówki w komentarzach do dokumentów. Narzędzie gofmt zapewnia formatowanie z zaawansowanymi funkcjami komentarzy w dokumentacji API.

poza tym poprawiony model pamięci Go w celu dostosowania do C, C++, Java, JavaScript, Rust i Swift które nie dopuszczają sekwencyjnie spójnych wartości atomowych. W pakiecie sync/atomowym wprowadzono nowe typy, takie jak atomic.Int64 i atomic.Pointer[T], aby ułatwić korzystanie z wartości atomowych.

Z drugiej strony wspomina się również, że garbage collector ma teraz możliwość definiowania miękkich limitów, które są wymuszane przez ograniczenie rozmiaru sterty i bardziej agresywne zwracanie pamięci do systemu, co oznacza, że ​​nie ma gwarancji, że zużycie będzie mieścić się w określonych limitach we wszystkich warunkach. Limity miękkie mogą być przydatne do optymalizacji programów uruchamianych w stałych kontenerach pamięci.

Podkreśla się również, że w systemach Unix dodatkowe deskryptory plików są automatycznie włączane (zwiększenie limitu RLIMIT_NOFILE), w celu przyspieszenia wyrażeń dużych zmian na systemach x86-64 i ARM64 stosuje się tabele skoków, które umożliwiają przetwarzanie dużych wyrażeń zmian do 20% szybciej.

W systemach riscv64 zaimplementowano przekazywanie argumentów funkcji przez rejestry procesora, co pozwoliło na wzrost wydajności o około 10%.

Z innych zmian które wyróżniają się na tle nowej wersji:

  • Wprowadzono liczne optymalizacje wydajności.
  • Dodano obsługę dynamicznego ustawiania rozmiaru stosu procedury w celu zmniejszenia rozmiaru kopiowanych danych
  • Dodano eksperymentalne wsparcie dla środowisk Linux w systemach z procesorami Loongson opartymi na 64-bitowej architekturze LoongArch (GOARCH=loong64).
  • Zmiana modelu pamięci nie wpłynęła na zgodność z wcześniej napisanym kodem.
  • Dodano nowe ograniczenie kompilacji „unix”, które może być używane w wierszach „go:build” w celu odfiltrowania systemów uniksopodobnych (aix, android, darwin, dragonfly, freebsd, hurd, ilumos, ios, linux, netbsd, openbsd, solaris ).
  • Aby zwiększyć bezpieczeństwo, moduł os/exec ignoruje teraz ścieżki względne podczas rozwijania zmiennej środowiskowej PATH (na przykład podczas określania ścieżki pliku wykonywalnego bieżący katalog nie jest już sprawdzany).

Na koniec, jeśli chcesz dowiedzieć się więcej o tej nowej wersji, możesz sprawdzić szczegóły na poniższy link.


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.