Включите исполнение JavaScript в браузере, чтобы запустить приложение.

OpenNET

Open source13 августа, 2025

Выпуск языка программирования Go 1.25

После шести месяцев разработки представлен релиз языка программирования 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, обеспечивающем более компактное представление данных.
Источник:OpenNET