Во вторник я ходил на Google Developer Day!
Проходил он в кинотеатре Октябрь на Новом Арбате.
Было много интересного.
Вступительная часть
Открытие встречи вёл Eric Tholom, менеджер по продуктам Google. Он задал тон конференции, сказав
The Web has won.
Веб стал полноценной платформой разработчика. Веб растёт, контент становится богаче, а браузер — первая запускаемая при включении компьютера программа. Время витать в облаках.
Открытие длилось больше часа и включало в себя небольшие обзорные доклады по важным направлениям.
Началось всё HTML 5. Mark Pilgrim (он написал Dive into Python) говорил про большую пятёрку важных фич HTML 5:
Canvas (современный способ рисовать графику на веб-странице средствами клиента);
тег
<video>
;Geolocation (средства, позволяющие учитывать географическое местоположение посетителя сайта);
App Cache (обеспечивает работу клиентских веб-приложений даже в оффлайне!) и DB (хранение пользовательских данных на клиенте);
Web Workers (запуск фоновых процессов в браузере для повышения производительности).
Марк показал свой дефолтненький Емакс на весь большущий экран первого зала.
(Позже по ходу дня у Марка была отдельная часовая лекция, посвящённая введению в возможности HTML 5.)
Затем говорилось о «Developer Strategy» Гугла, которая заключается в предоставлении платформ и инструментов разработчикам, чтобы они могли создавать на их базе всякие крутые штуки.
В части про платформы рассказывали про Chrome (модный ныне браузер от Google), Chrome OS (Linux + Chrome; Google ожидает нетбуки на этой ОС во второй половине 2010) и конечно же Android, который всего за год расползся по более чем 10 устройствам и многим странам и операторам.
Что касается инструментов, то Lars Rasmussen и Stephanie Hannon представили детище Сиднейского офиса Google — модную ныне технологию Google Wave. Кстати, всем участникам GDD раздали инвайты в Wave и его песочницу для разработчиков, так что шума сейчас на волнах стало ещё больше :)
После этого Fred Sauer показал, как можно быстро слепить простое веб-приложение, используя GWT и App Engine, и как удобна живая отладка с Eclipse.
Google продолжил заманивать доверчивых веб-девелоперов небольшим рассказом Chewy Trewhella о Custom Search и заработком денег на нём.
How to make money with Google Custom Search? Well, you click the «Make money» link.
Потом на сцену вышли создатели Викимапии и рассказали об истории проекта и том, какую роль в ней сыграли открытые API от Google.
На этом вступление закончилось. Дальше все пошли слушать всякие разные лекции и общаться с инженерами Гугла в отдельной секции. Лекций за весь день было прочитано около тридцати, шли они параллельно в пять потоков, каждый из которых был посвящён одному большому направлению — типа «Продукты Google для разработчиков» или «Social & Mobile». В рамках каждого потока было прочитано по 6 лекций, на продукты Google было выделено сразу два потока :)
Дальше я расскажу о том, что видел и слушал сам.
Лекции
Геосервисы
Jean-Francois Wassong прочитал две лекции про геосервисы Google и том, какие штуки можно делать на своих сайтах с помощью Google Maps API. Ничего нового я там не услышал, однако было неожиданно в конце первой лекции увидеть рассказ приглашённого из Яндекса разработчика об API Яндекс.Карт. Мне показалось, что выглядело это так: вот мы Яндекс, у нас АПИ не хуже гугловского, умеет то-то и то-то. Без обид, хотя презентация у него была гораздо лучше оформлена.
OpenSocial
Chris Chabot рассказывал о социальном вебе.
The web is better when it’s social.
Одной из главных инициатив в этом направлении является OpenSocial — проект (придуманный Google и MySpace) для интеграции разных социальных сетей (то есть, обеспечение межсетевого доступа к данным, представленным в одной из сетей, чтобы не надо было на каждом сайте подолгу регистрироваться, добавлять френдов и т.д.)
Что более важно, предлагается даже общий механизм по разработке «гаджетов» (встраиваемых в профиль пользователя небольших приложений (как же перегружен значениями этот термин!)) и совместному использованию одних и тех же гаджетов на разных социальных сетях. Участвующие в инициативе сайты должны предоставлять социальную информацию в API, построенные на XML и JavaScript, с помощью которых разработчики уже пишут свои гаджеты.
В проекте уже участвуют MySpace, LinkedIn, Hi5 и другие сети. Из наших на данных момент только Mail.ru. Крис сказал, что писал чувакам из ВКонтактика, чтобы присоединялись.
Чисто Гугловский продукт в тему — Friend Connect, который позволяет каждому сайтику прибавить социальные функции с помощью встраиваемого на странички виджета. Можно строить сообщества. Мы что-то подобное видели и раньше — например, виджет с «читателями сайта» от toodoo.
Крис упоминал проект WebFinger, который нацелен на ассоциацию почтового адреса с персоной, а также добавление всяких метаданных к связанному с емейл-адресом профилю. Это оппозиция подходу, принятому у активистов Семантической Паутины, в котором персона привязывается к URL.
Общее направление понятно — всеобщая социализация без границ между сайтами.
Native Client
Виктор Хименко из российского отделения Google рассказывал о развитии Native Client — технологии, которая позволяет безопасно выполнять нативный код в браузере, избегая недостатков как у ActiveX.
Было очень интересно! Виктор только начал читать доклад, как его сразу засыпали кучей вопросов, шквал которых не прекращался до самого конца выступления. Уж больно много идей для применения такой мощи возникает. Работают над ней для реализации веб-приложений, которые требуют тяжёлых вычислений на клиенте. Ввиду приближающейся Chrome OS, тема может стать особенно актуальной (в зависимости от успеха системы).
Виктор рассказывал о шагах, предпринятых для обеспечения безопасности. Занимающий всего 600 строк валидатор проверяет код при запуске, удостоверяясь в отсутствии «опасных» инструкций, выполняющих системные вызовы. Чтобы обезопасить себя от кодогенерации, требуется, чтобы все переходы оканчивались в начале 32-байтных блоков памяти (таким образом, нельзя спрятать опасные инструкции внутри блока). Валидатор работает быстро. Для компиляции программ под Native Client были внесены правки в GCC и гнушный ассемблер. Уже есть рабочие примеры программ для Native Client.
Native Client недавно был встроен в браузер Chrome.
Android
Reto Meier давал обзорную лекцию об Андроиде. Чё такое, какие ништяки есть на борту Андроид-девайсов, как быстро платформа растёт, как круто иметь AppStore для избежания «фрагментации рынка» (и держания разработчиков на поводке). На лекции было много действующих юзеров и разработчиков под Андроид. Я так понял, предполагалось показывать примеры живых Андроид-приложений, но докладчик торопился и пичкал нас кодом на Java.
Are you ok with the code? Alright, so you’re hardcore :)
Во второй половине доклада вышел российский Андроид-девелопер, работающий в аутсорсинговой компании, что-то говорил про NDK (инструмент, позволяющий расширять Android-приложения нативным кодом на C/C++). Рассказал, что единственный официальный способ отлаживать прогиNDK-код под Андроид — писать логи с помощью отладочных макросов, встраиваемых в код, на что один из слушателей рассказал ему, как на разлоченном Андроиде можно отлаживать программы прямо с помощью GDB. Reto заулыбался.
PubSubhubbub
Brett Slatkin представлял придуманную им систему PubSubhubbhub (хотели назвать просто Push, но такое слово невозможно было бы нагуглить) для децентрализованного обмена сообщениями (ему не нравится XMPP и всё остальное). Смысл его идеи в том, чтобы делегировать третьей сущности под названием «хаб» рассылку сообщений от издателя к подписчикам. Предполагается, что хаб должен брать на себя балансировку нагрузки, а также рассылать подписчикам только обновления информации. По мнению Бретта, используемая в RSS модель, при которой подписчик постоянно вытягивает всю ленту, слишком затратна с точки зрения экономии трафика, потому что при каждом обновлении до 99.5% пересылаемой информации лишние, поэтому спасение заключается в замене pull на push.
Мне очень нравится это направление. Так можно будет обеспечить эффективную работу сайтов, аггрегирующих разный интересный контент из множества распределённых источников (сейчас это надёжно работает только для блогов с помощью планет). Предлагается, что с помощью PubSubhubbhub можно передавать не просто текст, но любой контент согласованного формата.
Бретт налегает на действительно важные вещи — децентрализованность, возможность по максимуму использовать существующий задел, независимость от каких-либо коммерческих организаций (например, Google). Он даже раздал нам маленькие наклеечки с логотипом PubSubhubbhub.
Как написать API
Вадим Герасимов, который когда-то вместе с Пажитновым работал над Тетрисом, выступал с докладом авторства Joshua Bloch (одного из архитекторов Java), посвящённым грамотному проектированию программных интерфейсов. Доклад на английском, Вадим начал читать на английском, но его упросили читать на русском, что давалось ему явно нелегко. Рассматривались всякие частые косяки, которые случаются при создании API. Ничего неочевидного на докладе я для себя не открыл и даже не стал ждать его окончания.
Закрытие
В конце была прощальная встреча, после чего все перешли к большому количеству алкоголя.
Участникам конференции ещё на регистрации раздали анкеты с вопросами о том, что понравилось и не понравилось на конференции, заполненные анкеты можно было обменять на пакет с подарками от Гугла — футболочка, наклеечки, блокнотик, и ещё ручка :)
Организация
Регистрация в начале затянулась и была здоровенная толпень (и вообще, в холлах было тесновато, особенно в перерывах на еду). Было дохера засранцев с большущими рюкзаками.
Free beer
По ходу конференции был обед со всякой едой, перерывчик с кофе/чаем/сладким (кто-то неосторожный налил мне на рукав немного кофе) и длинный фуршет в конце с длинными столами, заставленными алкоголем (пиво, вино) :)
Отдача
На конференцию пришло больше полутора тысяч человек, все получили заряд новых идей и положительные эмоции. Думаю, куча народу сейчас пересмаковывает всяческие гугловские API, играет с Google Wave, а кто-то и прикидывает бизнес-план для стартапов :)
В то же время, не могу сказать, что на конференции было что-то сногсшибательно новое, в основном просто сочное изложение (из первых рук) того, что иначе пришлось бы прогугливать самостоятельно :) Это всё-таки мероприятие рекламного толка, направленное на увеличение зависимой от Google девелоперской (и, как следствие, пользовательской) базы. Я, например, немного огорчён тем, что как-то мало трёпа про всякие семантические технологии. Наверное, непонятно, как на них можно зарабатывать.