Главная » Полезные статьи » Windows » Windows 8 » Весь ужас разработки приложений под Windows 8. Часть 1
Распечатать статью

Весь ужас разработки приложений под Windows 8. Часть 1

Все мы помним, что некоторое время назад корпорация Microsoft продемонстрировала кардинально новый пользовательский интерфейс ОС Windows 8. Публике, по большому счёту, представленные новшества пришлись по душе. И вправду, как тут не влюбишься с первого взгляда в такой красивый, продуманный, быстрый и дружественный к пользователю интерфейс новой ОС? К тому же, впервые за всю историю настольных операционных систем от Microsoft новый интерфейс является оптимизированным для использования с устройствами, оснащёнными сенсорными экранами. Однако один аспект демонстрации глубоко обеспокоил большинство разработчиков по всему миру, и не без оснований: разработчикам заявили, что весь их опыт, все их существующие знания, каждая программа, которую они создавали раньше, всё это будет практически бесполезным в новой Windows 8.

 

Всё дело в том, что ключевым моментом в новом облике Windows 8 являются так называемые полноэкранные приложения следующего поколения – Immersive applications; название походит от кодового имени нового интерфейса Windows 8 – Immersive Shell (Immersive с англ. погружение, или создание эффекта присутствия). Добавьте к этому стремление Редмонда сделать новую ОС максимально оптимизированной для мультисенсорных экранов, и в итоге вы получите новую программную платформу, на которой и будут работать все новые приложения для Windows 8.

Для Windows 8 будут представлены новые API (интерфейс программирования приложений), позволяющие разрабатывать приложения нового поколения, но в этом то и заключается главная проблема. Разработчики озабочены не самим появлением новых API, а тем, что раньше никто из них не делал ничего подобного для Windows, а также тем, что все существующие API нельзя будет использовать для новой ОС; в Microsoft настаивают, что нужно будет использовать новые API.

Во время демонстрации нового интерфейса Windows 8 Джули Ларсон-Грин (Julie Larson-Green), вице-президент корпорации Microsoft отвечающая за пользовательский опыт при работе с Windows, коротко показала новое поколение приложений на примере приложения «Weather» (погода). Госпожа Ларсон-Грин уточнила, что данное Immersive-приложение создано с использованием новой платформы разработки под Windows 8, которая основана на HTML5 и JavaScript.

Осознание всего ужаса грядущих перемен

В своё время разработчики приложений для платформы Windows вложили (да и сейчас продолжают это делать) довольно много времени, усилий и денег в адаптацию к существующей программной платформе. Многие годы все они учились работать с такими технологиями, как Win32, COM, MFC, ATL, Visual Basic 6, .NET, WinForms, Silverlight, WPF. Все эти технологии были, в тот или иной момент времени, эффективным инструментарием для создания настольных Windows-приложений. За исключением, пожалуй, Visual Basic 6 все они сейчас в той или иной мере поддерживаются в Windows, и ни одна из перечисленных выше технологий не может полностью заменить другую. Все эти технологии, за исключением Visual Basic 6 и WinForms, играют ключевые роли в современной разработке под Windows. Так было до недавнего времени…

С выходом на рынок Windows 8 ситуация с разработкой под новую ОС кардинально изменится. В качестве основной программной платформы новая ОС будет использовать HTML5 вместе с JavaScript, и этим фактом недовольны большинство разработчиков по всему миру. Такой вынужденный переход одним махом уберёт все знания, весь накопленный опыт разработки для платформы Windows за последних два десятилетия. Это также значит, что придётся отказаться от всех существующих наработок, мощных и функциональных фреймворков, а также, что ещё более важно, придётся отказаться от пользующейся ныне колоссальной популярностью интегрированной среды визуальной разработки Visual Studio. И всё это ради более примитивной и слабо развитой системы, которая значительно уступает по функционалу и набору инструментов.

Вполне ожидаемая и оправданная реакция

Идея Редмонда в отбрасывании всего накопленного опыта кажется сумасшествием, и можно подумать, что от разработчиков поступит такая же чрезмерная реакция, но такой шаг следует рассматривать как подтверждение курса, взятого Microsoft уже некоторое время назад: перемещение HTML5 на первый план, несмотря на её неполноценность в сравнении с другими технологиями. «Если вы хотите использовать новую платформу для разработки своих приложений, вам придётся подружиться с HTML5 и JavaScript«, – это заявление шокировало многих разработчиков, но оно прозвучало вполне убедительно для того, чтобы его восприняли всерьёз.

