Rating@Mail.ru

Форум сайта "Виртуальная энциклопедия "Linux по-русски"


Текущее время: 25 май 2017, 13:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Go
Непрочитанное сообщениеДобавлено: 13 фев 2014, 10:55 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Go
Цитата:
Go — компилируемый, многопоточный язык программирования, разработанный компанией Google. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон занимавшиеся до этого проектом разработки операционной системы Inferno. Официально язык был представлен в ноябре 2009 года. На данный момент его поддержка осуществляется для операционных систем FreeBSD, OpenBSD, Linux, Mac OS X, Windows.

Обратите внимание, какие люди стоят за разработкой ... это те "мамонты", которые стояли у истоков языка C и UNIX, а позже делали Plan 9 в качестве замены UNIX.
Цитата:
На данный момент существуют два компилятора Go:
6g (и сопутствующие ему инструменты, вместе известные под названием gc) написан на Си с применением yacc/Bison для парсера
Gccgo — ещё один компилятор Go с клиентской частью, написанной на C++, и рекурсивным парсером, совмещённым со стандартным бэк-эндом GCC[7]. Поддержка Go доступна в GCC начиная с версии 4.6.

Цитата:
Все компиляторы полагаются полностью на собственный код — создаваемый код не является управляемым, то есть для его работы не нужна виртуальная машина. По словам Роба Пайка, получаемый после компиляции байт-код совершенно автономен.


В вашем Linux есть (в пакетной системе) и то и другое:
Код:
$ aptitude search golang*
p   golang                           - Go programming language compiler - metapackage
p   golang-dbg                       - Go programming language compiler - debug files
p   golang-doc                       - Go programming language compiler - documentation
p   golang-go                        - Go programming language compiler
p   golang-mode                      - Go programming language - mode for GNU Emacs
p   golang-src                       - Go programming language compiler - source files
v   golang-tools                     -
v   golang-weekly                    -
v   golang-weekly-dbg                -
v   golang-weekly-doc                -
v   golang-weekly-go                 -
v   golang-weekly-src                -
v   golang-weekly-tools              - 

Код:
olej@notebook:~$ aptitude search gccgo*
p   gccgo                            - Go compiler, based on the GCC backend
p   gccgo-4.6-doc                    - documentation for the GNU Go compiler (gccgo)
p   gccgo-4.7                        - GNU Go compiler
p   gccgo-4.7-doc                    - documentation for the GNU Go compiler (gccgo)
p   gccgo-4.7-multilib               - GNU Go compiler (multilib files)
p   gccgo-multilib                   - Go compiler, based on the GCC backend (multilib files)


