вторник, 10 мая 2011 г.

Теперь Google App Engine SDK доступен на языке Google Go

В данном посте не проявлю особого творчества, просто публикую здесь перевод поста из блога Go Project. Данный пост считаю очень важным, так как это первое нашумевшее серьезное применение этого языка; и хотя язык позиционируется, как средство системного программирования, в данном случае получаем язык для веб разработки на облачной платформе Google App Engine.


ОригиналПост на блоге Go Project


Google App Engine предоставляет надежные, масштабируемые и простые средства для создания веб приложений. Более сотни тысяч приложений хостятся на appspot.com и пользовательских доменах и при этом используют инфраструктуру App Engine. Изначально система была сделана для создания приложений на Python, а в 2009-м году добавилась еще и поддержка языка Java. Сегодня, на Google I/O, мы с восторгом объявляем вам, что следующим будет Go. Сейчас эта возможность обозначена как экспериментальная возможность App Engine, поскольку технология является новой; но при этом команды App Engine и Go в восторге от этого достижения.


Под словами технология новая мы подразумеваем то, что она еще "обкатывается". На сегодняшний день App Engine SDK для Go доступен для загрузки, а скоро будет доступен и для хостинга. Начиная с сегодняшнего для, используя SDK, вы получаете возможность создавать веб приложения, изучать API (а также, язык, если он для вас новый), а также запускать веб приложения локально. Когда будет доступна возможность хостинга, вы с легкостью сможете переместить проект в облако Google.

Если вам невтерпеж, и вы не можете ждать так долго, вы можете стать доверенным тестером. Для этого следует зарегистрироваться, и вы попадете в список тех, кому данная функция будет доступна раньше всех. После периода тестирования, мы откроем эту возможность всем, хотя она и будет еще некоторое время оставаться экспериментальной частью App Engine.

Еще одна классная, но менее очевидная вещь заключается в том, что вам предоставлен очень простой способ взаимодействия с Go. У вам Go может быть даже не установлен, так как SDK содержит компилятор внутри. Просто загрузите SDK, распакуйте, и начинайте писать приложения. Более того, сервер приложений, который входит в состав SDK, предполагает, что вам даже не придется компилировать приложение собственноручно; все до ужаса автоматизировано.

В SDK вы найдете много стандартных API App Engine, написанных в хорошем Go-стиле, включая Datastore, Blobstore, URL Fetch, Mail, Users, и другие. Поддержка остальных API будет добавлена со временем. Вам предоставляется полная поддержка языка Go и почти все стандартные библиотеки, кроме нескольких вещей, которые не имеет смысл использовать в окружении App Engine. Например, нет пакета unsafe, а пакет syscall урезан. (Реализация использует расширенную версию настройки в Go Playground на golang.org.)



Также, хотя go-рутины и каналы присутствуют, когда приложение на Go работает в App Engine, допускает запуск только одного потока в конкретном экземпляре (instance). То есть все go-рутины запускаются в единственном потоке операционной системы и нет никакой возможность использовать параллельность CPU для клиентского запроса. Мы ожидаем, что удастся убрать это ограничение со временем.


Невзирая на мелкие ограничения, это настоящий язык: код выкладывается в форме исходников и компилируется в облаке с использованием 64-битного x86 компилятора (6g), таким образом это первый компилируемый язык, который работает на App Engine. Go в App Engine предоставляет возможность создавать приложения, от которых требуется эффективность использования ресурса CPU.

Если вы хотите узнать больше, читайте документацию (начиная с “Getting Started”). Библиотеки и SDK поставляются в открытых исходниках, которые размещены на http://code.google.com/p/appengine-go/. Мы создали новый список рассылки google-appengine-go; не стесняйтесь связываться с нами по поводу вопросов об App Engine. Трекер задач для App Engine - это место для отправки сообщений об ошибках, связанных с новым Go SDK.

Go App Engine SDK доступен для Linux и Mac OS X (10.5 или больше greater); надеемся, что Windows версия также будет скоро доступна.

Мы хотим выразить благодарность за всю помощь и энтузиазм команды Google App Engine, которая сделала все вышеописанное возможным.



- David Symonds, Nigel Tao, Andrew Gerrand, и остальная часть Команды Go.

В этом гаджете обнаружена ошибка