Редмонду никогда не удавалось в точности следовать заранее выбранной стратегии развития платформы для разработки ПО. Было слишком много внутренних противостояний, попыток соответствовать модным тенденциям, а также слишком много программного обеспечения, которое шло в разрез с новыми парадигмами. Однако где-то полтора года назад начало казаться, что всё это осталось в прошлом и ситуация на рынке разработки ПО под Windows начинает стабилизироваться. Понемногу приходило понимание того, что комбинацию таких технологий, как .NET, Windows Presentation Foundation (WPF) а также Silverlight можно эффективно использовать в большинстве современных сценариев разработки прикладного ПО. WPF и .NET обеспечивали гибкий, высокоуровневый и структурированный подход для написания приложений с графическим интерфейсом, а Silverlight, по большому счёту являясь урезанной версией WPF, могла быть использована как плагин для браузеров сразу на обеих популярных платформах – Windows и Mac OS X.

Ни одна из этих технологий не была идеальной: WPF никогда не была такой быстрой, как ей следовало быть, а Silverlight так и не стала настоящей кроссплатформенной технологией, однако и та и другая нашла своё настоящее место в современном мире разработки. WPF и .NET использовались при разработке больших приложений, а Silverlight в основном для портативных сценариев (а ещё для современных бизнес-решений).

Крушение надежд…

И тогда на горизонте, совсем «неожиданно», возник Internet Explorer 9… Microsoft «подсела» на модную тенденцию – HTML5, после чего всё опять начало переворачиваться вверх ногами. До появления IE9 Silverlight оставалась ключевым решением корпорации для разработки кроссплатформенных приложений. Отсутствие широкой поддержки платформы означало лишь, что Sliverlight могла так никогда и не победить (в численности) своего главного соперника – технологию Flash, однако Редмонд уделял ей много внимания, и Silverlight работала действительно очень хорошо на платформах, которые поддерживались данной технологией. Когда вышел Internet Explorer 9 Silverlight перенесли на лавку запасных; HTML5 стала приоритетным направлением. Теперь, если Silverlight и будут использовать, то будут делать это только для тех вещей, с которыми новомодная HTML5 справляется не слишком хорошо, к примеру – видеостриминг. Для всего остального разработчикам предписывают использовать HTML5, по крайней мере, об этом сейчас говорят высокопоставленные сотрудники Microsoft.

 

Если хорошо подумать, то, возможно, в Microsoft приняли верное решение. Если вы действительно хотите разрабатывать кроссплатформенные приложения – HTML5 является идеальным выбором. Для веб-приложений, которые не требовали бы каких-либо специфических ресурсов или выполнения специфических задач, к примеру – DRM видео, HTML5 является перспективной платформой для разработчиков. Однако сторонние разработчики были не в восторге от обнародованной информации, их точку зрения никто даже не спросил. По сути, для разработчика, пишущего корпоративное бизнес-приложение, не составляет особого труда портировать их под различные плагины для браузеров, и благодаря этому Silverlight пользовался, да и все ещё пользуется большой популярностью.

 

HTML5 остаётся верным своим традициям – это отличный инструмент для создания веб-страниц с гипертекстовой разметкой, однако его нельзя считать хорошим инструментом для проектирования пользовательских интерфейсов веб-приложений. В то время как Silverlight-разработчик может позволить себе использовать богатые инструментальные возможности этой технологии, такие как кнопки, иконки, текстовые списки, различные древовидные структуры, а также другие управляющие элементы интерфейса, HTML5 приложениям приходится довольствоваться лишь текстовыми блоками и подобными им структурами, без возможности использовать хоть какие-то управляющие элементы интерфейса высокого уровня. Да, многие скажут, что существуют различные библиотеки JavaScript, позволяющие закрыть этот пробел, но они всё равно предлагают меньше возможностей, чем имеется в наличии у Silverlight (даже старых версий). В конце концов, если бы кто-то взялся проектировать фреймворк для разработки пользовательских интерфейсов, то в конечном итоге он был бы более похож на Silverlight, чем на HTML5.

 

