Компьютерра
Аутсайдеры

11.08.2009

СМОГУТ ЛИ SILVERLIGHT ИЛИ JAVAFX ДОГНАТЬ AIR?

В отличие от RIA-технологий Adobe, с которыми в той или иной форме сталкивался любой пользователь Интернета, Silverlight и JavaFX гораздо менее известны. Их редко используют, потому что приложений для Silverlight и JavaFX совсем немного, а приложения не пишут, потому что не хватает пользователей. Удастся ли этим RIA-платформам вырваться из замкнутого круга и потеснить Flash Player и AIR?

SILVERLIGHT

Месяц назад увидел свет Silverlight 3 - очередная версия RIA-платформы Microsoft, напрямую конкурирующей с Flash Player и Adobe AIR. Редкий случай: на сей раз Microsoft досталась роль догоняющего. В прошлом компания могла бы воспользоваться популярностью своих продуктов, чтобы положить Adobe на лопатки, но теперь, после стольких антимонопольных процессов, она старается не рисковать. Silverlight не прилагается ни к Windows, ни к Internet Explorer. Пользователь должен самостоятельно скачивать его с сайта Microsoft.

Это сильно замедлило темпы распространения Silverlight. Спустя два года после выхода первой версии технология

Microsoft по-прежнему остается аутсайдером. Несмотря на многочисленные технические достоинства, Silverlight установлен лишь на одном из трех устройств, подключенных к Интернету. Не так уж мало, конечно, однако не идет ни в какое сравнение с популярностью Flash Player, который встречается на 90% компьютеров.

Вдобавок многие пользователи Silver-light не видели и малой толики его возможностей. Значительное число инсталляций браузерного плагина Silverlight использовалось исключительно в качестве видеоплеера. Дело в том, что Microsoft удалось уговорить несколько крупных телекомпаний перейти на Silverlight для онлайновой передачи видео. Чтобы посмотреть в Интернете единственную официальную трансляцию Олимпиады в Пекине, инаугурацию президента РФ Дмитрия Медведева или президента США Барака Обамы, требовалось установить плагин Silverlight.

Сговорчивость телекомпаний не объясняется лишь убедительностью Microsoft. Два года назад Silverlight первым смог обеспечить воспроизведение онлайнового видео в полноэкранном режиме и с высоким разрешением. Какое-то время ему не было равных в этой области, но даже когда во Flash Player добавил и те же функции, у редмондского детища сохранялись технические преимущества. Последнее достижение Silverlight - автоматическое изменение качества видеопотока в зависимости от мощности процессора, качества и скорости интернет-соединения. Благодаря этой технологии обладатели компьютеров с наиболее быстрым доступом к Интернету могут смотреть видео в максимальном разрешении, а не столь удачливые - с существенно меньшим качеством.

Возможности Silverlight не исчерпываются только просмотром видео. У него есть и другие применения. Во-первых, он, как и Flash, пригодится на развлекательных веб-ресурсах и при разработке казуальных игр. Во-вторых, Silverlight может быть полезен при создании бизнес-приложений. Например, Арбитражный суд РФ использует Silverlight для создания специальных компьютерных киосков-терминалов, через которые можно ознакомиться с материалами судебных дел. Приложения, созданные с помощью Silverlight, можно найти и в вебе. В частности, этот плагин использует новая версия веб-почты AOL Mail.

Как и другие RIA-платформы, Silverlight является кроссплатформным и кросс-браузерным. Плагин работает не только в Internet Explorer и даже не только под Windows. Существуют версии для Mac OS X и для Linux, причем версия для Linux разрабатывалась отдельно в сотрудничестве с Novell, а ее исходные коды опубликованы под свободной лицензией.

Исторически и технически Silverlight происходит из .NET Framework и позволяет использовать любые языки программирования, работающие в этой среде, - не только напрашивающийся С"решетка", но и динамические языки вроде Python и Ruby (a точнее, их реализации для .NET CLR, называющиеся IronPython и IronRuby). Именно в связи Silverlight и .NET заключается одно из главных его преимуществ перед Flash и AIR. Выбор языков программирования и средств разработки для Silverlight гораздо богаче. К услугам программистов не только Microsoft Visual Studio (в том числе бесплатная версия Express) и дизайнерские пакеты Expression, в какой-то степени заменяющие редактор Adobe Flash CS Professional, но и целый ряд инструментов, созданных сторонними программистами.

Что же представляет собой приложение на Silverlight? "Если посмотреть на исходный код HTML-страницы со встроенным Silverlight, то в ней можно заметить ссылку на файл с расширением ХАР, - объясняет Михаил Черномордиков, эксперт по технологиям разработки департамента стратегических исследований российского подразделения Microsoft. - Он представляет собой ZIP-архив, внутри которого находятся все компоненты Silverlight-программы - картинки, DLL-библиотеки и XAML-код, с помощью которого декларативно описывается интерфейс самого приложения".

Под аббревиатурой XAML скрывается разработанный в Microsoft формат на основе XML, который описывает внешний вид приложения примерно так же, как HTML описывает внешний вид вебстраницы. Поскольку формат текстовый, он заведомо лучше индексируется поисковиками, чем непрозрачный бинарный SWF, а это немалый плюс.

XAML используется не только в Silverlight, но и в Windows Presentation Framework, и что особенно важно, его могут создавать и редактировать не только программисты, вооруженные Microsoft Visual Studio, но и дизайнеры или специалисты по пользовательскому интерфейсу с помощью дизайнерских пакетов Microsoft Expression, генерирующих XAML автоматически. Последняя версия Microsoft Expression вышла буквально через несколько дней после релиза Silverlight 3.

