Pull to refresh

Windows 8 для разработчиков: возрождение мечты? (2/2)

Reading time6 min
Views6.9K
Original author: Peter Bright
От переводчика: следует понимать, что вся нижеследующая информация является лишь домыслами не имеющего отношения к Microsoft автора, и представлена здесь исключительно для понимания проблем, стоящих перед Windows.

Первая часть

О дивный новый мир


Следующая версия Windows будет включать в себя две исполняемых среды — новую версию .NET (пока обозначенную как 4.5) и классическую C++ среду (с технической точки зрения это COM или некое ее производное), названную WinRT. Также в Windows 8 появится новая встроенная библиотека для разработки пользовательских интерфейсов — DirectUI — основанная на API Direct2D и DirectWrite, которые были представлены в Windows 7. Новая версия Silverlight, по-видимому, пока называемая Jupiter, будет работать, используя DirectUI. И WinRT, и DirectUI будут доступны напрямую из .NET посредством встроенных средств доступа.

WinRT предоставляет собой современный API для множества функций, которые ранее представлял Win32 API. Грубо говоря, WinRT — это новый Win32, который спроектирован для использования из «современного» C++ (в противовес старой, 25-летней давности архитектуре Win32, разработанной для C), а также чтобы красиво ложиться в концепцию .NET. Конечно, маловероятно, что в Windows 8 WinRT полностью заменит Win32, который слишком велик для быстрой модернизации, но в последующих версиях это вполне может произойти. Позиции WinRT укрепляются с каждой новой сборкой, «слитой» из Рэдмонда.

WinRT не просто улучшенная версия существующего Win32 API — Microsoft также расширяет функциональность, доступную разработчикам. Например, появится всеобъемлющая поддержка асинхронных операций для обеспечения простого способа выполнения затяжных операций в фоновом процессе, а API буфера обмена станет более гибким и простым в использовании.

DirectUI основывается на подмножестве текущей технологии WPF/Silverlight и обеспечивает богатые возможности разметки пользовательских интерфейсов, которых у Win32 никогда не было. Программы, написанные на С++, смогут использовать DirectUI, и это будет тот же самый инструмент, который смогут использовать .NET-разработчики.

Jupiter — фактически Silverlight 6 — это полнофункциональный гибкий набор инструментов для построения приложений. Как именно соотносятся DirectUI и Jupiter, пока остается неясным — возможно, что они выполняют одни и те же функции, и DirectUI будет развиваться, пока не достигнет уровня Silverlight, а возможно, DirectUI реализует лишь базовую функциональность для более сложных фрэймворков. Также может быть, что Jupiter предназначен только для создания полноэкранных, ориентированных на касания приложений нового формата.

Разработка пользовательских интерфейсов с использованием инструментов, подобных XAML, WPF и Silverlight, является приоритетной для Microsoft в будущем. Подтверждением важности этого направления является структурная реорганизация компании, произошедшая в начале этой недели. Команда разработчиков XAML, ранее ютившаяся под крылом DevDiv, была разделена на три части — разработчики XAML для Windows отправились в WinDiv, а для Windows Phone, Xbox и плагина для браузера — в Windows Phone. Только та часть сотрудников, что работала над средствами разработки, такими как Visual Studio и Expression Blend, осталась в DevDiv. Внутреннее письмо Microsoft поясняет, что команда XAML работала с WinDiv на протяжении всей разработки Windows 8, и текущие изменения лишь формализовали их взаимоотношения.

Единый современный унифицированный Windows API


Если сейчас Win32/C++ и .NET совершенно различные платформы, каждая со своими возможностями, то в недалеком будущем они должны стать равны. Если Microsoft добавит новые API в ядро Windows, они будут напрямую доступны из управляемого кода, что нивелирует главное преимущество C++ перед .NET. С другой стороны, существующие приложения, написанные на C++, смогут использовать новый пользовательский интерфейс без лишних телодвижений. Это актуально и для самой Microsoft: уравнение двух платформ открывает двери для .NET-приложений, поставляемых с системой.

Например, мы можем увидеть версию Office, интерфейс которой впервые за десятилетие, а может и того больше, будет использовать стандартные компоненты Windows.

Пока что не совсем ясно, какая судьба ожидает WPF. WPF и Silverlight разрабатывается одними и теми же людьми, но рынок воспринимает Silverlight куда лучше, чем его старшего брата. WPF может делать то, что Silverlight не под силу, и будет прискорбно, если его способностям не найдут применения в Windows 8. WPF и Silverlight весьма похожи, и, возможно, Jupiter сможет объединить их функциональность.

