11 ноября 2009

Google Go

posted in Все записи |

Провел вечер за изучением свежего языка программирования.

pictureGoogle создал новый язык программирования

Поисковик Google объявил о создании Go, нового языка программирования. Go, по утверждению авторов, сочетает в себе скорость разработки, характерную для динамических языков, таких как Python, с производительностью и безопасностью компилируемых, таких как C и C++.Go поддерживает многопроцессорность и предназначен в первую очередь для системного программирования. С его помощью, например, можно написать сервер, обслуживающий одновременно тысячи соединений.

Сам Google подчеркивает, что Go - экспериментальный язык. Он пока мало используется даже внутри компании, так как не готов к широкомасштабному применению. Пока на Go написан лишь сервер для официального сайта языка, Golang.org.

В разработке Go принимали участие лучшие специалисты в этой области, пишет CNET news. В частности, это один из создателей Unix Кен Томпсон, архитектор операционных систем Inferno и Plan 9 Роб Пайк, а также Роберт Гризмер, один из разработчиков V8, механизма обработки JavaScript в браузере Chrome.

http://lenta.ru/news/2009/11/11/go/

Несколько слов об установке:

сначала устанавливаем систему контроля версий Mercurial:
apt-get install mercurial

Устанавливаем некоторые переменные, необходимые для сборки:

export GOROOT=/home/user/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOOS=linux
export GOARCH=386

GOOS и GOARCH устанавливаются согласно операционной среде и железу, согласно инструкции по установке.

В моем случае еще была проблема с установкой из под root-а, но согласно бактрекингу, она была пофиксена.

Делаем чекаут последней ревизии:

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

Далее создаем каталог куда будут свалены исходники:

cd $GOROOT
mkdir bin

Запускем сборку:

cd src
./all.bash

По завершению установки в каталоге $GOBIN создаются необходимые для работы бинарники, а в $GOROOT/pkg/$GOOS_$GOARCH/ - библиотеки, о них важно помнить при переносе файлов из одно места в другое.

Создаем тестовый файл hello.go:

package main
import "fmt"
func main() {
	fmt.Printf("hello, world\n")
}

Компилируем: 8g hello.go
Затем линкуем: 8l -o hello hello.8

Запускаем:  ./hello

hello, world

Ура.

Приложение кстати получилось довольно увесистое: около полумегабайта.

В целом, синтаксис и возможности оставили приятное впечатление.
Буду разбираться.

Кстати, возможно, "go" - не финальное имя языка, т.к. в багтрекинге отметился человек по имени Francis McCabe, на протяжении последниз десяти лет занимающийся работой над собственным языком "Go!", выпустивший книгу под названием Let's Go. Конечно, не факт, что ему удастся победить такого гиганта как Google, но этот казус, наверняка, принесет ему мировую известность.

Официальный сайт языка: http://www.golang.org

Оставить комментарий