Пользователь
0,0
рейтинг
23 ноября 2011 в 22:03

Разработка → Быстрый старт – программируем на Go под Windows — настройка Environment

Go*

Update (22.07.2013)


С момента изначального написания статьи многое изменилось. Я немного обновил пост, чтобы в сети не висела устаревшая инструкция.

Вместо вступления


Если кто не знает, Go (www.golang.org) – компилируемый язык программирования. Как и все хочет быть «лучше чем C». Разработку языка поддерживает Google (создатели языка — Rob Pike, Robert Griesemer и Ken Tompson), но Go — полностью open-source, в разработке принимает участие большое количество людей не из Google. Меня язык заинтересовал своей простотой и необычным подходом к ООП и многопоточности. Захотелось попробовать. Моя рабочая OS — Windows и будучи разбалованным платформой .Net, C# и Visual Studio мне было трудно именно начать. Хотя на самом деле это оказалось совсем просто, и достаточно быстро я настроил себе удобный Environment, состоящий, по сути, из IDE с подобием IntelliSense. О том, как это сделать за 15 минут я и хотел бы рассказать.

Установка Go


На момент последнего редактирования статьи, актуальная версия — Go 1.1.1. Дистрибутив можно скачать по ссылке: code.google.com/p/go/downloads/list. Дистрибутив выбираем в зависимости от разрядности установленной версии Windows: x64 — go1.1.1.windows-amd64.msi; x32 — go1.1.1.windows-386.msi. Скачиваем, устанавливаем. Теперь Go живет в C:\Go. Инсталлятор сам настроит нужные переменные среды.

Workspace


Теперь необходимо создать папку, которая будет чем-то вроде корневой рабочей директории. В составе дистрибутива Go идет утилита «go», которая «все в одном» — она используется для сборки проектов, для установки сторонник библиотек, для запуска тестов и т.п. Используется парадигма Convention over Configuration. Единственная настройка, которую нужно сделать — это добавить переменную среды GOPATH, в которой указать корневую папку, где у нас будут хранится все исходники наших и сторонних проектов, скомпилированные библиотеки и исполняемые файлы. Создаем такую папку: C:\gopath и добавляем переменную среды:



Также нужно добавить %GOPATH%\bin в перменную среды PATH.



Установка IDE