Вам, естественно, необходимо установить какой-либо из них (или оба):
Код:
$ sudo apt-get install gccgo
...
Настраивается пакет gccgo (4:4.7.2-1) …
$ gccgo --version
gccgo (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Всё! ... молодые дарования, можете наслаждаться языком Go.

Вполне достаточно ресурсов для разбирательства с самим языком (кроме ссылки уже показанной выше):

Толковые статьи:
Go для программистов C++ - Перевод статьи Go For C++ Programmers с официального сайта языка Go.
Цитата:
Go — язык системного программирования, созданный для широкого применения, как и C++. Здесь приводятся некоторые заметки для опытных программистов C++. Этот документ описывает различия между Go и C++, но почти ничего здесь нет об их сходствах.


Справочники по языку и учебники:
Frequently Asked Questions (FAQ)
Effective Go
Directory src/pkg/ - пакеты - библиотека
A Tour of Go - интерактивный учебный тур на сайте Go
... всё что выше - это всё с домашней страницы Go

Евгений Охотников : Краткий пересказ Effective Go на русском языке
Miek Gieben : "Learning Go" - регулярные сборки (PDF) книги, последняя - 09.11.2013 (!)
Дмитрий Выкочко : "Язык программирования go", 4 статьи на IBM DeveloperWorks :
Часть 1
Часть 2
Часть 3
Часть 4


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 13 фев 2014, 11:03 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Olej писал(а):
Всё! ... молодые дарования, можете наслаждаться языком Go.


Я действительно обратил бы самое пристальное внимание студентов, ищущих что-то достойное внимания в IT, на язык Go.

А ещё больше обратил бы на него внимание их преподавателей в ВУЗах ...

Вместо того, чтобы ... как это местами происходит - устраивать дрочиловку вокруг книги Э.Таненбаума и его операционной системы Minix 30-летней давности :evil:


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 15 фев 2014, 12:21 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Olej писал(а):
Я действительно обратил бы самое пристальное внимание студентов, ищущих что-то достойное внимания в IT, на язык Go.

А ещё больше обратил бы на него внимание их преподавателей в ВУЗах ...


Примеры написания кода на языке Go пишутся здесь в теме: сравнение языков программирования.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 12 авг 2014, 21:54 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Интерес к Go очень большой. И множится день ото дня.

1. Несмотря на относительную молодость Go, его избрали в качестве инструментария авторы многих открытых публичных проектов. Здесь собран указатель на несколько сот (!) проектов на Go, начиная с простеньких утилит и до комплексных развиваемых публичных проектов.
Меня, откровенно говоря, этот список удивил своей обширностью.

2. В 2009 Go был признан языком года по версии организации TIOBE.

3. Как пример последних месяцев: анонсирован крупнейший проект Syncthing — открытое кросс-платформенное приложение (Linux, Mac OS X, Windows, FreeBSD и Solaris, Android), строящееся по модели клиент-сервер и предназначенное для синхронизации файлов между двумя участниками (point to point).
Проект реализуется полностью на языке Go.

4. Одна крупная зарубежная софтверная компания, у которой полно филиалов в русскоязычном пространстве, обратилась ко мне с предложением подготовить курс обучения программистов-разработчиков их филиалов языку Go + часть студентов последнего курса, которых они привлекают как стажёров.
И они готовы платить о-о-о-о-очень хорошие деньги за такое обучение! ;-)

Сейчас сижу пишу конспект, прикидываю что тут можно сделать ... уже 42 стр. текста (это на 8 учебных часов по опыту) + примеров кода накатал:
Код:
[Olej@modules GO]$ tree examples.Go
examples.Go
├── compare
│   ├── compare.hist
│   ├── fibo
│   │   ├── fibo_c.c
│   │   ├── fibo_cc.cc
│   │   ├── fibo_go.go
│   │   ├── fibo.hist
│   │   └── Makefile
│   └── Makefile
├── Go.hist
├── goproc
│   ├── Makefile
│   ├── multy.go
│   ├── multy.hist
│   └── sleep.go
├── hello
│   ├── circle.go
│   ├── echo.go
│   ├── hello.go
│   ├── hello.hist
│   ├── Makefile
│   └── tiny.go
├── Makefile
├── tree.txt
└── triangle
    ├── Makefile
    ├── triangle.go
    └── triangle.hist

5 directories, 23 files

Когда конспект будет готов более-менее - выложу его сюда для всеобщего обозрения.

А пока вот 2 очень объёмные и приличные книги:
Miek Gieben : Learning Go
Caleb Doxsey : An Introduction to Programming in Go

5. ... но и это ещё не всё! :-o :lol:
Прошёл слух: я кому-то как-то в разговорах сказал, что уже 3-4 дня сижу готовлю учебный курс по Go...
Сегодня за 1 день сразу 2 независимые местные фирмы-разработчики, аутсорсеры, из числа самых приличных - постучались через Интернет: "и нам! и нам! ... хочется" :lol:
Мир сошёл с ума? :-o


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 16 авг 2014, 10:34 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Olej писал(а):
Когда конспект будет готов более-менее - выложу его сюда для всеобщего обозрения.


Как там говориться? :lol: :
Цитата:
мужик сказал - мужик сделал


Вот вам Go конспект.
Пока это сильно черновик, он будет дополняться и правиться.
Но там же все новые версии будут обновляться.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 26 авг 2014, 14:42 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Olej писал(а):
Вот вам Go конспект.
Пока это сильно черновик, он будет дополняться и правиться.
Но там же все новые версии будут обновляться.


