суббота, марта 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 специалистов будет расти с страшной силой.
Дерзайте.
     

среда, февраля 22, 2012

Умный ридер

Я люблю читать новости, и я слежу за новостями.
Для этого я использую iGoogle, Google Reader а на мобильном телефоне- айСтрим. Было бы странно, если бы  я использовал другой ридер, потому что айСтрим придумал я сам :)
Так вот, он оперативно доставляет мне новости, и я вполне доволен им, но есть одна проблема.
В айСтриме у меня постоянно висит 100 - 200 - 300 непрочитанных новостей. Я отписываюсь от одних каналов, обнаружив что практически ни читаю их, и подписываюсь обратно, когда вижу что пропустил что-то важное. Но проблема остается.
Новостей слишком много, большинство из них мне не интересно, а самые интересные проходят мимо меня.
Так вот, сейчас мы начали работать над этой проблемой. Я хочу сделать такой ридер, который избавит меня от потоков бесполезной информации, и в тоже время, выловит в этих потоках крупицы того, что мне действительно интересно. Умный ридер будет анализировать, что я читаю, как и сколько я читаю. Эту информацию он будет использовать для обучения и предсказания (предвидения) того, что мне может быть интересно.
Да, я знаю, что такие системы уже есть, Zite например. Я много интересовался этими вопросами в последнее время, и могу назвать еще несколько примеров. Будем считать, для простоты, что мы делаем русский Zite, потому что ни один из персонализированных ридеров не поддерживает русскоязычный контент. И это не все. Есть еще ряд проблем, которые хотелось бы решить. Одна из них  - социальное ранжирование новостей. Мы хотим научиться ранжировать ссылки, используя для этого социальные графы соцсетей (тафталогия какая, но пока не знаю как сказать лучше).
Пока же, мы сосредоточились на решении задачи фильтрации контента на основе содержания и предпочтений пользователя. Задача не из простых, но ужасно интересная.
У нового проекта пока даже нет названия. Возможно, это будет следующая версия айСтрима, а может быть совсем новый продукт. Надеюсь, нам хватит сил и средств довести это дело до практического результата.
Как вы думаете, насколько эта тема будет востребована?
         

среда, февраля 08, 2012

Статистика.

Не помню, кто сказал: "Есть правда, есть ложь, а есть статистика".
Опубликовали приложение на Windows Marketplace. Статистика показывает 8 загрузок, и 12 отзывов. Это при том, что пользователь может сделать только один отзыв, ну и отзывы оставляет далеко не каждый.
Статистика, такая статистика.