Релиз языка программирования Go 1.17
Представлен релиз языка программирования Go 1.17, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD.
Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.
Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.
В новой версии внесены незначительные изменения в язык программирования, добавлена поддержка редакции ОС Windows для 64-разрядной архитектуры ARM и продолжена оптимизация работы компилятора. В частности, в компиляторе был переработан метод передачи аргументов в функции и возврата результата, что позволило в среднем поднять производительность приложений на 5% и сократить размер исполняемого файла на 2% на системах с архитектурой x86_64. Из функциональных изменений отмечается реализация новых функций в пакете unsafe — unsafe.Add и unsafe.Slice для безопасных арифметических операций с указателями и безопасного преобразования указателей в слайсы.
Источник: http://www.opennet.ru/opennews/art.shtml? num=55647
© OpenNet