Выложена новая, радикально расширенная версия, описания - 81 стр.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 12 сен 2014, 22:05 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Olej писал(а):
А пока вот 2 очень объёмные и приличные книги:
Miek Gieben : Learning Go
Caleb Doxsey : An Introduction to Programming in Go


Книга, изданная на русском языке (перевод): Саммерфильд Марк : «Программирование на языке Go: Разработка приложений XXI века», М.: «ДМК Пресс», 2013, стр. 550, ISBN: 978-5-94074-854-0
Книгу можно скачать: http://rutracker.org/forum/viewtopic.php?t=4538370

Оригинал: Mark Summerfield : «Programming in Go: Creating Applications for the 21st Century», Addison-Wesley Professional, 2012, ISBN-10: 0-321-77463-9
http://www.qtrac.eu/gobook.html

Архив примеров к книге: http://www.qtrac.eu/gobook-1.0.tar.gz


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 12 сен 2014, 22:11 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Ещё одна особенность Go: поскольку, как утверждается, компиляция с Go выполняется намного быстрее, чем в некоторых других языках, особенно в сравнении с языками C и C++, то представляется возможность использовать программы Go в качестве исполнимых скриптов (сценариев) системы Linux.

Этому посвящено несколько независимых проектов. В качестве примера - проект gorun (https://wiki.ubuntu.com/gorun , https://code.launchpad.net/~niemeyer/gorun/trunk). Простейший путь посмотреть как это происходит:

- установить систему контроля версий Bazaar, любимую разработчиками Ubuntu:
Код:
$ sudo yum install bzr
...
---> Пакет bzr.x86_64 0:2.6.0-2.fc20 помечен для установки
...
Объем загрузки: 6.3 M
Объем изменений: 29 M
Is this ok [y/d/N]: y
...                                                                                                 
Выполнено!
New leaves:
  bzr.x86_64


- загрузить сам проект gorun:
Код:
$ bzr branch lp:gorun
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
Branched 19 revisions.


- любым из известных нам способов скомпилировать программу gorun и поместить её в один из каталогов на путях $PATH:
Код:
$ gccgo -g gorun.go -o gorun
$ sudo cp gorun /usr/local/bin


Теперь пишем простейшую программу, которую хотим пользовать как скрипт - tiny.go :
Код:
#!/usr/local/bin/gorun

package main
import ( "fmt" )

func main() {
   fmt.Println( "минимальное приложение" )
}


И сделаем этот файл исполнимым:
Код:
$ chmod a+x tiny.go


При первом запуске команда gorun скомпилирует файл с расширением .go (очень быстро) и запустит его. При последующих попытках перекомпиляция будет выполняться, только если исходный файл .go изменился с момента предыдущей компиляции:
Код:
$ time ./tiny.go
минимальное приложение

real    0m0.213s
user    0m0.184s
sys     0m0.029s
$ time ./tiny.go
минимальное приложение
real    0m0.014s
user    0m0.009s
sys     0m0.004s
$ time ./tiny.go
минимальное приложение

real    0m0.010s
user    0m0.007s
sys     0m0.002s


Это такой своего рода Just In Time получается.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 12 сен 2014, 22:13 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Olej писал(а):
Это такой своего рода Just In Time получается.


Это достаточно заманчиво для разработки крупных комплексных проектов, когда:

- основные большие приложения проекта пишутся на Go и компилируются с максимальной оптимизацией...

- все вспомогательные приложения (тестовые, инсталляции, конфигурации ... обычно их море ...) - пишутся на том же Go в режиме исполняющихся скриптов.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 19 сен 2014, 20:20 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9446
Откуда: Харьков
Хорошее, активное (обновления каждый день) русскоязычное сообщество Go: Язык программирования Go

И активная ркусскоязычная группа обсуждений: Golang Russian Доступно всем в Интернете
(обсуждения практически каждый день)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.037s | 17 Queries | GZIP : On ]