Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Silverlight: «Лунный свет» вместо «вспышек»?

Тимур Расулов. (aka Dolphin, 12.06.2008)
 
Появившийся несколько лет назад Macromedia Flash принес на скучные статичные веб-страницы с редкими проблесками анимированных гифов яркие, крутящиеся, сверкающие и меняющие форму пятна. Настала эра интерактивной веб-анимации,которая добавила веб-сайтам интерактивности и динамичности, придала красочность за счет векторной графики, звука, анимации и видео.
 
Технология Flash быстро набрала популярность, в пору ее расцвета было модно делать сайты целиком в виде флеш-ролика, в котором задвигались и выдвигались окошечки, мерцали ссылочки. В особо продвинутых «аквариумах» за курсором таскался скат по прозвищу Бойан. Ресурсы, контент которых не допускал такой несерьезности, располагали на сайтах «интру» - ролик, грузившийся перед главной страницей, который грузился минуту и потом 15-20 секунд расписывал прелести, ждущие пользователя на сайте.
 
Повальное увлечение новой фенечкой потихоньку прошло, но флеш не сошел со сцены, благо технология оказалась достаточно универсальной, чтобы прочно закрепиться на важных позициях: мультфильмы (кто не видел Маську?), сложные рекламные вставки (баннеры и кнопки), динамичные флеш-игры, флеш-контейнеры для видео — вот далеко не полный перечень применения Flash.
 
Довольно долго интерактивная веб-анимация ассоциировалась исключительно с Flash. Но должны были рано или поздно появиться альтернативные технологии. Довольно неожиданно такой продукт произвела небезызвестная корпорация Microsoft. Ее детище с красивым названием Silverlight (серебряный или лунный свет) сразу же начало позиционироваться как “убийца Flash”. С тех времен прошло уже почти два года и пока панихиды по swf не видно...  Так что же это за чудо – Silverlight?
 
Собственно Silverlight – технология представления данных (в том числе графики, звука и видео) в Интернете, основанная на XAML (eXtensible Application Markup Language).
 
WPF (Windows Presentation Foundation) - интерфейс пользователя, основанный на XML и векторной графике. Реализована эта технология в ОС Windows Vista (в более старых ОС требуется установка пакета  .NET Framework 3.0).  По заявлениям разработчиков, технология призвана упростить сотрудничество между дизайнером и программистом, представив обоим некий абстрактный интерфейс. WPF по возможности использует ускорение DirectX, хотя сам Silverlight такой способностью пока не обзавелся.
 
Истина познается в сравнении, потому особенности реализации Silverlight будут рассматриваться в сравнении с аналогичными технологиями Flash (условно будем считать их конкурентами).

Платформа и ее реализация на стороне сервера и клиента

Браузеры не включают (и вряд ли будут) в свой комплект никаких плееров ни для Flash, ни для Silverlight, ни для любой подобной технологии по нескольким причинам, в основном потому, что плееры и браузеры разрабатываются разными фирмами. Поэтому связывание технологий осуществляется с помощью так наываемых плагинов (plug-in), модулей, загружаемых отдельно, после установки браузера. Также технология может требовать каких-то дополнительных файлов или модулей на сервере.
 
Silverlight. На данный момент плагин для веб-браузера имеет версию 2.0 beta 1. Разработчиком заявлена кроссбраузерность и кросплатформеность, на деле же поддерживается Firefox и Internet Explorer на платформе Windows и Safari и Internet Explorer  в Mac OS X. Планируется поддержка Windows Mobile и Symbian. Поддержка *nix будет реализована усилиями проекта Moonlight (Moonlight – реализация Silverlight для Linux, часть проекта Mono. Mono разрабатывается сообществом OpenSource при поддержке корпорации Novell и представляет собой аналог библиотеки .NET для выполнения на платформе *nix.). На сервере для использования технологии установка дополнительных пакетов не требуется (исключение составляет поддержка потокового видео). Выход этого релиза, как и первой версии, прошел практически незаметно, актвность пока наблюдается в основном в зоне разработки Microsoft и блогах разработчиков.  Размер инсталляционного пакета 2.0 – 4,4мб, версия 1.0 – 1,4мб.
 