Ещё одним слабым местом HTML5 является его инструментарий. Инструменты для проектирования и разработки веб-приложений, присутствующие в HTML5, не настолько развиты и их количество не столь велико, как в случае с инструментарием, присутствующим в Silverlight. Это делает разработку с использованием HTML5 более сложной и затратной по времени, особенно если учитывать тот факт, что сложность приложений с каждым годом значительно увеличивается. И пока что Редмонд не сильно преуспел в решении этих проблем, хотя он сейчас и начал позиционировать HTML5 как приоритетное решение для разработки веб-приложений.

 

Однако кое-что Редмонду сделать с HTML5 таки удалось: инженеры корпорации спроектировали Internet Explorer 9 с использованием API Direct2D. Direct2D – это графическая библиотека, которая использует технологию Direct3D 10 для ускорения вывода графики на экран. Благодаря этому HTML5 работает действительно настолько быстро, что ни Silverlight, ни WPF не могут тягаться с ней по этому показателю. Интересно, что Direct2D является даже более низкоуровневым API, чем HTML5 (если вообще можно делать подобное сравнение). Несмотря на то, что HTML5-страницы построены в основном на базе текстовых блоков, такие блоки не являются примитивными: они могут менять своё расположение, границы, фон, и многое другое. Но Direct2D может управляться и с гораздо более сложными объектами, чем просто изогнутые линии (или даже группы таких линий), и при этом разработчик может задавать каждый аспект макета веб-страницы. К тому же, в отличие от WPF, которая совсем не эффективно использует возможности Direct3D, Internet Explorer 9 вместе с Direct2D являются очень оптимизированной связкой, которая действительно эффективно использует доступные аппаратные ресурсы компьютера.

 

На самом деле, вместе с релизом Internet Explorer 9 Редмонд попытался донести до разработчиков две вещи:

 

  1. HTML5 является предпочтительной технологией вне зависимости от её пригодности или желания разработчиков;
  2. Если вы хотите добиться высокой производительности своих приложений – используйте либо низкоуровневые Direct2D непосредственно на С++, либо «средне-уровневый» HTML5.

Но если вы захотите иметь в своём распоряжении специальный высокоуровневый API с высокой производительностью (к примеру, тот же самый WPF, который построен сверху Direct2D) – этому не бывать.

 

Таким образом, мы имеем готовящуюся к релизу ОС Windows 8, которая стала своего рода кульминацией политики Microsoft за последних несколько лет. Как видим, Редмонд «благословляет» HTML5 как платформу разработки под свою новою ОС даже несмотря на все её недостатки. И разработчикам нужно будет принять такие условия Редмонда, если они планируют создавать новый тип приложений для Windows 8. Какой бы сумасшедшей и разрушительной не казалась бы эта политика Microsoft, она имеет чувство согласованности. Выпуск девятой версии Internet Explorer и перемещение Silverlight на лавку запасных было первым шагом на этом пути; новый тип приложений (immersive applications), требующих использования HTML5 – это следующий шаг.

 

А в эфире тишина…

Учитывая сложившуюся ситуацию и некоторую панику / страх, распространяющиеся в сообществе разработчиков, логичным было бы ждать от Microsoft какого-то действия, чтобы успокоить их всех. В конце концов, если корпорация на самом деле не собирается отправлять на свалку в архив все знания и накопленный опыт каждого Windows-разработчика, вероятно, что хорошей идеей было бы поведать об этом.

 

Вместо этого в Microsoft решили, что наиболее правильным ответом будет заявить о том, что D9 не является мероприятием для разработчиков, и что все подробности относительно новой платформы Windows-приложений станут известны в сентябре, на конференции BUILD (бывшая конференция PDC). А что прикажете думать до этого события? А ничего! Ни тебе даже скупой реплики, к примеру: «Не волнуйтесь, там, безусловно, будет возможность использования .NET и собственного кода, что позволит вам создавать захватывающие приложения нового поколения; мы не собираемся отказываться от всего накопленного за десятилетия опыта, вы сможете использовать все знакомые вам инструменты». Ни этого, ни чего-то подобного…

 

Продолжение следует… / To be continued…

 

P.S. Читайте во второй, заключительной части статьи о развитии рынка приложений для WP7, зарождении идеи создать такой же рынок приложений для Windows 8, а также выводы из всей этой истории. Будет рассказано вам о том, что на самом деле на уме у Microsoft, и почему она поступила таким образом с Windows-разработчиками.

Источник: apocalypse.moy.su

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи