Язык программирования Go: IDE и утилиты
Содержание:
1. Философия и возможности;
2. Компиляторы;
3.IDE и утилиты (Вы читаете данный раздел);
4. Документация.

Вместе с официальным компилятором поставляются большое количество утилит, полный список которых доступен на странице http://golang.org/cmd/. Наиболее важные из них:
- godoc - автоматический генератор документации из комментариев в исходных файлах (аналог Doxygen или Javadoc).
- gotest - запускает специально оформленные функции для автоматического тестирования пакетов.
- gofix - сканирует исходный код, выявляет конструкции, признанные устаревшими при развитии языка, и заменяет их на новые.
- gofmt - форматирует исходный код согласно официальному эталону.
- goinstall - автоматический инсталлятор пакетов. prof - простой профайлер.
Несмотря на такое многообразие утилит, в gc пока нет отладчика. Его создание входит в планы разработчиков, но когда он будет готов, пока неизвестно. С gccgo можно использовать обычный gdb, но и он пока не поддерживает никаких специфических для Go конструкций и типов данных. Тем не менее с его помощью можно делать трассировку, расставлять контрольные точки и просматривать переменные примитивных типов.
На сегодняшний день «официальной» IDE для go еще не существует. Есть несколько достаточно активно развивающихся проектов, которые находятся на разной стадии готовности. Проект Golangide (http://code.google.com/p/golangide/) - это простая но достаточно зрелая IDE для go, основанная на IDE LitelDE X (Рис. выше). Golangide написана на Qt и работает на любой системе. Проще всего скачать с сайта проекта готовую бинарную сборку для нужной архитектуры, которая работоспособна сразу после распаковки архива. Интеграция Golangide с компилятором и утилитами Go оставляет желать лучшего. Если Go собран из исходных кодов и установлен по умолчанию (в $HOME/go), то все будет работать «из коробки», однако если Go установлен из ppa-репозитория, то Golangide не сможет найти компилятор и пути к стандартным пакетам. Чтобы исправить эту ошибку, придется в той директории, куда распакована Golangide, найти кон-фигурационный файл data/build/go/system.env и отредактировать его. В моем случае (64-битная Xubuntu 11.04) работающий файл выглядит так:
Среда Golangide очень проста и интуитивно понятна любому, кто хоть раз работал с другими IDE, поэтому описывать ее подробно нет смысла. Она позволяет создавать «скелеты» проектов разных типов (программа, пакет, программа с документацией) вместе с соответствующими make-файлами. Добавлять новые файлы в проект приходится путем вписывания их в make-файл вручную, но среда сразу «подхватывает» и отображает в дереве проекта.
Минимализм Golangide становится хорошо заметен, как только пользователь захочет изменить, например, подсветку синтаксиса. Сделать это можно, но придется вручную править XML-файлы. Тем не менее, для ознакомления с языком и написания несложных проектов Golangide подходит идеально.
Еще одна IDE - это Goclipse, плагин Eclipse для работы с Go (http://code.google.corri/p/goclipse/). Судя по документации, Goclipse предоставляет больше возможностей, чем Golangide (например, отображает контекстно-зависимую документацию и подсвечивает ошибки в коде). Но сам я с Goclipse не работал, поскольку не пользуюсь Eclipse. И Goclipse, и Golangide поддерживают функцию автодополнения, но, чтобы она работала, нужно установить из исходных кодов демон автодополнения gocode (https://github.com/nsf/gocode).
В полноценную IDE для Go можно превратить и текстовый редактор Gedit. Сделать это не просто, поскольку придется вручную подключать к нему множество плагинов и внешних утилит, но результат получается впечатляющим (Рис. выше). Подробные инструкции приведены на сайте http://gohelp.wordpress.com/, но на-писаны для «древней» Ubuntu 9.10.
Кроме полноценных IDE можно использовать и обычные текстовые редакторы, в которых есть подсветка синтаксиса Go: Kate, Gedit, Geany, SciTE, Mcedit, vim, Emacs и т.д. Полный список редакторов приведен на странице http://go-lang.cat-v.org/text-editors/.
1. Философия и возможности;
2. Компиляторы;
3.
4. Документация.

Вместе с официальным компилятором поставляются большое количество утилит, полный список которых доступен на странице http://golang.org/cmd/. Наиболее важные из них:
- godoc - автоматический генератор документации из комментариев в исходных файлах (аналог Doxygen или Javadoc).
- gotest - запускает специально оформленные функции для автоматического тестирования пакетов.
- gofix - сканирует исходный код, выявляет конструкции, признанные устаревшими при развитии языка, и заменяет их на новые.
- gofmt - форматирует исходный код согласно официальному эталону.
- goinstall - автоматический инсталлятор пакетов. prof - простой профайлер.
Несмотря на такое многообразие утилит, в gc пока нет отладчика. Его создание входит в планы разработчиков, но когда он будет готов, пока неизвестно. С gccgo можно использовать обычный gdb, но и он пока не поддерживает никаких специфических для Go конструкций и типов данных. Тем не менее с его помощью можно делать трассировку, расставлять контрольные точки и просматривать переменные примитивных типов.
На сегодняшний день «официальной» IDE для go еще не существует. Есть несколько достаточно активно развивающихся проектов, которые находятся на разной стадии готовности. Проект Golangide (http://code.google.com/p/golangide/) - это простая но достаточно зрелая IDE для go, основанная на IDE LitelDE X (Рис. выше). Golangide написана на Qt и работает на любой системе. Проще всего скачать с сайта проекта готовую бинарную сборку для нужной архитектуры, которая работоспособна сразу после распаковки архива. Интеграция Golangide с компилятором и утилитами Go оставляет желать лучшего. Если Go собран из исходных кодов и установлен по умолчанию (в $HOME/go), то все будет работать «из коробки», однако если Go установлен из ppa-репозитория, то Golangide не сможет найти компилятор и пути к стандартным пакетам. Чтобы исправить эту ошибку, придется в той директории, куда распакована Golangide, найти кон-фигурационный файл data/build/go/system.env и отредактировать его. В моем случае (64-битная Xubuntu 11.04) работающий файл выглядит так:
GOROOT=/usr/lib/go
GOBIN=/usr/bin
GOARCH=amd64
GOOS=linux
GOBIN=/usr/bin
GOARCH=amd64
GOOS=linux
Среда Golangide очень проста и интуитивно понятна любому, кто хоть раз работал с другими IDE, поэтому описывать ее подробно нет смысла. Она позволяет создавать «скелеты» проектов разных типов (программа, пакет, программа с документацией) вместе с соответствующими make-файлами. Добавлять новые файлы в проект приходится путем вписывания их в make-файл вручную, но среда сразу «подхватывает» и отображает в дереве проекта.
Минимализм Golangide становится хорошо заметен, как только пользователь захочет изменить, например, подсветку синтаксиса. Сделать это можно, но придется вручную править XML-файлы. Тем не менее, для ознакомления с языком и написания несложных проектов Golangide подходит идеально.
Еще одна IDE - это Goclipse, плагин Eclipse для работы с Go (http://code.google.corri/p/goclipse/). Судя по документации, Goclipse предоставляет больше возможностей, чем Golangide (например, отображает контекстно-зависимую документацию и подсвечивает ошибки в коде). Но сам я с Goclipse не работал, поскольку не пользуюсь Eclipse. И Goclipse, и Golangide поддерживают функцию автодополнения, но, чтобы она работала, нужно установить из исходных кодов демон автодополнения gocode (https://github.com/nsf/gocode).
В полноценную IDE для Go можно превратить и текстовый редактор Gedit. Сделать это не просто, поскольку придется вручную подключать к нему множество плагинов и внешних утилит, но результат получается впечатляющим (Рис. выше). Подробные инструкции приведены на сайте http://gohelp.wordpress.com/, но на-писаны для «древней» Ubuntu 9.10.
Кроме полноценных IDE можно использовать и обычные текстовые редакторы, в которых есть подсветка синтаксиса Go: Kate, Gedit, Geany, SciTE, Mcedit, vim, Emacs и т.д. Полный список редакторов приведен на странице http://go-lang.cat-v.org/text-editors/.