Команда GO представила объявление о выпуске Go 1.14, новая версия языка программирования с открытым исходным кодом, разработанная Google. Как и было обещано, этот выпуск не превысил февраль и месяц. Команда Go не переставала благодарить всех, кто был любезен внести свой вклад к дизайну этой версии, либо посредством комментариев, предоставленных для этой цели, а также для тех, кто участвовал в бета-тестировании, либо путем выдачи кодов, сообщений об ошибках и отправки комментариев.
До сих пор, Команда GO старалась поддерживать вызов, брошенный Робом Пайком., один из трех создателей Голанга, которые Я хотел, чтобы этот язык упростил и ускорил крупномасштабное программирование. Синтаксис Go основан на знакомых элементах языка C с отдельными заимствованиями из языка Python. Язык достаточно лаконичный, но код легко читать и понимать.
Код Go компилируется в отдельные двоичные исполняемые файлы которые работают изначально без использования виртуальной машины (профили, отладочные модули и другие подсистемы устранения неполадок интегрируются во время выполнения как компоненты среды выполнения), которые обеспечивает производительность, сопоставимую с C.
Первоначально проект разрабатывался с учетом многопоточного программирования и эффективной работы в многоядерных системах, даже предоставляя реализованные на уровне оператора средства для организации параллельных вычислений и взаимодействия между параллельными методами.
Язык также обеспечивает встроенную защиту от областей переполнения выделенных блоков памяти и предоставляет возможность использовать сборщик мусора.
Go 1.14 основные новости
Основное изменение в этой новой версии касается новая модульная система в команде go для широкого использования, он включен по умолчанию и рекомендуется для управления зависимостями вместо GOPATH.
Новая модульная система имеет встроенную совместимость версий, инструменты доставки пакетов и улучшенная система управления зависимостями. С помощью модулей, разработчики больше не обязаны работать в дереве GOPATH, они могут явно определять зависимости на основе версий и создавать повторяющиеся сборки.
Кроме того, потоки больше не придется вешать бесконечно, как в случае выше с циклом без вызова функции, поскольку Go Scheduler проверяет определенное возможное время выполнения текущей подпрограммы во время вызовов функций, прежде чем удалять ее из потока, чтобы освободить место и разрешить выполнение новых подпрограмм. Это повлияет на снижение задержки в Go 1.14.
Еще одно изменение - sДобавлена поддержка встраивания интерфейсов с набором перекрывающихся методов. Методы встроенного интерфейса теперь могут иметь те же имена и подписи, что и методы существующих интерфейсов. Явно объявленные методы по-прежнему остаются уникальными.
Более того увеличена производительность выражения "отложить", использование которого теперь практически не отличается по скорости от прямого вызова ленивой функции, что позволяет использовать ленивый запуск функции в коде, чувствительном к производительности.
Также предоставляется асинхронное приоритетное предпочтение- Циклы, не содержащие вызовов функций, теперь могут приводить к тупиковой ситуации для планировщика или задержке начала сборки мусора.
Повышена эффективность системы выделения страниц памяти., который теперь имеет значительно меньше конфликтов блокировок в конфигурациях с большими значениями GOMAXPROCS.
В результате задержки были уменьшены, а производительность увеличена за счет интенсивного параллельного распределения больших блоков памяти.
Больше не надо вы можете найти более полный список этих новых функций ключ в примечаниях к выпуску GO 1.14.
Кроме того, эта новая версия будет работать на macOS 10.11 El Capitan и по-прежнему будет поддерживать 32-разрядные двоичные файлы на этой платформе. Это может быть последняя версия, которая также поддерживает 32-разрядные двоичные файлы на других платформах, таких как watchOS, iOS, iPadOS и tvOS.