Дата публикации:Wed, 13 Aug 2025 08:46:50 +0300
После шести месяцев разработки представлен релиз языка программирования Go 1.25, развиваемого компанией Google при участии сообщества. Язык сочетает высокую производительность, свойственную компилируемым языкам, с такими достоинствами скриптовых языков, как простота написания кода, высокая скорость разработки и защита от ошибок. Код проекта распространяется под лицензией BSD.
Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Оберон. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно, без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.
Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах. Например, на уровне операторов реализованы средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за границы буфера и обеспечивает возможность использования сборщика мусора.
Среди изменений в новом выпуске:
- Добавлен экспериментальный сборщик мусора "greenteagc", рассчитанный на повышения производительности создания и сканирования мелких объектов. В приложениях, в которых активно применяется сборка мусора, при использовании "greenteagc" отмечается сокращение накладных расходов на сборку мусора на 10—40%. Добавлены экспериментальные пакеты encoding/json/v2 и encoding/json/jsontext. Первый пакет включает переработанную высокопроизводительную реализацию пакета encoding/json. Второй пакет предлагает функции для низкоуровневой обработки синтаксиса JSON. В состав включён новый пакет testing/synctest для тестирования синхронизации между разными потоками параллельно выполняемого кода. В команде "go build" по умолчанию активирована опция "-asan", выполняющая проверку утечек памяти при завершении работы программы. В команду "go vet" добавлены новые анализаторы "waitgroup" и "hostport" для проверки некорректного использования sync.WaitGroup.Add и fmt.Sprintf("%s:%d", host, port). При вычислении значения GOMAXPROCS теперь не просто выставляется число доступных логических CPU, но и учитываются применяемые в контейнерах ограничения производительности CPU. В компиляторе и компоновщике реализована поддержка генерации отладочной информации в формате DWARF5, обеспечивающем более компактное представление данных.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63721