С точки зрения экосистемы Microsoft занижение значимости WPF и продвижение Silverlight вполне оправдано. Silverlight используется при разработке приложений для Windows Phone, и имеются убедительные доказательства того, что версия Silverlight для Xbox тоже находится в разработке. Наличие Silverlight на Windows, Windows Phone и Xbox реализует идеологию Microsoft, названную «три экрана и облако», которая призвана обеспечить единый опыт и впечатления от использования приложений на компьютере, развлекательном центре и мобильном телефоне.

Правда, пока нет достоверной информации о том, насколько хорошо эта идеология будет работать в Windows 8. Разработчики приложений для Windows Phone не уверены, что их продукты могут быть легко перенесены на Windows-планшеты, в отличии от их коллег, специализирующихся на iOS и Android. И Windows, и Windows Phone поддерживает Silverlight, но специфика мобильного телефона требует дополнительной функциональности, которая на данный момент не имеет аналога на персональном компьютере.

В будущем не страшно


После презентации Windows 8 несколько недель назад у многих возникло ощущение, что приложения для нового интерфейса системы будут разрабатываться только с использованием HTML5 и JavaScript, что, естественно, вызвало значительные волнения в сообществе Silverlight-разработчиков. Некоторые темы на официальном форуме Silverlight заполучили сотни ответов и десятки миллионов просмотров — больше, чем вся остальная часть форума удостоилась за месяц. Разработчики хотят разрабатывать приложения для нового интерфейса, но не хотят использовать HTML5 и JavaScript.

И им не придется. Хотите писать такие приложения на C++? Без проблем. Хотите использовать C# и Silverlight? Аналогично, обе эти технологии поддерживаются. Вместо того, чтобы оставить весь опыт разработки в прошлом — именно такое впечатление у многих возникло после просмотра той презентации — Windows 8 сделает и С++, и C# первоклассными средствами для разработки ориентированных на сенсорные экраны и планшеты приложений.

Что касается связки HTML5 и JavaScript, то она также будет поддерживаться. К слову, Microsoft уже пробовала почву HTML-приложений в виде своей технологией HTA (HTML Application). Исполняемые файлы HTA состояли из HTML, JavaScript, CSS и прочего содержимого и запускались в особом доверительном режиме. Благодаря этому ограничения обычных HTML-страниц, вроде отсутствия доступа к локальных ресурсам, не затрагивали HTA, которые могли использовать файловую систему, работать с сетью и так далее. Другими словами, это были веб-страницы, лишенные многих недостатков, которые мешали им заменить настольные приложения.

Новые HTML5-приложения не основываются на HTA, но их принципы весьма похожи. Как и HTA, HTML5-приложения получат больше возможностей взаимодействия с операционной системой, нежели обычные веб-страницы — так, они смогут использовать функции Windows API и иметь интерфейс, больше похожий на настольное приложение. В идеале, они должны быть на одном уровне с .NET и классическими программами, с тем лишь отличием, что используют HTML5 и JavaScript в качестве языков разметки и программирования. Результатом должен стать способ разработки, знакомый веь-разработчикам, но без функциональных ограничений, присущих веб-приложениям.

Windows 8 — вовсе не кошмар разработчика, а наоборот, большой шаг вперед: шаг, который может сделать разработку Windows-приложений одинаково удобной как для разработчиков, использующих С++ или С#, так и для веб-разработчиков. Унификация .NET и классического кода, полное аппаратное ускорение, современные API, Avalon как основное решение для построения интерфейса Windows — все то, что Longhorn обещал много лет назад, может стать явью с Windows 8.

Загадочное молчание


На фоне этого полная тишина в эфире от Microsoft еще труднее поддается объяснению. Компания знает, как сообщество отнеслось к их заявлениям, но не считает это реальной проблемой, а всего лишь раздутой блоггерами мелочью. Решение не говорить ничего, кроме «Дождитесь конференции BUILD в сентябре» не раз обсуждалось внутри Microsoft на высшем уровне, но так и осталось неизменным — не говорить ничего, оставив разработчиков в неведении.

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

То, что Microsoft не хочет раскрывать все карты прямо сейчас, вполне объяснимо. Windows 8 все еще далека от завершения, и до BUILD многое может изменится. Но разработчики не просят рассказать всего, они лишь хотят знать некоторые важные детали. Можно ли будет разрабатывать приложения для нового интерфейса, используя C++ или .NET? Будет ли поддерживаться XAML? Ответив всего на эти два вопроса, Microsoft могла бы успокоить растерянных разработчиков.

Если направление развития системы не изменится после BUILD, то ответ на оба этих вопросы будет положительным, и разработка приложений под Windows совершит важнейший скачок, который она не испытывала со времен появления 32-битного Windows API в 1993 году. Это восхитительная перспектива, но Microsoft ничего не выигрывает, оставляя важные вопросы без ответа.
Tags:
Hubs:
+45
Comments37

Articles

Change theme settings