Zespół GO ujawnił ogłoszenie o wydaniu Go 1.14, nowa wersja otwartego języka programowania opracowanego przez Google. Zgodnie z obietnicą ta wersja nie przekroczyła miesiąca lutego i Go Team nie przestawało dziękować wszystkim, którzy byli na tyle uprzejmi, aby wnieść swój wkład do projektu tej wersji, albo poprzez komentarze przeznaczone w tym celu, a także dla tych, którzy uczestniczyli w beta teście lub poprzez wydawanie kodów, zgłaszanie błędów i przesyłanie komentarzy.
Do tej pory Zespół GO dołożył wszelkich starań, aby utrzymać wyzwanie rozpoczęte przez Roba Pike'a, jeden z trzech twórców Golang, który Chciałem, aby ten język ułatwił i przyspieszył programowanie na dużą skalę. Ponieważ składnia Go jest oparta na znanych elementach języka C z indywidualnymi zapożyczeniami z języka Python. Język jest wystarczająco zwięzły, ale kod jest łatwy do odczytania i zrozumienia.
Kod Go jest kompilowany w oddzielnych binarnych plikach wykonywalnych które działają natywnie bez użycia maszyny wirtualnej (profile, moduły debugowania i inne podsystemy rozwiązywania problemów są zintegrowane w czasie wykonywania jako komponenty środowiska wykonawczego), które umożliwia działanie porównywalne z C.
Projekt został początkowo opracowany z myślą o programowaniu wielowątkowym i wydajnej pracy w systemach wielordzeniowych, zapewniając nawet środki wdrożone na poziomie operatora do organizowania obliczeń równoległych i interakcji między metodami równoległymi.
Język zapewnia również wbudowaną ochronę przed przydzielonymi obszarami przepełnienia bloków pamięci i zapewnia możliwość korzystania z modułu odśmiecania pamięci.
Główne nowe funkcje Go 1.14
Główna zmiana w tej nowej wersji dotyczy nowy system modułów w poleceniu go do powszechnego użytku, jest domyślnie włączone i jest zalecane do zarządzania zależnościami zamiast GOPATH.
Nowy system modułów ma wbudowaną kompatybilność wersji, narzędzia do dostarczania paczek i ulepszony system zarządzania zależnościami. Za pomocą modułów programiści nie są już zobowiązani do pracy w drzewie GOPATH, mogą jawnie definiować zależności oparte na wersji i tworzyć powtarzalne zestawy.
Ponadto, wątki nie będą już musiały wisieć w nieskończoność, jak w powyższym przypadku z pętlą bez wywoływania funkcji, ponieważ Go Scheduler sprawdza pewien możliwy czas wykonania bieżącej procedury podczas wywołań funkcji przed usunięciem jej z wątku do otwartej przestrzeni i umożliwia wykonanie nowe procedury. Będzie to miało wpływ na mniejsze opóźnienia w Go 1.14.
Kolejna zmiana to sDodano obsługę osadzania interfejsów z zestawem nakładających się metod. Metody we wbudowanym interfejsie mogą teraz mieć takie same nazwy i podpisy, jak metody w istniejących interfejsach. Jawnie zadeklarowane metody pozostają unikalne, jak poprzednio.
Z drugiej strony zwiększono wydajność wyrażenia „odrocz”, którego użycie obecnie prawie nie różni się szybkością od bezpośredniego wywołania funkcji leniwej, co pozwala na użycie leniwego początku funkcji w kodzie wrażliwym na wydajność.
Zapewniona jest również asynchroniczna preferencja wyprzedzająca- Pętle, które nie zawierają wywołań funkcji, mogą teraz prowadzić do zakleszczenia harmonogramu lub opóźnienia w rozpoczęciu czyszczenia pamięci.
Poprawiono wydajność systemu alokacji stron pamięci, który teraz ma znacznie mniej konfliktów blokad w konfiguracjach z dużymi wartościami GOMAXPROCS.
W rezultacie opóźnienia zostały zmniejszone, a wydajność wzrosła dzięki intensywnej równoległej alokacji dużych bloków pamięci.
Już nie możesz znaleźć pełniejszą listę tych nowych funkcji Clave w uwagach do wydania GO 1.14.
Ponadto ta nowa wersja będzie działać w systemie macOS 10.11 El Capitan i nadal będzie obsługiwać 32-bitowe pliki binarne na tej platformie. Może to być najnowsza wersja, która obsługuje również 32-bitowe pliki binarne na innych platformach, takich jak watchOS, iOS, iPadOS i tvOS.