Flash. Последния стабильная версия плеера – 9.0.124, следующая версия (9.4b) уже доступна для тестирования. Разработчиком поддерживаются актуальные операционные системы (Windows, Linux, Mac OS 9/X и Solaris) и браузеры (Internet Explorer, Firefox/Mozilla, Safari, Opera). Имеются лицензированные реализации для PocketPC, Palm OS, и Symbian. Само по себе это не значит, что Flash явно лучше Moonlight или что-то в этом роде – не будем забывать разницу в возрасте. На сервере для использования технологии установка дополнительных пакетов не требуется (исключение такое же - поддержка потокового видео). По заявлению Adobe, Flash Player имеется более чем на 99% подключенных к Интернету компьютеров. Я бы этому верить не стал (они в основном судят по американскому рынку, да и приврать охота, но процентах в 90 можно не сомневаться). Размер инсталляционного пакета 9.0 - ~1,5 мб.
 
Технологии Flash уже больше десятка лет, а Silverlight практически в начальной стадии разработки. Этим можно объяснить его нераспространенность. Отсутствие поддержки Linux тоже вполне объяснимо конкурентной борьбой, хотя и вызывает нарекания и вполне может вызвать очередную тяжбу с антимонопольным комитетом (хоть MS и спохватилась и поделилась с проектом Mono некоторыми спецификациями и исходниками). Требования к системе, в общем-то, аналогичны.

Формат файла

Анимационный/динамический ролик должен где-то храниться и как-то попадать к пользователю.
 
Silverlight. Собственного формата файла у технологии нет. Данные внедряются прямо в разметку HTML (тег <canvas>) в виде XAML или динамически загружаются из других файлов (JavaScript, изображения, XML-данные). Формат проприетарный. Существующий аналогичный открытый формат векторной графики SVG (Scalable Vector Graphics, активно продвигаемый сейчас сообществом OpenSource) Microsoft не использует, аргументируя это необходимостью интеграции с проприетарной технологией .net, которая у SVG отсутствует.
 
Flash. Основной формат файла – swf. Это бинарный скомпилированный файл, содержащий в себе все данные, необходимые для воспроизведения ролика. Прямое редактирование невозможно (хотя существуют более-менее функциональные декомпиляторы). Также довольно распространен формат flv (Flash Video). Формат проприетарный.
 
У обоих конструкций есть и минусы и плюсы. Некомпилируемый формат Silverlight удобен в плане редактирования, но также весьма облегчает использование чужих ресурсов.
Несомненный плюс Silverlight – общее пространство ролика и веб-страницы, возможность передавать данные в другие элементы страницы и использовать ролик как фон. С Flash это весьма затруднительно, так как ролики рисуются поверх страницы и перекрывают собой любые элементы HTML, а код в них выполняется совершенно обособленно.
Проприетарность форматов большинству пользователей в принципе неважно – оба плеера распространяются бесплатно.

Общие возможности технологии

Наиглавнейший вопрос – а что это чудо умеет? На сегоднящний день от динамического объекта требуется векторная анимация, возможность программирования логики и в, меньшей мере, способности к обработке потоковых данных вроде видео.
 
