суббота, марта 03, 2012

Windows 8 Camp

Коротенько опишу, что интересного рассказали на Windows 8 Camp, который прошел вчера в Москве.
Материалов конференции еще нет в интернете, поэтому все свои рассказы я могу проиллюстрировать только вот этим страшненьким слайдом, найденным неизвестно где:

С точки зрения программиста, в Windows 8 появилась Метро-надстройка над ядром операционной системы. Для пользователя - это новый Метро интерфейс, который выглядит как на Windows Phone. А для программиста - это все, что закрашено зеленым цветом на слайде.
Все программы для Windows теперь делятся на два больших класса. Первый класс - это обычные Win32 программы  - это все то что может работать на текущих версиях Windows, включая .Net приложения. Тут все без изменения. Второй класс - это метро-программы. Метро-программы могут выполняться только на Windows 8.  Далее будем говорить именно о них.

Основу всей Метро-надстройки составляет Windows RunTime API, или кратко WinRT. В задачи WinRT входит предоставить унифицированный интерфейс доступа к системным ресурсам для различных типов метро-приложений (всего таких типов три, но об этом позже). Почему это важно? Потому что метро-программы работают в полностью изолированном режиме, и как следствие не имеют доступа ни к Win32 API, ни к более низкоуровневым интерфейсам, тем более. Межпроцессное взаимодействие возможно только через так называемые "контракты", которые также являются частью WinRT. Зато WinRT предоставляет большое количество удобных API для доступа к различной периферии и сенсорам (камера, тачскрин, гироскоп,. компас, GPS и т.д.).  Интересно, что практически весь API WinRT выполнен в асинхронном стиле.
Изменился и сам жизненный цикл приложений. Активным может быть только одно приложение. Все фоновые приложения пребывают в suspended состоянии. Если у системы намечается дефицит ресурсов, то она самостоятельно начинает выгружать suspended приложения. Зачем это надо? Правильно, для экономии энергии, ведь Windows 8 будет работать и на планшетах. Следствие изменения жизненного цикла приложений - совершенно иной подход к организации выполнения всяческих фоновых задач. Для этого появилось множество фич, похожих на то что есть в Windows Phone.
В целом, Метро-надстройка в Windows 8, это не просто перенос из Windows Phone в "большую Windows" метро-дизайна  UI, но и перенос многих архитектурных наработок из мира мобильных OS в мир настольных OS.

Теперь что касается разработки. Тут все здорово.
Как видно из диаграммы, разрабатывать метро-приложения можно на С++, на .Net, и на HTMP5 + CSS3 + JavaScript. Причем в случае использования С++ мы получаем нативный код. Для разработки UI у нас есть выбор из XAML,  HTML5 и DirectX. Насколько я понял, для С++ доступен как XAML так и DirectX, для .Net - только XAML, а для JavaSscript только HTML (могу ошибаться, инфы было маловато).   Замечательно также то, что можно создавать компоненты на С++ или .Net и использовать их в любых приложениях в т.ч. на JavaScript.
HTML5 приложения для Windows8 - это вообще бомба! Во-первых, это отличная возможность для разработки кросс-платформенных приложений, работающих например, на Android, iOS и Windows. Во-вторых, HTML5 на Windows8 это полноценные приложения, имеющие полный доступ к WinRT. Причем, как я уже упоминал ранее, отдельные компоненты такого приложения вполне могут быть написаны на С++.
Интересный факт, на Windows8Camp, представитель разработчиков популярной игры Cut The Rope сказал, что портирование HTML5 версии игры на Windows8 заняло у них две недели. Причем ни одной строки кода в самой игре править не пришлось.

Среду разработки метро-приложений на C++, .Net и HTML5 представляет Visual Studio 11, бета версию которой уже можно загрузить и попробовать. Я советую сделать это всем, и как можно скорее. Поверьте, уже очень скоро на рынке появится очень большая потребность в разработчиках метро-приложений. Хотите узнать почему? В Windows 8 появилась одна интересная штука - магазин приложений Windows Store (да-да, привет Apple, не прошло и трех лет :). Но это не все, есть еще несколько интересных фактов.

  • Метро-приложения можно устанавливать только через Windows Store, больше никак. 
  • Из коробки в Windows 8 будет только два приложения: Windows Store и Internet Explorer.
  • Windows 8 будет работать не только на WIntel дектопах, на которых она рано или поздно заменит Windows 7, но и на ARM планшетах, нетбуках и ноутбуках.

Что у нас получается? Эффект AppStore, который предоставляет огромному числу индивидуальных разработчиков возможность заработать на своих программах, помноженный на самую большую в мире потенциальную аудиторию пользователей. Так что, мой совет, всем осваивать WinRT! Россия будет в числе 20 стран, для которых в Windows Store будут возможны расчеты в национальной валюте.

Подведем итоги.
Можно констатировать, что в мире Windows, восьмерка - это самое кардинальное обновление со времен появления NT. И Windows разработчиков в связи с этим фактом ждут самые радикальные перемены, вполне, впрочем, приятные. Дотнетчики будут востребованы как и прежде. Для C++ников открываются новые замечательные перспективы (в т.ч. и в геймдеве под Метро). Ну, а спрос JavaScript специалистов будет расти с страшной силой.
Дерзайте.