Перепробовав много различных редакторов текста и IDE, я остановил свой выбор на GoLangIDE (http://code.google.com/p/golangide/). Она очень легковесная, т.е. можно просто открыть file.go и скомпилировать его; но в то же время полностью поддерживает работу с проектами по Convention утилиты «go». Для debug’а в мире Go используют gdb, эта IDE интегрируется с gdb – можно ставить breakpoint’ы, просматривать значения локальных переменных.
В общем, скачиваем и распаковываем в C:\. Запускаем C:\liteide\bin\liteide.exe. Полу-русский язык советую сразу сменить на английский: Вид -> Options, меняем язык на English, “Применить”, надо перезапустить IDE.

Hello World


В последней версии GoLangIDE, аналог IntelliSense (GoCode) уже встроен и ничего дополнительно устанавливать не нужно. Поэтому сразу приступаем к делу:
Запускаем IDE, создаем новый проект (Ctrl+N):



Пишем fmt, ставим точку – видим выпадающий список функций.



Выбираем функцию (жмем Tab) — можно вводить параметры функции, жмем F1 — видим подсказку с сигнатурой функции.



Компилируем наш Hello World: Ctrl + B
Запускаем в отдельном окне консоли: Ctrl + Shift + F5



Вот собственно и все.

Что дальше?


По golang достаточно много хороших обучающих материалов. Моя коллекция ссылок:
tour.golang.org — интерактивный обучающий тур
golang.org/doc/effective_go.html — постарались передать main idea языка
golangtutorials.blogspot.com/2011/05/table-of-contents.html — коллекция отличных туториалов
miek.nl/files/go — OpenSource книжка по Go
В запросах поисковика нужно писать golang, а не просто go. Успехов!
Михаил Стребков @Kluyg
карма
13,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (17)

  • +1
    очень интересно. подойдет изучать сыну вместо GW/MS Basic :-) и к тому-же с дальнейшей перспективой язык!
    • +7
      Ну, если учесть количество закрытых гуглом проектов, то перспективы весьма туманны.
      • +3
        язык open-source, «закрыть» его сложно, по крайней мере фанаты продолжат на нем писать
        • +8
          Open-source технология не развивается без поддержки бизнеса и корпораций, т.к. «сообщество» всегда довольно пассивно, не имеет четких целей, планов и не способно вкладывать достаточные средства в сопутствующую инфраструктуру и работу, которая необходима для того, чтобы бизнес считал эту технологию достаточно стабильной для использования, перспективной и развивающейся. Сам по себе язык программирования — ничто.
          Может я несколько преувеличиваю, но идея, думаю, понятна.
      • +3
        Это язык Роба Пайка, а не Гугла, со сложившимся комьюнити, уже достаточно заметный в сфере образования как минимум.

        Я бы за Dart волновался.
  • +2
    Вот ничего не могу с собой поделать. С одной стороны Go прекрасен, особенно если любишь C. И на нем можно бы написать кучу полезного, системного ПО и не только.
    А вот перспектива действительно сомнительная. На GAE использовать его удобно, а вот на настольных системах — вряд ли. Бинарники огромные, поддержка архитектур не полная (жду не дождусь MIPS-версии). В Embedded тоже туманно — про tiny runtime который может работать без ОС информации очень мало. IDE мало.
    Да и вообще. На русском инфы очень мало, пиарят его слабо, поддержка gcc-go еще недостаточно хорошая.
    Но язык-то, язык-то хороший!
    • 0
      Да все языки хорошие, вы правы без мультиплатформенности сместить C, Java, невозможно, если только одна архитектура не займет лидирующей позиции на рынке.
      • 0
        Языку в первую очередь нужна ниша. У Go с этим пока туго, кроме академических проектов (типа напиши свой интерпретатор лиспа или компилятор брейнфака), биндингов к разным либам и GAE приложений я пока не ничего видел.
        Кстати, а может хабровчане которые использовали этот язык поделятся своими проектами?
  • 0
    Сборка dll уже реализована?
    • 0
      Такого даже в планах не было.
      Как вы себе это представляете dll на языке с GC, требующие GC рантайма?
      Теоритически, наверное, возможно. Но слово dll hell получит еще один смысл.
      • +1
        что вы имели ввиду? а простая class-library .net-сборка чем вам не dll?
        • 0
          о, извиняюсь, заработался, думал в другой топик пишу :)
          но тем не менее, может всё-таки есть dll самая обычная, наподобие .net-сборок, также требующих GC
  • 0
    Круто! Про местную IDE не знал. Юзал плагин для IntellJ. Тоже приятная штука. А еще на Win XP после завершения Installer-а нужно поменять переменную GOOS(кажется так) на значение Mingw по-моему, а то либы не подключились. Уже не помню точно, но нужно быть внимательным тут.
    • 0
      Хм… первый раз слышу про такое. Попробую добыть WinXP и проверить.
      • 0
        Проверил на WinXP — все работает как и на Win7, дополнительно прописывать ничего не нужно. Программы компилируются, стандартные библиотеки подключаются.
        Наверно проблема была в предыдущих релизах и больше не актуальна.
  • 0
    А как делать GUI с помощью go? Не фреймворка для qt и go?
    • 0
      Для qt — нет. Посмотрите что есть тут go-lang.cat-v.org/library-bindings в разделе GUIs and Widget Toolkits.
      Лично я думаю, что на данном этапе не стоит делать GUI с помощью Go, он на это не рассчитан, думаю будет очень неудобно.
      Зато можно легко написать сервис, который будет предоставлять Web интерфейс по заданному порту.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.