Пока небольшой региональный самолётик авиакомпании American Eagle переносит меня из Лос Анжелеса в Сан Хосе, в аэропорт с милым русскому человеку названием Mineta, я попробую всё же поподробнее описать, что же это за зверь такой был - PDC - и почему мне там так понравилось.
Вообще, всё просто. Основная беда всех тех конференций и мероприятий от Microsoft и Co, на которых я бывал - это то, что организовывались они специально обученными для этого людьми: теми, кого принято называть евангелистами. Этих ребят подробно учат, как удерживать внимание аудитории, как правильно концентрировать его на нужных фичах описываемых продуктов, как отвлечь от слабых сторон, как отвечать на скользкие и неудобные вопросы скептиков. Они обладают изрядным запасом харизмы и ораторского искусства, умеют составлять красочные анимированные презентации и проводить интерактивные игры со слушателями. Они всегда открыты, доброжелательны, бескорыстны и готовы помочь по любому возникающему вопросу. Вообщем еванглисты - это профессиональные психологи, пиарщики, маркетологи - да вообщем почти всё что угодно, кроме одного. Они не программисты.
Нет, ну то есть понятно, что практически у всех у них перед устройством на работу в Microsoft был какой-то программерский Background, у кого-то больше, у кого-то меньше. Кое-кто из них некогда даже обладал статусом типа MVP, некоторые до сих пор продолжают программировать для себя и сообщества... Но слушать-то их приходят реальные профессионалы, которые пытаются использовать рекламируемые ими технологии постоянно и непрерывно, для создания реальных больших бизнес-задач. И когда у профессионала возникает вполне конкретный вопрос или, что хуже, претензия, то отвечать рекламными слоганами и заранее заготовленными примерами типа "Hello, World" получается не всегда. Особенно если технология действительно сыровата и имеет проблемные места, в которых сами-то евангелисты не виноваты совершенно. Ну и усугубляется всё это тем, что они вынуждены следовать инструкциям и гайдлайнам, присылаемым из Редмонда - а они далеко не всегда гладко ложатся на наши российские реалии. Вообщем - и стараются ребята по полной, и делают вроде всё правильно - а поди ж ты: серьезные люди к майкрософтовским ивентам относятся довольно презрительно. "Что, на дев-дэй сходил, Мишу Черномордикова послушал? Ну-ну. Что, теперь ты тоже можешь делать супер-красивые никому не нужные вещи?". Примерно так - и не без оснований.
Ну вот. А на PDC выступали разработчики. Люди, которые делают вот этот самый софт и эти самые технологии. Делают своими руками и головами, в реальном времени с живым фидбеком от нас. Они не твердят рекламных слоганов и не показывают 101 способ за 10 минут сделать совершенно ненужную вещь. Они демонстрируют свою работу нам - своим коллегам по цеху - и никто не сможет это сделать лучше них. А еще там выступают другие, не Microsoft'овские разработчики - и они делятся с нами (и с ними, с MS'ами) своим опытом использования их продуктов. И на их месте может оказаться кто угодно другой - любой, из почти десяти (или сколько нас там было) тысяч участников.
Вот это в принципе основное, что определяет совершенно другое восприятие. Ты чувствуешь, что попал не на рекламное мероприятие, где тебе пытаются впарить нафиг ненужную тебе вещь, а на встречу единомышленников, где все вместе делают одно дело. That's it. Чтобы прочуствовать разницу, надо было пролететь 10 тысяч километров и заплатить 2,5 тысячи долларов за входной билет.
Ну и чуть больше подробностей
Los Angeles Convention Center, как я уже говорил - гигантский комплекс зданий, продуманный и современный. Содержит множество залов, как небольших - на несколько сотен человек, так и гигантских многотысячных, в которые помещаются практически все участники конференции. При этом всё это в нужных количествах оснащено коридорами, фойе, дверями, эскалаторами, туалетами и прочим, что необходимо для обеспечения циркуляции бешеного количества людей в ограниченом пространстве без создания толчеи и пробок.
Гигантское количество обслуживающего персонала, управляющего всем этим комплексом. Стоят вдоль проходов, громко объявляя куда идти и где повернуть; указывают свободные места в залах и в столовой, помогая рассаживаться; помогают заблудившимся и запутавшимся; ну и, понятно, накрывают еду, чистят, убирают и т.п. При этом все весёлые, улыбающиеся и готовые как прийти на помощь, так и просто поболтать с любым.
Утром, перед самым началом, в гигантском зале в центре комплекса накрывали плотный завтрак типа "шведский стол". В полдень там же и так же проходил ланч. При этом в течении всего дня по всему комплексу стояли столы с россыпями фруктов, всякой выпечки, сладостей и прочего. Так же повсюду чай-кофе в свободном доступе и холодильники с мороженым, различными газированными напитками и просто холодной водой. Всё бесплатно и в достаточных количествах.
Опять же по всему комплексу были расположены зоны публичного доступа в интернет - сотни компьютеров для тех, кто почему либо был без своего ноутбука. Ну а для владельцев ноутбуков бесплатный WiFi по всему зданию и множество мест где можно с комфортом сесть и подключиться к розетке.
Центральные моменты конференции - Keynote-сессии. Это самые большие заседания в тех самых огромных залах, в которых собирались все участники. Здесь Microsoft говорила о наиболее значимых с её точки зрения тенденциях и перспективах. Здесь делались объявления наиболее громких и значимых релизов. Именно здесь Ray Ozzie в первый день анонсировал Windows Azure - новую платформу Microsoft для Cloud Computing'а. Потом рассказывали об инструментах для разработки на её основе, о платформах и технологиях, которые выступают front-end'ом для неё. На четвертой Keynote выступал глава Microsoft Research - и рассказывал о том, чем живет эта лаборатория и для чего. Помимо всего прочего высказал интересную мысль: Basic Research - это не средство для создания будущего богатства или еще чего. То, что фундаментальные исследования способны принести какую-то прибыль в среднесрочной перспективе - это побочный эффект, приятный, но не более того. В принципе есть более простые, эффективные и дешевые способы зарабатывания денег. Главное - это то, что инвестиции в науку и в исследования способны создать стратегический запас устойчивости, который поможет выжить, если всё станет плохо. И это справедливо как для отдельных корпораций, так и для государств вообще и для человечества в целом. Ну и еще - это очень захватывающая штука. Там же, на keynote, MSR продемонстрировали часть своих разработок - и это реально впечатляло.
Остальные - тематические - сессии проходили паралельно, в различных залах и комнатах. Темы были самые разные - от обзоров конкретных существующих технологий, до рассуждений о будущем. Были глубокие погружения в тонкости использования каких-либо платформ и инструментов, были различные hints&tricks, были вводные занятия для совсем новых людей. Каждый день, помимо Keynote, было 5 блоков сессий, по полтора часа каждый. Каждый блок - это 10-15 разных сессий в разных комнатах. Выбирай интересующую тему - и иди. Очевидно, что успеть послушать все невозможно, даже если кроме сессий не ходить никуда (а там масса еще интересного - об этом ниже). Но практически все сессии на следующий же день выкладывались в интернет, какие-то в виде полных видеозаписей, какие-то в виде PowerPoint презентаций и текстов. Поэтому можно было сходить на наиболее интересные доклады, а те, которые пропустил, посмотреть позже из сети.
Паралельно с сессиями работала так называемая "Большая Комната" - огромный зал в самом центре комплекса, в котором проходила вторая, едва ли не самая интересная часть конференции, которую, при этом, никак нельзя было заменить просмотром чего-либо в интернете. В центре зала находился Microsoft Pavillion - несколько десятков столов и стендов, у которых постоянно находилось некоторое количество сотрудников Microsoft. Каждый стенд был посвящен какой-то области или технологии - от Internet Explorer 8 до марсоходов(!) производства Microsoft Research. Микрософтисы у стендов - опять же не евангелисты да маркетологи, а разработчики, отвечающие за эту вот самую конкретную технологию. И они готовы ответить на любые вопросы: от "что это вообще и с чем это едят?" до "я вот тут расковырял ваш сорс-код, переписал часть адаптеров, но почему-то вот тут и тут не работает - что сделать?". У этих стендов можно зависать часами - даже если к данной конкретной технологии не имеешь никакого отношения. С профессионалами всегда приятно общаться. Т.е. когда он возьмет мышку и начнет показывать что-то, то он не будет водить тебя специально заготовленными тропинками где всё десять раз проверено для демонстраций - он пойдёт именно туда, куда ты просишь. И если вдруг все повиснет (или сработает не так как надо) он не будет смущенно прятать глаза и оправдываться. Он скажет "да, здесь бага, я её в принципе уже пофиксил в следующей версии - просто она ещё не очень стабильна, и на PDC мы показываем предыдущую. Тут вот ещё там и там баги будут - если будете пользоваться этим релизом, затыкайте так и так, или напишите мне, я вам следующую версию пришлю". И веришь сразу, ибо перед тобой - коллега, и ты сам прекрасно знаешь как оно бывает.
По бокам от зоны стендов находятся зоны Hands-On Labs. Это вообще отдельная и совершенно офигенная тема. Там стоят компьютеры, на которых проинстоллены те продукты и инструменты, которые анонсированы, показываются или описываются на кейноутах и сессиях конференции. И к этим продуктам подготовлен демонстрационный код и мануалы: ты можешь тут же сесть и попробовать что угодно: будь то ранний CTP 2010й Visual Studio, или последние средства Web разработки, или SDK для совершенно офигительной Microsoft Surface (о ней - ниже). Подходи, садись, пробуй, экспериментируй, учись. Опять же вокруг ходят спецы по соответствующей тематике: если что-то не получится - помогут и подскажут.
Чуть в стороне отдельный стенд, на котором можно проверить совместимость своего (или любого другого софта) с грядущей Windows 7. Там гарантируются безопасные условия: т.е. можно смело тестировать свой код не боясь, что его кто-то сопрёт. Ну, во всяком случае так говорится: я проверять не рискнул. Вообще же ядро Windows 7 не будет сильно отличаться от Vista и Windows Server 2008 - т.е. драйвера будут совместимы полностью, ну и другой софт скорее всего тоже.
Еще одно большое огороженное пространство в рамках Big Room - это Open Space. Этакая открытая площадка для обсуждения чего угодно. Здесь сами участники назначают встречи и обсуждения: собираются, ведут дискуссию, спорят, смеются - вообщем, эдакий профессиональный форум, оффлайн версия. Я был на одной из таких дискуссий - было интересно.
С другой стороны - филиалы реальных форумов: coding4fun.com и channel9.msdn.com - эдакие лаунжи с мягими диванчиками и пуфиками, где можно отдохнуть от сессий и профессиональной дискуссии. Ну и опять же: общение, общение, общение - с другими участниками, с организаторами, гостями и спонсорами.
Спонсоров довольно много - и под их стенды отведена ещё одна здоровенная часть Big Room'а. Там стенды различных IT-компаний, как софтварных, так и хардварных (кое-какие из них - прямые конкуренты Microsoft в некоторых областях). Они представляют там свои продукты, проводят конкурсы и презентации, вербуют сотрудников и ищут партнёров. Был безумно рад видеть там стенд замечательной питерской компании JetBrains - авторов лучшей в мире IDE для Java IntelliJ IDEA и не менее клёвого плагина для Visual Studio - ReSharper'а. Ребята выступали ни много ни мало как Золотым Спонсором конференции - и представляли ReSharper широкой публике. На стенде опять же были разработчики - и очень приятно было с ними поболтать (ребят, я знаю, что вы отслеживаете блоги, так вот если вы это читаете - респектище вам за вашу работу). Помимо всего прочего задал давно волноваший меня вопрос: будет ли выпущена IDEA для .Net - т.е. альтернативная Visual Studio среда разработки. Ответ, увы, отрицательный - и я вообщем могу его понять: платформа Microsoft, в отличии от Явы меняетcя очень быстро - и никакому стороннему разработчику не угнаться за Микрософтами, которые плодят новые технологии как пирожки. А IDE, поддерживающая лишь очень ограниченную часть функционала, никому не нужна. Увы.
BigRoom работал непрерывно всю выставку, но было организовано еще несколько отдельных мероприятия в нем. В первый день вечером, после окончания сессий, сделали Partner Party - вечеринку в спонсорской зоне, с массовыми конкурсами, раздачей халявного алкоголя, барбекю и музыкой. В третий же день сначала организовали некий митинг по вопросам "Секреты карьеры для женщины в IT-бизнесе", а потом в одном из крыльев Big Room'а организовали party "Ask the experts" - по всему залу накрыли около сотни здоровых круглых столов, за каждым столом сидело по несколько лучших специалистов в различных областях. Бери закусь и выпивку, садись за любой стол - и за бутылочкой пива обсуждай профессиональные вопросы с экспертами №1 в соответствующих областях. Я совершенно замечательно поужинал в компании с Андерсом Хейлсбергом (Anders Hejlsberg) - создателем языка C#, если кто не в курсе
Ну и собственно теперь про рассказанные, показанные и анонсированные вещи, если кому интересно. Пересказывать все кейноуты и сессии, на которых я был, я не буду. Если кому интересно - смотрите на сайте http://www.microsoftpdc.com - там всё самое интересное есть в записи (вернее, там ссылки - сами записи на channel9 живут).
Две основных темы PDC - это Cloud Services и Parallel Computing. Под словом Cloud в данном случае понимается интернет, как совокупность всевозможных узлов и сервисов в сети по всему миру. Здесь идея именно в маштабе - т.е. речь не просто о некоем хостинге для какого-либо сайта или сервиса, а о комплексном решении, об эдакой распределенной операционной системе, выполнящей пользовательские задачи одновременно на тысячах машин по всему миру, автоматически балансирующей нагрузку, обеспечивающий связь, предоставляющей доступ к данным и сторонним сервисам, выполнящей функции авторизации и аутентификации - и т.д. Для всего этого на Microsoft анонсировала платформу Windows Azure. Это, можно сказать, некий гигансткий кластер, размещенный в микрософтовских датацентрах по всему миру, а так же набор сервисов для работы с ним и набор приложений, на него опирающихся. Вообщем, гиганская и очень масштабная штуковина. Microsoft здесь далеко не пионеры - та же самая идея (только на чуть более скромном уровне) реализована в Google Apps, да и amazon.com не так давно запустил аналогичную систему. Ну вообщем ситуация довольно типична для MS - прийти на рынок последним, но попытаться захватить всё. Получится у них это или нет - посмотрим. Пока смотрим на http://www.azure.com, и если надо, то регистрируемся.
Что касается параллелизма, то тут всё довольно очевидно. Потолок тактовой частоты для кремниевых полупроводников по сути достигнут, ощутимо быстрее процессоры будут вряд ли (во всяком случае если не произойдёт каких-то принципиальных революционных открытий, которые поменяют технологию вообще). Но закон Мура пока в силе - и количество транзисторов на процессор по-прежнему растёт. Просто в результате производительность железа растёт не вверх, а вширь - на смену гонке тактовых частот пришла гонка ядер. Двухядерные процессоры стоят сейчас практически во всех новых машинах, а весьма много где и четырехядерные. Шестиядерные уже выпускаются, восьмиядерные не загорами. А в принципе в ближайшие годы мы увидим и 32-, и 64- ядерные CPU. Это всё речь о "потребильтельских" машинах - профессиональные платформы, позволяющие поставить несколько многоядерных CPU в одну машигу существуют уже очень давно, и там тогда будут уже совершенно фантастические количества ядер.
А надо понимать, что двухядерный процессор вовсе не работает вдвое быстрее одноядерного. Вообще говоря, он работает точно так же, более того - в ряде случаев может даже и медленнее. Для того, чтобы получить преимущество от многоядерности, программы должны быть написаны специальным образом - так, чтобы допускать и активно поддерживать распаралеливание задач, их одновременное решение. А это весьма нетривиальная штука, требущая довольно серьезной подготовки....я понятия не имею для кого я всё это пишу. программистам это и так очивдно как 2х2, а непрограммисты до сюда просто не дочитают. ну да пусть будет.... При этом если в "старом" мире даже криво и неэффективно написаное приложение будет скорее всего работать быстрее, если его запустить на более быстром ядре, то в "новом" многоядерном недостаточно "просто написать многопоточное приложение", чтобы оно начало ускоряться по мере роста числа ядер. Его нужно написать при этом правильно, эффективно. Как говорят сами разработчики от MS - "халява кончилась" (вернее, они говорят "free lunch is over"). Ну вот собственно весьма большое количество сессий и занятий было посвящено именно тому, как мы будем жить дальше в условиях кончившейся халявы. Как правильно писать параллелящиеся программы, какие для этого средства и инcтрументы предлагаются. Тут выступали не только Microsoft - было много сессий от Intel; к тому же и Intel и AMD активно присутствовали в Big Room'е - и на их стендах разговор тоже крутился в той же теме.
Меня кстати в этом плане заинтересовал один вопрос скорее философского плана. Ну что-то вроде вот такого диалога:
- Зачем нам надо разбиратьсяв тонкостях многопоточного программирования?
- Ну как же, чтобы эффективно использовать возможности многоядерных CPU.
- А зачем нам многоядерные CPU?
- Ну так по одноядерным упёрлись в потолок, теперь разитие идёт в число ядер.
- Ага. Т.е. программировать для большого числа ядер мы пока не очень умеем, сами многоядерные процессоры тоже пока только появляются, а существующие задачи отлично бегают на наших 3-4ГГц одноядерках. Но мы уже сами себе изобретаем проблему, сами же её решаем. Нафига козе боян? Нафига нам вообще городить огород со всем этим делом? Я имею в виду именно рынок потребительских, юзерских приложений (ибо системы мощных распределенных вычислений и "тяжелого" 3D рендеринга все же имеют ну ооочень ограниченную нишу. А во всем остальном все вполне нормально! А мы вместо этого сначала создаем многоядерные процессоры, а потом говорим "о черт! Наш софт не умеет на них работать, надо срочно совершенствовать софт!". НУ и нафига?
Такая вот философия. Подходил с этими вопросами к нескольким умным дядькам, как из MS, так и из Intel. Кое-кто отвечал честно: "потому что развивать новые процессоры, пусть может быть и не очень нужные - это основа нашего бизнеса. Если мы остановимся, мы умрём". Ну, честно и понятно, да - и вообщем в этом есть резон для самих интелловцев, да и для многих других (я, кстати, не исключение). Но, образно говоря, с точки зрения глобальной общечеловеческой пользы, вот это вот бегание белки в колесе, по сути, представляет собой бессмысленную трату ценнейших ресурсов. Миллиарды долларов и человекочасов тратяться на поиски решений к свежевыдуманным и никому кроме самой индустрии не нужным проблемам. Вообщем, мило побеседовал со многими умными людьми - но реального объяснения, зачем нам сейчас реально многоядерность и все связанные с нею проблемы так и не получил.
Вот. А еще отдельная тема - это Microsoft Surface. Это не с точки зрения программирования, это вообще - просто захватывающая штука. Если кто не знает что это такое - поглядите вот хоть этот ролик. Это такая штука, которую надо один раз увидеть, чем сто раз про неё прочитать. Помимо того, что она очень привлекательна чисто для пользователя (делать что-то на мультитач девайсе - безумный кайф, владельцы iPhone меня поймут), в ней еще масса всякого скрытого потенциала. Она распознает образы и штрихкоды, проецирует вторые-третьи слои изображения, работает с внешними девайсами - и вдобавок ко всему еще и очень приятно программируется. Там стояли Hands-on labs по этим штукам - и я кое-что попробовал. Остался очень доволен. Записался на получение приоритетного доступа к SDK для неё (он пока в закрытой стадии и всем подряд не раздается, но для посетителей PDC типа исключение) - и мне в почту уже свалилась ссылка на где скачать и с активационными кодами.
А сами Surface уже в принципе производятся промышленно и даже продаются - дороговато пока стоят, 10-15 тысяч долларов, но, во-первых, это хотя и дорого, но не запредельно, а во-вторых оно будет дешеветь, и по идее довольно сильно. То, насколько оно всё привлекательно для людей, должно сыграть свою роль. А оторваться от этой штуки реально непросто. Они стояли по всей выставке - и всегда и везде были центром внимания.
Вообщем, мультитач как таковой явно будет набирать обороты дальше. Он будет активно использоваться в следующей винде - которая Windows 7, а в железе он существует уже сегодня. На конференции показывали новые компы-моноблоки от HP (хардварного спонсора PDC) с мультитач дисплеем. Относительно дешевые, кстати - менее двух тысяч баксов за комп, при том что внутри полный фарш современного железа.
А еще у кого-то в спонсорской зоне была интересная штука: широкий стеклянный прозрачный экран, закрепляемый поверх любой плазменной панели или LCD-телевизора, превращающий их в мультитач-устройство.
А вообще было реально очень много всего. Ощущение похоже на то, как если найдешь пруд с золотыми рыбками. Масса ценного - но всего не унести, и приходится выбирать. Дико жалел, что не могу раздвоиться, растроиться и раздесятериться, чтобы успеть везде.
Всем участникам подарили по внешнему HDD, под завязку забитому свежим софтом: беты, CTP, превью и т.д. Windows 7, Windows 2008 R2, Visual Studio 2010, всевозможные SDK и toolkit'ы. Ну и по пачке всевозможных DVD, частично дублирующих, частично доволняющих содержимое хардов. Кстати, если кому что-то интересно - могу поделиться. Ну и вообще на конференции можно было активно разжиться всякой халявой - от сувенирной продукции и всевозможных рекламных футболок, до вполне себе ценных гаджетов и софта. Я, в принципе, за халявой особо не гонялся - вроде как бы не за этим ездил
Как-то так. Если что еще вспомню - потом отдельно напишу.