Релиз языка программирования Go 1.16
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Представлен релиз языка программирования Go 1.16, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD.
Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.
Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.
Основные новшества, представленные в выпуске Go 1.16:
- Добавлен пакет embed, предоставляющий средства для встраивания в программу произвольных файлов и каталогов. Для указания файлов, которые необходимо встроить на этапе компиляции, предоставляется новая директива "//go:embed". Например, указание в коде комментария "//go:embed test.txt" и объявление следом переменной "var f embed.FS" приведёт в встраиванию файла test.txt и возможности обращения к нему через дескриптор "f". Подобным образом можно встраивать необходимые для работы файлы с ресурсами или отдельными значениями определённого типа, например, для получения строковой переменной "s" из файла version.txt можно указать:
import _ "embed"
//go:embed version.txt
var s string
print(s)
- По умолчанию теперь требуется использование новой системы модулей с интегрированной поддержкой версионирования, которая пришла на смену средствам управления зависимостями на основе GOPATH. Переменная окружения GO111MODULE теперь выставлена в значение "on" по умолчанию и режим модулей используется независимо от присутствия файла go.mod в рабочем или родительском каталоге. В новом режиме сборочные команды, такие как "go build" и "go test", не изменяют содержимое go.mod и go.sum, а команда "go install" обрабатывает аргументы с указанием версии ("go install example.com/cmd@v1.0.0"). Для возвращения старого поведение следует изменить GO111MODULE на значение "auto". Отмечается, что 96% разработчиков уже перешли на новую систему модулей.
- Проведена оптимизация компоновщика. Для больших проектов компоновка теперь выполняется на 20-25% быстрее и требует на 5-15% меньше памяти.
- В компиляторе добавлена поддержка inline-развёртывания функций с сокращённым определением циклов "for", методом значений (method values) и конструкциями 'type switch'.
- Добавлена поддержка систем Apple, оснащённых новым ARM-чипом Apple M1. Добавлены порты netbsd/arm64 и openbsd/mips64 с поддержкой NetBSD на 64-разрядных ARM и OpenBSD на системах MIPS64. В порт linux/riscv64 добавлена поддержка cgo и режима "-buildmode=pie".
- Прекращена поддержка режима компиляции x87 (GO386=387). Поддержка процессоров без инструкций SSE2 теперь доступна через программный режим "GO386=softfloat".
Дополнительно можно отметить начало тестирования бета-выпуска языка Dart 2.12, в котором стабилизирован режим безопасного использования значения "Null" (null safety), который позволят избежать крахов, вызванных попытками использования переменных, значение которых не определено и выставлено в "Null". Режим подразумевает, что переменные не могут иметь неопределённые значения, если им явно не присваивается значение null. В режиме строго учитываются типы переменных, что позволяет компилятору применять дополнительные оптимизации. Соответствие типов проверяется на этапе компиляции, например, в случае попытки присвоения значения "Null" переменной с типом, не подразумевающим неопределённое состояние, таким как "int", будет выведена ошибка.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://blog.golang.org/go1.16...)
- OpenNews: Релиз языка программирования Go 1.15
- OpenNews: В ядре Linux выявлена ошибка, приводящая к нарушению работы некоторых программ, использующих AVX
- OpenNews: Выпуск языка программирования Dart 2.8
- OpenNews: Уязвимости в системе загрузки модулей для языка Go
- OpenNews: Язык Go избавляется от неполиткорректных терминов whitelist/blacklist и master/slave
Похожие новости:
- [Разработка под iOS, Разработка под Android, Монетизация мобильных приложений, Законодательство в IT, Игры и игровые приставки] Epic Games попыталась ограничить работу магазинов приложений в Северной Дакоте
- [Беспроводные технологии, Сетевое оборудование] Проект Loon компании Alphabet не сумел подарить интернет всему миру. Что же пошло не так? (перевод)
- [Монетизация игр, Управление персоналом, Игры и игровые приставки] Руководство Stadia за неделю до ухода похвалило студию разработки за «большой прогресс»
- [Читальный зал, Изучение языков] 10 слов, которые можно использовать вместо скучного «good»
- [Разработка мобильных приложений, Разработка игр, Разработка под Android, Unity, Прототипирование] Опыт разработки первой мобильной игры на Unity или как полностью перевернуть свою жизнь
- [Законодательство в IT, IT-компании] Во Франции Google обязали выплатить 1,1 миллиона евро штрафа за оценки отелей на картах
- [Информационная безопасность, Разработка под iOS, Серверное администрирование] Apple начала направлять трафик безопасного просмотра в Safari на свои серверы вместо Google
- [Поисковые технологии, Управление медиа, IT-компании] Microsoft предложила обязать Google и Facebook платить за новости в США
- [Облачные сервисы, Игры и игровые приставки, IT-компании] Google добавит 100 игр для Stadia в этом году
- [Go, GitHub] Публикация Go приложения в GitHub
Теги для поиска: #_go, #_golang, #_dart
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 11:34
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Представлен релиз языка программирования Go 1.16, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD. Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си. Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора. Основные новшества, представленные в выпуске Go 1.16:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 11:34
Часовой пояс: UTC + 5