Все это повлияло на выбор технологии для разработки детского портала Бибигоша.ру, еще одного интересного примера применения Silverlight, не связанного с видео. От выбора RIA-платформы напрямую зависели сроки разработки, качество и возможность реализации некоторых функций - например, интеграция со взрослым порталом, предусматривающая создание "виртуальной няни" и воспроизведение записи игр ребенка.

Александр Гомозов из компании TVX-Media, ведущий разработчик Бибигоши.ру, утверждает, что использование XAML и Microsoft Expressions помогало программисту и художнику говорить на одном языке. "Это существенно облегчило программную реализацию предложенных дизайнером графических решений и сократило общее время разработки, - рассказывает Александр. - Также на наш выбор повлияла быстрота написания кода на языке С и Microsoft Visual Studio и уже заложенная в платформу возможность интеграции с веб-сервисами, которые планировались в портале Бибигоша.ру. Немалую роль сыграло наличие богатого инструментария для проектирования, отладки и тестирования, заложенного в Microsoft Visual Studio".

Отдавая предпочтение Silverlight, компания TVX-Media, конечно, рисковала, поскольку к тому моменту в России было не так уж много специалистов, владеющих этой технологией. Тем не менее, по словам Александра, выбор оказался правильным и принес заметный выигрыш во времени разработки. В частности, платформа позволила сэкономить массу сил при реализации кэширования графических данных на стороне клиента, необходимого для увеличения скорости работы приложения и уменьшения трафика пользователей.

Области применения Silverlight, как и в случае с AIR, ограничены тем, что приложения, созданные с его помощью, не имеют полного доступа к системе и аппаратному обеспечению. "Всегда следует помнить, что RIA предназначены прежде всего для создания интерактивного интерфейса в веб-браузере и дальше, чем веб-браузер, разработчикам уже не "прыгнуть", - говорит Михаил Черномордиков. Правда, в третьей версии появился дополнительный вариант - Silverlight-приложение можно запустить и вне браузера. "Никаких других плагинов для этого не нужно, - поясняет Михаил. - Главное, чтобы разработчик приложения разрешил его локальную установку".

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

В планах разработчиков Microsoft Silverlight - адаптация под мобильные устройства. Одни и те же Silverlight-приложения, заверил нас Михаил Черномордиков, будут доступны как на настольных ПК, так и на наладонниках или смартфонах. Уже обещана поддержка платформ Symbian и Windows Mobile, но вряд ли стоит ожидать, что эта работа завершится раньше следующего года.

JAVAFX

Если для Microsoft разработка Silverlight стала вылазкой на неизведанную территорию, то в случае Sun речь идет скорее о попытке взять реванш. Java начиналась как средство для создания встраиваемых в веб-страницы апплетов, что, вероятно, делает эту среду первой RIA-платформой в истории Интернета. То есть выпуск JavaFX - это попытка Sun вернуться к корням.

Приложения JavaFX разрабатываются не на Java, а на более простом языке программирования JavaFX Script. Для их запуска не требуется ничего, кроме среды Java Runtime Environment, которая по-прежнему сравнительно широко распространена. Это дает JavaFX небольшое преимущество перед Silverlight, который пользователям приходится устанавливать вручную.

JavaFX Script предоставляет разработчику возможность декларативным способом описать интерфейс. JavaFX-приложения могут быть встроены в вебстраницы, как обычные апплеты на Java, но могут быть запущены и вне браузера, как обычное десктопное приложение. Для этого нужно просто-напросто перетащить их мышкой из браузера на "Рабочий стол". Кроме того, в отличие от Silverlight и AIR, мобильные версии которых пока не готовы, в JavaFX эта задача уже решена. Программы на JavaFX можно запускать и на мобильных устройствах, и на персональных компьютерах.

Конек JavaFX - это, конечно, мультимедийные возможности. "Обычная версия Java совершенно не приспособлена для воспроизведения видео, в ней нет даже видеоплеера, тогда как JavaFX способна воспроизводить видео во всех форматах, кодеки для которых установлены в системе", - говорит Игорь Некрестьянов, ведущий разработчик Центра высоких технологий Sun Microsystems в Петербурге.

Однако видео и развлечения вовсе не главное. Если конкурирующие RIA-платформы начинали с игрового, развлекательного и мультимедийного контента и лишь затем осваивали область бизнес-приложений, то Java всегда использовалась в первую очередь для корпоративного ПО. "У JavaFX среди всех RIA-платформ наибольшие шансы именно в бизнес-сегменте, - считает Игорь Некрестьянов. - Безопасность, шифрование, надежность были в Java всегда. На мой взгляд, лучше всего потенциал JavaFX раскроется в тех бизнес-приложениях, которые одновременно требуют надежности и безопасности, а также красивого, понятного и удобного пользовательского интерфейса. Это может быть онлайновый банковский клиент, система бронирования авиабилетов и т. п.".

Оптимизм в отношении JavaFX разделяют не все. Действительно, новая RIA-платформа не только мало распространена, но и почти никому не известна. По количеству упоминаний в Интернете она уступает и продуктам Adobe, и Silverlight. Есть и другие проблемы. "Если Java-программистов на международном рынке достаточно много, то, по исследованиям нашей компании, в России их раз-два и обчелся, - утверждает Артемий Малков, генеральный директор компании Flexis. - Вряд ли стоит ожидать, что при таком дефиците кадров российское Java-сообщество будет всерьез готово конкурировать с AIR в области клиентских решений".

Кирилл Рудницкий

Вернуться к списку публикаций