Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Язык Go: история и установка  (Прочитано 8961 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Язык Go: история и установка
« : 02 Март 2014, 17:42:39 »
Тема для обсуждения пока не готова. Вы можете воспользоваться этой темой, если будут вопросы и предложения.


Цитировать
Добрый день, дорогие друзья. Когда-то я начал изучать Python. И это был замечательный выбор, не спорьте. Но со временем, когда я стал писать все больше и больше кода, я понял, что мне нужен немного другой язык. И мой выбор пал на Go или, как принято называть его в книгах, Golang. Он многопоточный и компилируемый. Сейчас я бы не сказал, что он мне понравился больше питона, Java, etc. Нет. Но все равно у меня появилось желание рассказать о нем другим. А уже использовать его или нет - выбор ваш.

Итак, начинаем.

Приветствие

Итак. Я решил написать серию уроков по языку программирования Go для не новичков в программировании. Информация в сети есть, но она меня не сильно устроила тем, что большинство из неё - англоязычная, а на русском есть только несколько статей и книга. Книга хорошая, но сойдет больше за справочник, нежели за учебник, на мой взгляд.
К тому же, написание этих уроков поможет мне самому систематизировать знания в моей голове.
В уроках будут преподноситься основы языка и некоторые приемы, а в конце реализация какой нибудь практичной вещи на этом языке :) Поехали :)

Язык Go

Язык программирования Go или, как советуют писать в поисковых запросах и тегах, Golang является компилируемым в нативный код, ориентированным на многопоточность и кросспратформенным языком программирования с внутренним механизмом сборки мусора, который разработала компания Google.
Разработка мотивировалась тем, что в настоящее время большинство современных языков программирования не являются "современными". С ростом производительных мощностей и количества ядер вычислительных машин, необходимо сделать упор на параллельную обработку данных, а так-же на скорость исполнения кода и простоту его написания. Все эти требования побудили разработчиков из Google создать свой язык программирования, который бы удовлетворял все эти требования.
Но не будем сильно вникать в формальности и историю, все это можно самому прочитать в сети.
Почему я выбрал его? За простоту синтаксиса, компиляцию в нативный код, легкость в параллелизме и синхронизации (основана на каналах) и конечно - кроссплатформенность, причем настоящую. Любой код, написанный на этом языке (без специфичных сторонних библиотек) можно скомпилировать под FreeBSD, OpenBSD, Linux, Mac OS X и Windows. Все системные вызовы и привязка к платформе спрятана в стандартных библиотеках, которые для каждой платформы - свои.

Устанавливаем язык
Я буду рассказывать как установить язык (компилятор, стандартные библиотеки, документацию и вспомогательные утилиты) в систему на примере Ubuntu 12.04. Не думаю, что для производных и других дистрибутивов, основанных на ядре Linux будут существенные отличия.

Для начала - скачаем Go с официальной страницы закачек на GoogleCode. Не советую использовать пакеты из репозиториев дистрибутивов, потому что нам нужна самая свежая версия.
Итак, скачиваем архив для своей системы - 386 или amd64 для систем x86 и x64 соответственно.
После чего переходим в каталог, куда был скачан файл и извлечем все файлы из архива:
tar -C /usr/local -xzf go1.2.linux-amd64.tar.gzМогут потребоваться права суперпользователя. Советую производить распаковку именно в этот каталог, так будет проще настроить работу Gocode, который нам понадобиться для настройки GoSublime.
После распаковки добавим в к переменной окружения PATH путь к каталогу исполняемых файлов компилятора и утилит, которые мы только что извлекли. Для этого выполним следующую команду:
export PATH=$PATH:/usr/local/go/binДля того, чтобы не делать этого при каждой загрузке системы, необходимо добавить путь /usr/local/go/bin в файл /etc/environment через двоеточие к переменной PATH, с помощью любого текстового редактора.
Создадим в домашнем каталоге папку, которая будет содержать все наши проекты, а так-же папки исходных текстов и исполняемых файлов:
mkdir ~/go
mkdir ~/go/bin
mkdir ~/go/src
Теперь укажем переменную окружения GOPATH и добавим папку исполняемых файлов в PATH:
export GOPATH=$HOME/go
export PATH=$PATH:/$GOPATH/bin
Эти переменные так-же можно добавить в файл /etc/environment.
Итак, язык установлен в системе.

Установка и настройка Sublime Text + GoSublime + Gocode
Для начала скачайте и установите Sublime Text 3, любым приемлемым для вас способом ;)
Теперь установим утилиту Gocode, которая позволяет реализовать autocompleate:
go get github.com/nsf/gocodeЕсли в системе нет Git, тогда Go сообщит, что не может его найти. В этом случае установите Git в систему и повторите команду.
После этого нужно установить GoSublime. Для этого необходимо установить Package Control, если он у вас не установлен. Откройте Sublime Text и вызовите консоль, через меню View > Show Console. Скопируйте в нее код который вы можете взять по ссылке или скопировать отсюда:
import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
После того, как Package Control установится, нажмите сочетание клавиш: ctrl+shift+p и начните набирать Package Control: Install Package после чего нажмите Enter и  подождите пока обновится информация о пакетах. После чего отобразится поле, в которое необходимо ввести GoSublime и нажать на Enter. GoSublime скачается и установится сам.

Поздравляю!  Теперь можно работать! :)
Если не устали - продолжим.

Долгожданный Hello, world!
Так, как окружение у нас настроено - можно приступать писать код.
Перейдите в каталог ~/go/src и создайте каталог hello_world, в нем создайте файл hello.go и откройте его с помощью Sublime Text и введите следующий код руками, autocompleate вам поможет ;)
package main

import (
"fmt"
)

func main() {
fmt.Println("Hello, world!")
}


Что тут написано и зачем\почему рассмотрим в следующем уроке, а пока - выполните следующую команду в каталоге с файлом исходного кода, который мы только что создали и написали:
go run hello.goЕсли вы все сделали правильно, то вы увидите как ваша скомпилированная и запущенная программа поздоровается с миром ;)

Продолжение следует...

Все права на статью принадлежат сайту Дафтер и пользователю freedom4live. Копирование запрещено. 2014 год.
« Последнее редактирование: 02 Март 2014, 17:48:22 от Grigory Smirnov »

Оффлайн san-alex

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 7727
  • Ex-CNC programmer
    • Просмотр профиля
Re: Язык Go: история и установка
« Ответ #1 : 02 Март 2014, 18:02:53 »
почему ты статью в Вики не напишешь?

Оффлайн san-alex

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 7727
  • Ex-CNC programmer
    • Просмотр профиля
Re: Язык Go: история и установка
« Ответ #2 : 02 Март 2014, 18:23:36 »
alsoijw,
В вики есть.
Grigory Smirnov, не знаю как твоя последняя фраза согласуется с общей политикой сайта.
« Последнее редактирование: 02 Март 2014, 18:25:52 от san-alex »

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Язык Go: история и установка
« Ответ #3 : 02 Март 2014, 18:24:25 »
san-alex, не знаю, в какой раздел. Да и чтобы под лицензию правильную. Напиши в личный сообщения, обсудим.
alsoijw, это код на bash. Зачем его подсветка?

И просьба: пожалуйста, в этой теме не пишите. Сверху все указал.



Пользователь решил продолжить мысль 02 Март 2014, 19:07:00:
san-alex, да нормально. Просто источник привел.
« Последнее редактирование: 02 Март 2014, 19:07:00 от Grigory Smirnov »

 

Страница сгенерирована за 0.13 секунд. Запросов: 24.