Синтаксис 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, обеспечивающем более компактное представление данных.
Источник: http://www.opennet.ru/opennews/art.shtml?num=63721