- На ISDEF вы говорили о том, что Windows Phone 7 был переписан с нуля - якобы необходимость этого назрела. Хотелось бы подробнее узнать о причинах. Почему потребовалось полностью переделывать систему, почему нельзя было использовать какие-то наработки от Windows Mobile и ограничиться, скажем, переделкой интерфейса?
- Это был непростой, но важный шаг, который сделал Microsoft несколько лет назад (наверное, около трёх лет, когда, собственно, стартовала разработка Windows Phone 7). Был проведён большой анализ, который показал, что дальнейшее эволюционное развитие ветки Windows Mobile не принесет тех результатов, которых мы ожидаем от данного подразделения, поэтому было принято решение, что нужно сделать большой шаг в сторону и шаг вперёд, таким образом отказавшись от того, что у нас было до этого, в пользу свободы действия, которая у нас таким образом появляется. И действительно, седьмая версия, несмотря на свой номер, сильно отличается от всех шести предыдущих - это новая платформа. Она новая и с точки зрения технологий и процесса разработки, она новая и с точки зрения тех телефонов, на которых она запускается, она новая для сторонних разработчиков. И она новая для конечных пользователей этих телефонов. Весь user experience этого телефона абсолютно другой: он интегрированный, он включает в себя не только локальные возможности телефонов, но и огромное количество облачных возможностей, различные сервисы - поиск, карты, игры, контакты, социальные сети и так далее.
- Что для этого нужно было изменить внутри операционной системы? Ведь понадобилось менять всю платформу, включая ядро...
- Да, дело в том, что для разработчиков у нас есть специальный слой управляемого кода. Сторонние разработчики сейчас могут писать приложения на C#. При этом производителям телефонов и операторам сотовой связи у нас предоставляются специальные возможности по разработке нативных приложений.
- То есть не управляемый код, а что-то более низкоуровневое?
- Это специализированный набор разработчика, который позволяет писать все эти вещи нашим партнерам, которых я назвал выше. Таким образом, мы решаем несколько задач. С одной стороны, производители и операторы могут в разумных пределах оптимизировать телефон для себя, а с другой - авторы программ получают быструю среду разработки, доступ к магазину предложений Marketplace.
- От производителей железа требуется соблюдение определённых правил и стандартов. Но для них всегда было важно делать модели достаточно разными. Не считаете ли вы, что Windows Phone 7 их в этом плане ограничивает?
- Когда мы делали новую платформу, у нас была хорошая возможность использовать богатый опыт создания предыдущих версий. Во времена Windows Mobile было слишком много разных телефонов и слишком много разных приложений. С одной стороны, конечному пользователю не всегда было понятно, как работает телефон и приложения. Почему в журнале или рекламе он видел одно, а в реальности это оказывалось другим. Или почему приложение полностью меняет внешний вид телефона и ведёт себя совершенно по-другому. Используя этот опыт, мы решили задать нижнюю планку, которой должны соответствовать все телефоны - неважно, где и кем они сделаны. Но при этом верхняя планка не ограничена. На данный момент есть производители: Samsung, LG, HTC и Dell. Недавно прошел сертификацию аппарат от компании ASUS.
Если посмотреть на эти телефоны (у меня здесь есть такая возможность), выясняется, что, несмотря на то что они все подходят под одинаковые требования, они все абсолютно разные. У одного больше экран, у другого он ярче, третий аппарат легче, у четвёртого есть клавиатура и так далее. Внутри тоже есть различия: многие производители сделали свою секцию в магазине приложений, некоторые в партнёрстве с операторами сделали свой набор предустановленных приложений. Таким образом, есть и общность платформы, и свобода действия.
- Среди телефонов, которые демонстрировались во время запуска, была модель HTC с собственной оболочкой - HTC Hub. К сожалению, она тогда не работала. Может быть уже видели подробнее, что это такое и зачем оно нужно?
- Я думаю, вы запускали HTC Hub, когда не было соединения с сетью, поэтому ничего не работало. На самом деле в HTC Hub содержится разная информация: погода, котировки, текущее время...
У меня здесь есть AT&T самого популярного американского оператора. Это аппарат Samsung, я сейчас включу и расскажу, что в нём есть. В центре экрана находится AT&T U-Verse - мобильное телевидение для абонентов AT&T. Здесь же есть встроенный навигатор AT&T GPS, предназначенный для использования в машине, и HD-радио AT&T. Есть приложение Now ("Сейчас"), идеологически оно схоже с тем, что я видел в HTC Hub: это погода, новости и котировки акций. Таким образом, если я являюсь абонентом AT&T и покупаю телефон, я в нём сразу вижу те сервисы, на которые я был подписан, или могу сейчас же подписаться на них.
- Вы говорите, что телефоны могут быть самыми разными, но стандартизирована даже такая вещь, как разрешение экрана. Это временное ограничение, или набор разрешений всегда будет жёстко задан?
- На самом деле разрешение - это та область, в которой минимальное количество сторон хотят большей свободы. То есть если мы слышим разные отзывы о других ограничениях, то ограничения на разрешение экрана практически всеми встречаются очень положительно. Дело в том, что разнообразие разрешения экрана до этого было большой проблемой как для разработчиков, так и для пользователей. Основная проблема заключалась в том, и мы это сейчас видим на примере других платформ, что если свобода разрешения экрана очень большая, то разработчик вынужден тестировать свое приложение на всём разнообразном оборудовании. Хотя второе разрешение экрана действительно появится; это было анонсировано еще в марте. Второе разрешение будет поменьше. Но это скорее заделы на будущее - пока непонятно, когда это будет реализовано.
- Давайте вернёмся к разговору о платформе и об управляемом коде. Не оказывается ли так, что он замедляет работу телефона?
- Это самый первый вопрос, который задает любой разработчик, который знакомится с платформой Windows Phone 7. Он вполне понятен, поскольку исторически любая виртуальная машина является пусть и небольшим, но замедлением. Windows Phone 7 в этом плане сильно отличается от всего того, что было раньше - к примеру, в настольных операционных системах. В данном случае сама ОС разрабатывалась уже после создания виртуальной машины и именно для неё. Поэтому Silverlight и XNA не являются надстройкой над операционной системой, а скорее, частью ОС. Она спроектирована таким образом, чтобы для самой системы эти фреймворки и платформы были родными. Поэтому производительность остаётся на максимальном уровне, к тому же работает аппаратное ускорение графики. Например, в Silverlight она полностью аппаратно ускорена на всех телефонах Windows Phone 7.
- Windows Phone 7 не единственная платформа, и не доминирующая. Разработчики наверняка захотят писать кроссплатформенные приложения. Какие у них есть варианты? Насколько легко портировать приложения? Насколько сложно портировать на Windows Phone 7, скажем, игру, которая уже сделана для iPhone?
- Да, это хороший вопрос, и все мы прекрасно знаем, что рынок мобильных платформ сейчас максимально конкурентен. Мне кажется, что для разработчиков это такое золотое время, когда стоит обратить отдельное внимание на данную область. При этом интересно наблюдать, что в этой области по сути каждый вендор, каждый производитель платформы предлагает особенный путь разработчика, и поэтому сегодня нет практической возможности писать один раз для нескольких платформ. Скорее наоборот, платформы потихоньку расходятся в разных направлениях. Об этом сейчас много говорят. В чистом виде портирование невозможно, но сделать версию приложения для другой платформы сравнительно несложно.
У нас есть хороший пример: успешная компания, делающая приложения для iOS, портировала за три дня свою популярную игру на Windows Phone 7, после чего та прошла сертификацию в нашем магазине и её уже продают в разных странах, и очень успешно. Портировать игру не так сложно, как приложение. В случае с приложением нужно не только переписать код с учётом особенностей платформы, но и привести интерфейс в соответствие со стилем платформы.
- Переходить с Windows Mobile, наверное, легче?
- Это зависит от того опыта, который есть у разработчиков. Разработчики, уже имеющие опыт работы с нашей платформой, знакомы со средой разработки - Visual Studio, да язык может быть знакомым - это C#. На рынке мобильных разработок можно выделить две условные категории: "простые" и "серьёзные" приложения. Простых больше, и простые приложения здесь делаются очень быстро. Главное - иметь идею, и если она есть, то написать приложение можно достаточно просто и быстро. Поэтому сам процесс портирования в любом случае не такой сложный.