Silverlight. Поддерживается двумерная векторная графика и операции с растровой графикой, в том числе анимация, не зависящая от фреймов. Имеется возможность воспроизведения видеопотока и звука. Имеется мощная поддержка программирования – JavaScript (динамическое выполнение) в версиии 1.0 и технологии программирования .NET (C#, Python, Basic .NET, Jscript .NET) в версии 2.0 (компиляция в байткод). Воспроизведение видео и аудио пока ограничено собственными форматами Microsoft – WMA и WMV, также поддерживается  распространенный формат MP3.
 
Flash. Поддерживатся векторная фреймовая анимация, воспроизведение звуковых и видеороликов. В версии 10 предполагатся поддержка трехмерной анимации с аппаратным ускорением. Программирование возможно при помощи собственного языка ActionScript. Доступные видео- и аудиоформаты интересней, нежели у конкурента, среди них весьма важные и распространенные MP3, MP4 и 3GP.
 
Анимация во Flash завязана на ключевых кадрах, что не во всех случаях удобно, хотя и вполне юзабельно. Silverlight же позволяет указывать для каждого объекта эффект анимации, связанный со временем, скажем, “сдвинуться вправо на 300 пикселей за 5 секунд” (нечто в стиле MS PowerPoint). Это удобно, в то же время поддержка морфинга (в редакторе) практически отсутствует, превратить квадрат в круг весьма затруднительно.
 
ActionScript создавался специально для Flash и выполняется в надежной “песочнице”. Silverlight задуман как универсальный инструмент (уже сейчас его можно использовать для создания виджетов Vista) и использует подмножество классов .net. Именно модель программирования весьма интересна, поскольку открывает широкие возможности программирования на стороне клиента в отличие от flash-роликов, ограниченных рамкой тега <object>.

Редакторы и инструменты

Технология – это хорошо. Пользователя волнует, чем можно созданные ролики (постоянно называю их “роликами”, хотя Silverlight верней назвать “интерактивная часть страницы”) просмотреть, а вот разработчика гораздо сильней беспокоит, как бы их создать. Итак, редакторы.
 
Silverlight. На текущий момент можно говорить о двух редакторах несколько разного плана – семействе Microsoft Expression, предназначенном для создания и редактирования графики WPF  (в том числе Silverlight) в режиме WYSIWYG (как говорится, “мышкой”) и Microsoft Visual Studio, ориентированном на написание кода программы. Оба редактора работают только на платформе Windows (для Expression предпочтительна Vista). Linux-аналог редактора пока в стадии разработки, как и сам Moonlight, но результаты ожидаются к концу этого года. Сторонних инструментов пока не наблюдается.
 
Flash. Для создания “флэшек” в основном используется один-единственный редактор, который незатейливо назван Flash и доступен на платформе Windows и Mac. В нем и рисуется графика, и пишется код прогрммы. Помимо фирменного редактора, можно назвать несколько декомпиляторов (которые в принципе не приветствуются производителем), разнообразные конвертеры, довольно распространенный класс инструментов для записи содержимого экрана и его изменений в виде виде ролика (весьма популярно при создании разнообразных учебников.
 
У Silverlight данные хранятся в текстовом XAML, поэтому при желании можно обходиться любым простым текстовым редактором (a-la пресловутый “блокнот”) либо комбинировать визуальную генерацию кода и доводку его вручную (как поступают суровые, но ленивые Web-дизайнеры), что дает очень неплохие результаты. Правда, при очень сложной анимационной последовательности код станет слишком запутанным для правки “ручками”, но, как мне кажется, Silverlight не совсем подходит для создания “Масяня: Перезагрузка” (рисования мультиков), он гораздо интересней со стороны возможностей по программированию. Совсем же простые динамические вставочки, которые сейчас делаются болезненным и медлительным JavaScript, можно с нуля набирать, как HTML, благо разметка проще некуда. В этом плюс Silverlight по сравнении с Flash, поскольку визуальные редакторы даже в урезанном виде достаточно недешевы. С другой стороны, на данный момент редактор Flash мощней конкурента – у него было много времени на развитие, да и его “хозяйка” Adobe все-таки неплохо (и кто бы сомневался!) разбирается в графических редакторах.
 
Каким же будет исход дуэли (так как она только начинается)? Попробую спрогнозировать, хотя главный фактор — время весьма непредсказуем.... Вряд ли Silverlight в ближайшее время изживет конкурента (хотя конкурентами дуэлянтов называть пока нельзя), скорее, они будут просто сосуществовать. Идея Microsoft полезна и благородна, остается только надеяться, что недостатки реализации (весьма возможные) ее не погубят... Мне кажется, что через год-два появится порядночно количество web-узлов, реализующих динамику вроде калькуляторов, фотоальбомов, всяческих крутилок/вертелок и особо извращенных форм ввода с помощью Silverlight, а вот мультики и игрушки все же останутся уделом  Flash, хотя кто знает, какого поворота событий можно ждать?
 
P.S. Автор выражает благодарность за помощь в подготовке статьи Андрею Скляревскому (aka Snoralip http://dev.uz/they/45/) и Виталию Фиоктистову (aka Vitus http://dev.uz/they/287/).
Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2009-12-24 12:42:05

Метки материала: Silverlight, Flash, WPF, JavaScript, XML, swf, .NET, Dolphin, Vitus


7 комментариев

08.05.2009 16:18:39 #
Iceweasel dima
Спасибо за ссылку. Но все же Moonlight не может считаться свободным ПО. Он содержит куски кода Silverlight и требует проприетарных кодеков. Микрософт помогает развивать Moonlight на определённых условиях. Вот как их описывает Википедии:
 
Microsoft released a restrictive public covenant not to sue anyone for infringing patent claims that makes use of Moonlight implementations obtained by Novell or subsidiaries, which covers only the use of Moonlight as a plugin in a browser, only implementations that are not GPL3 licensed, and only if Moonlight has been obtained though Novell.
08.05.2009 15:02:40 #
Mozilla Firefox Гость Михалыч
Novell'овский Moonlight также не может считаться открытым ПО, так как разрешения на использование патентов выдаются только получателям кода от Novell, причем только для создания плагинов.
 
http://ftp.novell.com/pub/mono/sources/moon/moonlight-1.9.0.tar.bz2 - смотрите на здоровье
02.02.2009 03:17:58 #
Iceweasel dima
А по мне так и MS и Adobe друг друга стоят. Надежды на открытость Silverlight, имхо, сильно преувеличены.
 
Сэм Рамджи (один из M$-директоров) опроверг слухи о том, что его компания планирует частичное (!!!) открытие кода Silverlight.
 
Novell'овский Moonlight также не может считаться открытым ПО, так как разрешения на использование патентов выдаются только получателям кода от Novell, причем только для создания плагинов.
 
Я - за SVG. Это - действительно открытая, свободная и бесплатная технология.
02.02.2009 01:23:15 #
Internet Explorer Гость Гость
А как насчет того, что все ПО MS дает просто так, а Адобовский комплект за 50 тон выходит. Актуально у нас сейчас в эпоху борьбы с не лицензионным ПО.
25.12.2008 07:15:14 #
Opera Гость Антибот
Глупости какие. "Сложные" динамические сайты на флеше делались уже тогда, когда сильверлайта еще в помине не было. Жуки мэйл ру, лайн эйдж, да даже один топфотоп чео стоит. Меньше андрея слушай - он про флеш нихера не знает, но осуждает.
 
>Flash. Для создания “флэшек” в основном используется один-единственный редактор, который незатейливо назван Flash
 
Пhо Swish забыл хотя бы - это из крупных. Про множество утилит - вроде создания флеш паззлов из фоток я уже молчу.
 
>Это удобно, в то же время поддержка морфинга (в редакторе) практически отсутствует, превратить квадрат в круг весьма затруднительно.
 
Как два пальца, сделать такую анимацию. Ты когда эту заметку писал, отвечаю, редактор сильверлайта даже в глаза не видел.
 

И вообще, рассуждать у тебя с видом знатока получается херово.
09.10.2008 18:44:28 #
Opera Гость Альберт
интересно, что подразумевается под "сложными динамическими"?
23.09.2008 22:35:16 #
Internet Explorer Гость Денис
Работаю на Silverlight. Очень удобные визуальные редакторы Microsoft Expression Web и Microsoft Expression blend 2, которые можно скачать с официального сайта. Согласен с автором: "сложные" динамические сайты будут разрабатывать с помощью технологии Silverlight, а просто красивые - на флеше.

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.