За прошедшее время со дня выпуска Windows 8 Developer Preview, более миллиона пользователей скачали образ новой системы, и большинство IT-специалистов уже задумывается о том, с чем им придется столкнуться в будущем.
Microsoft, в своих лучших традициях, практически ничего не рассказывает о новой операционной системе, если не считать узконаправленных, тщательно продуманных записей в блоге разработчиков Building Windows 8. Несмотря на нехватку ценной информации и море неотвеченных вопросов, те, кому довелось поработать с тестовой сборкой, уже публикуют серьезные обзоры Windows 8 с позиций конечного пользователя.
Однако понять, насколько удобна будет система с клиентской точки зрения в корпоративной среде, не так-то просто, особенно когда имеешь дело с предварительной сборкой. Microsoft не отвечает на вопросы, а до выхода Windows 8 остается еще не меньше года, так что на данный момент ничего не известно окончательно. Но даже с учетом этих факторов, администраторам и разработчикам уже есть о чем поразмыслить – в частности, о том, какие сложности при обслуживании конечных пользователей в пост-компьютерную эру сулит двойственный интерфейс Windows 8, поддержка Intel и ARM.
Смена внешности, смена архитектурной парадигмы
Первое ключевое нововведение в Windows 8 – сосуществование двух разных интерфейсов. Все их называют по-разному, но я обозначу «плиточный» интерфейс как Metro (рис. 1), а второй – как Рабочий стол, поскольку он выглядит и действует практически так же, как рабочий стол Windows 7, за исключением черной дыры в левом нижнем углу.
Рисунок 1: «Плиточный» интерфейс Metro. При установке некоторых приложений на Рабочий стол, Windows создает «плитки» для запуска этих приложений в интерфейсе Metro (например, в данном случае – для Google Chrome).
Другая важная особенность Windows 8 заключается в том, что новая операционная система поддерживает не только процессоры Intel/AMD, но и современные чипы. Т.е. Windows 8 появится и на архитектуре ARM. Планшеты Intel в ближайшей перспективе будут оставаться относительно тяжелыми, а время их автономной работы будет невелико. Планшеты на процессорах ARM, скорее всего, будут легче, энергоэффективнее и, возможно, дешевле. Когда-нибудь Intel догонит ARM, но в обозримом будущем самые популярные планшеты будут выпускаться на чипах с архитектурой ARM.
После просмотра демо-роликов, прослушивания докладов и чтения бойких отчетов может сложиться впечатление, что Microsoft удалось создать универсальную операционную систему, способную работать на компьютерах, ноутбуках, планшетах с процессорами и от Intel, и от ARM – «Intel и ARM, а не Intel или ARM», как заявил гендиректор Microsoft Стив Балмер (Steve Ballmer). Может, это и так – по крайней мере, в рекламном смысле, однако дьявол, как всегда, прячется в деталях, и подобное смешение архитектур и операционных систем сулит немалые проблемы, особенно для корпоративных разработчиков и администраторов.
Трехликая Windows 8
Не стоит рассматривать Windows 8 как универсальную операционную систему, способную работать на разном оборудовании – как в свое время Windows NT. Вместо этого администраторам и разработчикам следует исходить из того, что Windows 8 представлена в трех разных вариантах, как показано на табл. 1.
Таблица 1: Три очень разных лица Windows 8 с точки зрения корпоративного разработчика.
Судя по сборке Developer Preview, совместимость с приложениями для Windows 7 при использовании Рабочего стола Windows 8 на процессорах Intel/AMD будет практически стопроцентной. Все инструменты разработки, поддерживаемые в Windows 7, в том числе Silverlight, скорее всего, будут работать в Windows 8 без каких-либо изменений, если речь идет о создании программ для Рабочего стола на процессорах Intel/AMD.
Но приложения для Рабочего стола на процессорах ARM – это уже совсем другая история. Это уже считайте как разработка мобильных приложений для Андроид и iOS. Не зря на конференции Build раздавали образцы планшетов на чипах Intel.
С учетом этих трех различных сценариев (Metro, Рабочий стол для Intel, Рабочий стол для ARM), официальная таблица Microsoft (рис. 2), описывающая взаимодействия высшего уровня в Windows 8, становится куда понятнее.
Рисунок 2: Windows 8 в своей совокупности, из презентации Алеса Голешека (Ales Holecek) на конференции Build, кадр из видео, приблизительно на 8 минуте 30 секунде.
Теперь ясна подоплека заявления Стивена Синофски (Steve Sinofsky), сделанного в ходе финансового брифинга на прошлой неделе: «Мы сразу вполне четко заявили … что версия для ARM не будет поддерживать приложения для архитектуры X86. Вчера мы впервые объявили, что при создании Metro-приложений разработчикам будут доступны инструменты для работы со всеми поддерживаемыми нами языками программирования, чтобы обеспечить автоматическую поддержку ARM или X86."
Подводные камни для корпоративных разработчиков: Metro
На самом деле, приложения для Metro можно писать только тремя способами:
• На C++, непосредственно с использованием Metro Windows Runtime (WinRT) API. На форуме Social MSDN объясняется, как сделать нативный проект на C++ доступным для компонентов WinRT. • В упрощенной среде .Net 4.5 с использованием C# или VB. При этом программа не сможет обращаться к «запрещенным» API. • На HTML5 и jаvascript для запуска с использованием движка Chakra в IE. Судя по всему, эти приложения будут запускаться в Internet Explorer 10, но сам интерфейс браузера при этом будет недоступен, хотя Microsoft на этот счет пока ничего не говорит.
Несмотря на кажущуюся легкость и хвалебные презентации, писать для Metro не так-то легко: нельзя просто взять приложение, добавить в него поддержку сенсорного интерфейса и отдать специалисту по .Net на доработку. На самом деле, тут полно ограничений.
К примеру, приложения не могут получить доступ к данным, хранящимся на компьютере. Для доступа к базам данных это ограничение можно обойти, создав веб-службу и обращаясь к ней через WinRT. Данные можно хранить в приложении и получать их оттуда, но к локальной файловой системе компьютера подобраться нельзя. По крайней мере, без взлома выбраться из изолированной «песочницы» нельзя.
По своей структуре интерфейс Metro закрыт от любых попыток проникновения. С точки зрения безопасности это замечательно. Но для корпоративных приложений, за исключением самых простых, это ад.
Разработка Metro-приложений для конечных пользователей создает еще одну трудность: распространение. В учебнике для нынешних разработчиков Microsoft недвусмысленно заявляет, что все Metro-приложения будут распространяться через Магазин Windows: «Приложения должны проходить сертификацию, чтобы пользователи могли загружать и пробовать их, не беспокоясь о безопасности и конфиденциальности. Подгрузка со стороны возможна для предприятий и разработчиков». Однако как устроен процесс «подгрузки со стороны», пока неизвестно.
Уже несколько месяцев посвященные весьма откровенно намекают на то, что Microsoft работает над адаптацией приложений Office к интерфейсу Metro. Очень, очень любопытно, как разработчикам удастся вытащить этого кролика из «плиточной» шляпы. Несомненно, Metro-версия Office не будет иметь доступа к документам, хранящимся на компьютере. Будет ли это нечто большее, чем Office Web Apps на планшете – как Google Docs, которые недавно стали доступны для Android с использованием Chrome и HTML5?
Подводные камни для корпоративных разработчиков: ARM
То, что о «третьем лике» Windows 8 из табл. 1 практически ничего не слышно, вполне объяснимо: Microsoft до сих пор не выпустил ничего похожего на инфраструктуру .Net 4.5 для компьютеров на базе чипов ARM.
Инфраструктура .Net Micro для ARM появилась еще в 2007 году. По замыслу Microsoft, она предназначена для маленьких и ограниченных в ресурсах устройств: «умных» часов, датчиков и промышленного оборудования. Инфраструктура .Net Compact была популярна у разработчиков программного обеспечения для мобильных телефонов Windows Mobile 6 на чипах ARM, но с выходом Windows Phone 7 фокус переключился на Silverlight, XML и XNA. Упомянутые варианты – единственные доступные на сегодняшний день версии .Net для ARM, и они даже рядом не стояли с .Net для Windows 7.
Хотя Microsoft обещает когда-нибудь выпустить ARM-версию .Net 4.5, нет никакой гарантии, что программы, написанные с использованием .Net 4.5 для Рабочего стола на процессорах Intel будут работать в .Net 4.5 для Рабочего стола на чипах ARM. Скорее наоборот: масса признаков указывает на то, что эти две версии .Net 4.5 будут существенно различаться.
Нет абсолютно никаких оснований полагать, что Microsoft будет поддерживать какую-нибудь другую среду разработки для архитектуры ARM, хотя нам обещают, что Silverlight будет работать в Internet Explorer 10 на Рабочем столе для ARM. Насколько совместимы версии IE10 для Intel и ARM, пока неизвестно. Вполне возможно, что на разных процессорах Silverlight будет работать по-разному.
Для разработчиков это горькая пилюля. Если им в любом случае придется создавать две разные версии приложения для Windows 8 – одну для Intel, другую для ARM, почему не предпочесть вместо этого более известную операционную систему – Android или iOS – и вообще забыть о планшетах на базе Windows?
Те, кто строит планы на будущий год, могут ограничиться разработкой приложений для планшетов Intel, могут рискнуть и сделать ставку на Рабочий стол для ARM, а могут подождать и посмотреть, что выйдет. Но можно вместо этого прямо сейчас заняться разработкой для Android или iOS и выпустить свои планшетные приложения в продажу за целый год до предполагаемого релиза Windows 8. Соблазнительный вариант, как ни посмотри.
Зловещее предзнаменование
Когда докладчики Microsoft начинают называть программы для Windows 7 «устаревшими», а Metro-приложения «будущим», это стоит намотать на ус. Времена меняются.
Можно не сомневаться: будь то Windows 7 или рабочий стол Windows 8 для Intel, сам по себе Рабочий стол, как в Windows XP, будет существовать вечно. Но если задуматься, то же самое когда-то говорили о CICS и Cobol.
Два года назад, когда Windows 7 только-только вышла, iPad еще не существовало, а планшеты представлялись громоздким излишеством, никому и в голову не могло прийти, как дела будут обстоять сегодня. Волна, на которой персональные компьютеры 25 лет назад проникли в корпоративную среду, возвращается, и на этот раз она гораздо мощнее. А специфический дизайн Windows 8 только подтверждает это наблюдение.
Администраторы и разработчики могут бороться с наплывом планшетов до последней капли крови, а могут встать во главе колонны и сделать вид, что командуют парадом. Главный вопрос заключается в том, могут ли они себе позволить ждать еще год, прежде чем принять окончательное решение.
Теперь, когда вам известна подоплека, можете почитать обзор разработки Windows 8 для корпоративных клиентов, выпущенный Microsoft. Скачайте руководство к Windows Developer Preview и начинайте со страницы 35.