После девяти месяцев разработки компания Google представила (http://blog.golang.org/go1.5) релиз языка программирования Go 1.5 (http://golang.org), который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD.
Синтаксис Go базируется на привычных элементах языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов (http://golang.org/pkg/runtime/)), что позволяет добиться производительности, сопоставимой с программами на языке Си.Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.
Основные новшества (http://golang.org/doc/go1.5), представленные в выпуске Go 1.5:
- Компилятор и runtime-компоненты переписаны на языке Go. Инструментарий языка Go теперь полностью избавлен от кода на языке Си и не требует для сборки наличие Си-компилятора;
- Сборщик мусора полностью переработан и переведён на работу с распараллеливанием операций, что позволило существенно снизить задержки во врем работы приложения;
- По умолчанию Go-приложения теперь запускаются с установкой лимита на максимальное число одновременно работающих goroutines (GOMAXPROCS) в значение равное числу ядер CPU (ранее GOMAXPROCS был установлен в 1);- Обеспечена возможность поставки пакетов для языке Go в форме разделяемых библиотек, связываемых с программами на языке Go или Си;
- Поддержка внутренних пакетов (https://golang.org/s/go14internal) (internal) предоставлена для всех репозиториев, а не только для Go core;
- Экспериментальная поддержка (https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJ...) внешних зависимостей, привязанных к определённому вендору;
- В утилиту go добавлена новая команда "tool trace" для наглядной трассировки выполнения программы;
- В утилиту go добавлена новая команда "doc", предоставляющая средства для просмотра документации из командной строки;- Добавлены порты для архитектур linux/arm64, darwin/arm и darwin/arm64 (Apple iPhone и iPad). Реализована экспериментальная поддержка ppc64 и ppc64le (IBM PowerPC, big и little endian);
- Порт darwin/arm64 и средства связывания внешних зависимостей созданы в рамках проекта Go mobile (https://godoc.org/golang.org/x/mobile), нацеленного на развитие возможностей для создания на языке Go мобильных приложений для Android и iOS;
- Расширены функции стандартной библиотки. В пакет math/big добавлен новый тип Float для чисел с плавающей запятой с произвольной точностью. Переработан код резолвинга хостов в DNS (избавлен от привязки к cgo), используемый на платформах Linux и BSD. В состав стандартной библиотеки включены пакеты go/types, go/constant и go/importer. В пакет reflect добавлены функции ArrayOf и FuncOf.URL: https://blog.golang.org/go1.5
Новость: http://www.opennet.me/opennews/art.shtml?num=42822
Интересно как оно в продакшене в хайлоаде? Кто нибудь уже использует?
Google. Dropbox. Uber. Достаточно "хайлоад" для вас?
> Огласите весь список пожалуйстаhttps://github.com/golang/go/wiki/GoUsers
> Google.У гугла dl.google.com переписан на Go
http://talks.golang.org/2013/oscon-dl.slide#20
автор Brad Fitzpatrick, херачит ещё курилка.
>pool.ntp.orgПереписали сервер на Go
http://news.ntppool.org/2012/10/new-dns-server.html
DNS server in Go - Big NTP Pool upgradehttps://github.com/abh/geodns/
GeoDNS in Go
This is the DNS server powering the NTP Pool system and other similar services. It supersedes the pgeodns server. Build Status
> Переписали сервер на GoСтранно что не на питоне. BIND 10 уже переписывали вон, на бидоне. До состояния когда без десятка железных серверов для деплоя этого макаронного монстра к нему лучше не подходить. ЧСХ, на лишний десяток серверов все дружно удавились жабой и BIND 10 оказался нафигнужным. Им наверное только сам ISC и пользуется в результате. Если пользуется.
http://twitch.tv переписали beckend чата на go c питона. Kappa.
Yandex больше года в продакшене использует, переписывает питоновский код на Go
> Yandex больше года в продакшене использует, переписывает питоновский код на GoТак питон не тормозит. Просто рожденный ползать - летать не может.
знаю конторку одну в районе павелецкого, написали бизнес-логику на го. Хотят уйти на с++, насколько я понял.
Сборщик мусора до и после обновления на Go v1.5
https://pbs.twimg.com/media/CM0CupAW8AAWXxV.png:large
>> что позволяет добиться производительности, сопоставимой с программами на языке Си.Чушь, Go(1.5) в 3 раза медленее C и памяти использует почти в два раза больше:
http://benchmarksgame.alioth.debian.org/u32q/compare.php?lan...
> Язык достаточно лакониченУдивительная история
>> Язык достаточно лаконичен
> Удивительная историяОдин из авторов языка - Кен Томпсон, тот самый,
который когда-то создал операционную систему UNIX."Rust and Scala drown you in complexity. Go drowns you in simplicity"
- https://twitter.com/extempore2/status/615907314189479937https://www.youtube.com/watch?v=cGXorQkw3JE
- 2015.08.19 Антон Архипов – Go!
Комментарии к любой новости про любой язык программирования рано или поздно скатываются в нытьё людей, готовых с пеной у рта доказывать, что они на C напишут что угодно как угодно быстро. Некоторые из них иногда действительно разбираются в своей узкой нише, в которой зачастую C — единственный разумный выбор; но решительно каждый из них не видит дальше своего наморщенного носа. То, что в мире может быть востребовано несколько разных языков до горлопанов не доходит из-за ригидности мышления, неспособности принять два простых факта: IT-индустрия не ограничивается их маленькой нишей и не существует универсального инструмента, решающего задачу с учётом технических и нетехнических требований. То, что на любом Тьюринг-полном языке можно написать вообще всё, что физических возможно, не означает, что это стоит делать.
> в нытьё людей, готовых с пеной у рта доказывать, что они
> на C напишут что угодно как угодно быстро.Это еще бабушка надвое сказала, т.к. стабильно ноют уже не один десяток лет, но ЧСХ - что в бубунте, что в гентушном портаже питон так и не выпиляли :)
Сделали shared libraries и динамическую линковку, или нет?
Вроде в версии 1.5 обещали.Если сделали, то почему в новости нет?
>shared libraries и динамическую линковку, или нет?
>обещали.
> Если сделали, то почему в новости нет?Гдаза разуй:
- Обеспечена возможность поставки пакетов для языке Go в форме
разделяемых библиотек, связываемых с программами на языке Go или Си;