Релиз языка программирования Go 1.17

Представлен релиз языка программирования Go 1.17, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD.

Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.

Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.

В новой версии внесены незначительные изменения в язык программирования, добавлена поддержка редакции ОС Windows для 64-разрядной архитектуры ARM и продолжена оптимизация работы компилятора. В частности, в компиляторе был переработан метод передачи аргументов в функции и возврата результата, что позволило в среднем поднять производительность приложений на 5% и сократить размер исполняемого файла на 2% на системах с архитектурой x86_64. Из функциональных изменений отмечается реализация новых функций в пакете unsafe – unsafe.Add и unsafe.Slice для безопасных арифметических операций с указателями и безопасного преобразования указателей в слайсы.

Release. Ссылка here.