The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз языка программирования Go 1.9"
Отправлено opennews, 26-Авг-17 09:36 
После шести месяцев разработки компания Google представила (https://blog.golang.org/go1.9) релиз  языка программирования Go 1.9 (http://golang.org), который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок.  Код проекта распространяется под лицензией BSD.


Синтаксис Go основан на привычных элементах  языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код  легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов (http://golang.org/pkg/runtime/)), что позволяет добиться производительности, сопоставимой с программами на языке Си.

Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и  взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.


Основные новшества (http://golang.org/doc/go1.9), представленные в выпуске Go 1.9:

-  В язык добавлена возможность определения псевдонимов типов (https://golang.org/design/18130-type-alias), которая может оказаться востребована при проведении рефакторинга кода (https://talks.golang.org/2016/refactor.article) и постепенного перевода проектов на новые API. Например, при помощи конструкции "type T1 = T2" для существующего типа "T2" можно определить псевдоним с именем "T1" по аналогии с тем как имя "byte" является псевдонимом типа "uint8";

-  В состав включен новый пакет math/bits (https://golang.org/pkg/math/bits), предоставляющий функции для битовых операций и манипуляции беззнаковыми целыми числами с задействованием при возможности специальных инструкций CPU. Например, на системах x86-64 функция bits.TrailingZeros(x) будет выполняться с использованием инструкции BSF;-  В пакет sync добавлен новый тип Map (https://golang.org/pkg/sync#Map), который возможно применять в многопоточных приложениях. Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены;-  В пакет testing добавлен новый метод Helper, применимый с объектами testing.T и testing.B. При помощи данного метода можно организовать вывод номера строки вызывающей функции при возникновении ошибки, вместо указания ссылки на фактический номер строки, из которой вызван метод t.Fatal;
-  В пакете time обеспеченно прозрачное отслеживание монотонного времени (время, прошедшее с определённого момента) для всех значений Time, что позволяет обеспечить надёжный расчёт разницы  между двумя значениями Time без влияния таких факторов как изменение времени или подстановка (https://www.opennet.ru/opennews/art.shtml?num=42528) лишней секунды.
-  Для ускорения процесса сборки реализована поддержка параллельной компиляции разных функций в пакете.

URL: https://blog.golang.org/go1.9
Новость: http://www.opennet.ru/opennews/art.shtml?num=47083

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру