Опубликован [4] первый релиз языка программирования Go [5], который ознаменовал стабилизацию спецификаций и набора библиотек. Go 1 является первым выпуском, доступным в форме бинарных пакетов для Linux, Mac OS X, FreeBSD, Windows и других поддерживаемых платформ. Язык Go создан в компании Google, распространяется под лицензией BSD и поддерживает компиляцию для архитектур AMD64, x86, x64 и ARM.
С одной стороны, в новом релизе нет какого-то существенного редизайна языка или глобальных новшеств, но с другой, наконец-то исправлены некоторые старые ошибки, исправление которых ранее откладывалось по причине создания несовместимости с первоначальной спецификацией. Выпущена специальная утилита go fix [6], которая максимально автоматизирует приведение старых исходных кодов к текущему стандарту языка Go 1. В целом, в текущем релизе разработчики сосредоточились на оптимизации и очистке кода, повышении его универсальности и переносимости, сведя модификации самого языка к минимуму.
В качестве примеров изменений [7] можно назвать появление типа rune для Unicode-символов [8], добавление типа error [9] и модуля os.Error для обработки ошибок, создание типа time для задания времени [10] и незначительные переименования в strconv [11]. Кроме этого проведена огромная работа по полной переработке и улучшению сервисной программы go [12]. Самое заметное новшество которой в том, что теперь можно отказаться от файлов Makefile и сборочных скриптов, вся необходимая информация теперь будет извлекаться непосредственно из самих исходников программы. Одновременно выпущен новый Google App Engine SDK [13], который полностью доработан с учетом новых возможностей Go 1, и предназначен для создания приложений для App Engine.
Синтаксис языка Go сильно похож на язык Си с стилистическими примесями из Python. Это компилирующий императивный язык, поддерживающий структурное программирование. Google утверждает, что разработка нового языка оправдана тем, что сложность C++ приводит к большому количеству ошибок при создании больших приложений, поэтому Go - это попытка создать, с одной стороны - более наглядный и гибкий язык, и с другой, - изначально спроектировать его дизайн с учетом актуальных тенденций и специфики современного аппаратного обеспечения (например, оптимальная работа на многоядерных системах).
Основные особенности языка:
Отдельно отметим, что язык Go [16] не стоит путать с языком Go! [17], являющегося своеобразным клоном языка Prolog, разработчики которого ранее даже пытались оспорить это название у Google, но пока безрезультатно.
Ссылки:
[1] http://htfl.ru/cat-news-go
[2] http://htfl.ru/cat-news-novosti-po
[3] http://htfl.ru/cat-news-yazyki-programirovaniya
[4] /out.php?link=http://blog.golang.org/2012/03/go-version-1-is-released.html
[5] /out.php?link=http://golang.org/
[6] /out.php?link=http://golang.org/cmd/go/#Run_go_tool_fix_on_packages
[7] /out.php?link=http://golang.org/doc/go1.html
[8] /out.php?link=http://golang.org/doc/go1.html#rune
[9] /out.php?link=http://golang.org/doc/go1.html#errors
[10] /out.php?link=http://golang.org/doc/go1.html#time
[11] /out.php?link=http://golang.org/doc/go1.html#strconv
[12] /out.php?link=http://golang.org/doc/go1.html#cmd_go
[13] /out.php?link=https://developers.google.com/appengine/docs/go
[14] /out.php?link=http://en.wikipedia.org/wiki/Type_safety
[15] /out.php?link=http://en.wikipedia.org/wiki/Memory_safety
[16] /out.php?link=http://en.wikipedia.org/wiki/Go_%28programming_language%29
[17] /out.php?link=http://en.wikipedia.org/wiki/Go%21_%28programming_language%29