суббота, 6 марта 2010 г.

Adobe Flash vs HTML5 vs Silverlight. Возможное мультимедиа-будущее Интернета.

Web 2.0 за считанные годы преобразил вид Интернета. Появились такие массовые явления как вики, блоги, соцсети и др. Но вместе с этим, в Интернет очень активно начал прорываться расширенный мультимедиа-контент. Из последнего, что меня действительно удивило, был сервис онлайн-игр www.onlive.com. Для игры не обязательно иметь компьютер или игровую приставку. %) Вся графика игры обрабатывается на сервере, а пользователю приходит в форме видео-потока. Для его отображения/обработки используется специальная небольшая приставка, которую можно подключить к телевизору. А если игра происходит на компьютере, то достаточно будет браузерного плагина.

Мультимедиа-технологии можно воспринимать, как что-то достаточно прикладное. Все-таки основа Интернета – это информация, но не стоит также забывать о юзабилити, интересности контента и интерактивности. Ведь пользователь становится все более требовательным. Когда-то было достаточно просто иметь гиперссылки в веб-документе, а сейчас удобство пользователя стоит чуть ли не на первом месте. К разработке интерфейсной части сайтов, подходят с той же серьезностью, как и к проектированию интерфейсов десктопного софта. А контент должен не только состоять из текста и картинок, но и массы других составляющих – интерактивные элементы, видео, звук и т.д.

Мультимедиа технологии не стоят на месте. Были времена, когда Flash воспринимался как нечто несерьезное, на нем делались flash-мультики, простые игры, баннеры. Многие до сих пор такого же мнения о нем. Но сейчас Adobe Flash – это не просто программа, это целая, серьезная технология для создания RIA и расширенных пользовательских интерфейсов, в которую кроме непосредственно Flash’а входят Flex и AIR.

Собственно в этой статье, хотелось бы сделать небольшой обзор современных технологий. Но так как я flash-разработчик, сразу предупреждаю, что к оному я неравнодушен более всего, хотя постараюсь быть максимально объективным. Итак..


Тема 1. HTML5 vs Flash

Это одна из последних жестко-холиварных тем в интернете, после заявлений некоего :) Стива Джобса.

Сейчас модно обвинять Flash в тормознутости, навязчивости flash-рекламы, угрозах безопасности. В принципе я даже соглашусь с некоторыми из них, и даже меня, как flash-разработчика, бесит, когда Flash втыкают «чтобы был» и делают на Flash'е то, что можно сделать и без него. Сейчас на javascript'е реализуют много прикольных эффектов, анимацию и т.д, которые раньше не были сильно распространены из-за медленной обработки javascript'а самими браузерами. HTML5, вдобавок, предлагает еще использование canvas'а браузера, которые позволит выводить любую графику напрямую в окно браузера (читай рисовать). Т.е. эффекты и анимация, будут доступны уже не только на слоях, но и непосредственно отрисовкой в окне. Кроме этого HTML5 предполагает поддержку видео-кодеков, которые позволят проигрывать видео, опять же с помощью средств canvas'а браузера. Youtube уже сделал бета-версию HTML5 плеера.

Но даже со всеми достоинствами, на мой взгляд заменить полностью Flash будет сложно с помощью технологий, которые предлагает HTML5 и CSS3. И вот почему.

Во-первых HTML5 не может распространиться моментально, для этого надо чтобы основная часть пользователей апгрейдила свои браузеры. А flash-плеер, по данным Adobe, установлен в 99% браузеров.

Во-вторых. Я пока себе слабо представляю как с помощью HTML5 реализовывать сложные RIA-приложения, например как те же браузерные игры или сайты со сложными интерфейсами. Ведь javascript является обычным скриптовым языком. А тот же ActionScript3 какой-никакой, но объектно-ориентированный. Т.е. скорость разработки сложных вещей может отличаться в разы. Вдобавок javascript является открытым (интерпретируемым), т.е. код разработчика без особых проблем может быть перенят другим (читай, взят без спроса).

В-третьих – это масса всего софта Adobe, который присутствует в мире дизайна. Чтобы перестроить техпроцесс нужны достаточные время/средства. А если учитывать развитые средства анимации во Flash'е, то здесь скорее надо будет говорить о выходе доп. софта, который позволит делать анимацию для HTML5 на базе SVG.

В-четвертых, технология Flash – это не только браузерные разработки, это и десктопные мультимедийные приложения, как на основе AIR, так и без него. А эффективность и скорость реализации нестандартных интерфейсов, даст прикурить многим десктопным средствам разработки.

Ну и в-пятых. Кто дает гарантию, что при разворачивании сложных HTML5 интерфейсов и навороченных сайтов, они не будут тормозить также или даже больше (а здесь еще все будет зависить от браузера), чем сайты (приложения) на Flash'е. И кто даст гарантию (а тут вообще ее сложно давать), что реклама в интернете не будет еще более назойливыми с использованием HTML5.

Думаю, на самом деле, что вся эта возня вокруг Flash'а в основном из-за желания разрушить монополию Adobe в области онлайнового потокового видео (youtube и т.п.), которая не дает спать многим, в том числе и Microsoft, которая по большей части из-за этого начала заниматься разработкой своего Silverlight'а.

P.S. А причин у Стивена Джобса порицать Flash более чем. Хотя бы то, что flash-плеер не дружит с MacOS'ю на предмет проигрывания видео, т.к. Safari не может предоставить доступ к аппаратным возможностям видеокарты. Поэтому весь декодинг происходит за счет процессора. Это одна из причин того, почему в iPad'е нет flash-плеера. А вторая из возможных причин в том, что массовое наступление бесплатных казуальных flash-игр может угрожать прибыльности AppStore...

Тема 2. Silverlight vs Flash.

Итак Silverlight. В отличии от HTML5 – это прямой конкурент технологии Flash, только в исполнении Microsoft.Все устройство более менее такое же. Т.е. внешний, внедряемый в браузер в виде плугина player, который рендерит контент, основные составляющие которого - векторная/растровая графика, видео, звук.На самом деле заявка Microsoft’а более чем серьезная. С другой стороны насколько они будут последовательны и как быстро смогут отвоевать у Adobe серьезную часть рынка – это другой вопрос.

Microsot долгое время не придавало особой значимости интернет-технологиям. А теперь просто с каким-то истерической энергией пытается остаться в числе серьезных интернет-игроков. Чего хотя бы стоит серия рекламных роликов, где объясняется почему office-ные продукты Microsoft лучше, чем бесплатные онлайн продукты Google. Итак, к сильным сторонам Silverlight относится то, что за его разработкой стоит, что душой кривить, самая крупнейшая софтверная корпорация в мире. Silverlight использует мощную базу наработок. Сам код может писаться как на простом VB.Net, так и на сильном ООП языке C#. В Интернете появилось много тестов на тему производительности Flash vs Silverlight. И Silverlight часто выигрывает. Но другой вопрос - скорость разработки. С Flash’ем все понятно. Adobe делает все, чтобы взаимодействие его технологий между друг другом было максимальным, плюс наработки Adobe в 2D векторной/растровой графики, в каком-то смысле, наверное, не имеют аналогов. Для создания графики под Silverlight у Microsoft’а есть пакет Expression Studio. Не берусь его сравнивать с Adobe CS, т.к. в нем не работал, но насколько я понял он еще далек от совершенства.

Вообще конечно параметров сравнения Flash и Silverlight масса. Но все зависит от области применения. Т.к. Flash идет от дизайна, а Silverlight от программирования со всеми вытекающими последствиями как для одного, так и для другого.

Тема 3(D).

Что меня всегда очень сильно волновало – когда же появится нормальный стандарт 3D-графики в Интернете. Хотя первые наработки в виде VRML появились уже давным-давно, но до сих явно преобладающего стандарта нет. Все вышеописанные технологии, наверное, имеют все-таки цель, продвинуться в использовании 3D.

Например, в Flash-плеере 10 появилась простая реализация 3D - дополнительная ось для операции с MovieClip’ами. %))) Надо же с чего-то начинать. Под Flash есть несколько сторонних 3D-движков. Более или менее тормозных, свободных или коммерческих. Из доступных к использованию, радует Alternativa3d – разработка российских программистов, он хоть и является платным, но предусматривает, в определенных случаях, и бесплатное использование. Чтобы оценить его мощь, можно немного (ли?) погамить в Танчики. Из недоступных для использования есть действительно поражающий своей скоростью работы движок японского разработчика Masayuki Kido (Roxik). На нем был разработан впечатляющий промо-сайт с игрой для Verbatim, который стал сайтом месяца (январь 2010) на FWA. В 2008 на этом же движке The Eco Zoo, стал Сайтом Года, по версии этой же престижной интернет-премии.

В случае с Silverlight'ом дела с 3D не особо отличаются от 3D-дел flash-плеера. Только что разных 3D-движков не столько много. Я даже не знаю есть ли хоть один %)

А вот с HTML5 ситуация интересная. Т.к. отрисовка будет доступна прямо в браузере, есть идея, подключить к ренедерингу библиотеку OpenGL или OpenGL ES. Называется он WebGL. Основные браузеры в которых планируется поддержка – это Apple Safari и Google Chrome (на WebKit), Mozilla Firefox и Opera. Заметьте, что в этом списке нет IE. Дело в том, что, чтобы эта технология работала – нужна поддержка самого браузера. А у Microsoft’а есть по крайней мере 2 технологии, с которыми будет конкурировать WebGL – Silverlight (пока еще без 3D, но в будущем оно там по любому должно быть) и DirectX (Direct3D прямой конкурент OpenGL). И эта корпорация, как обычно, думаю будет пытаться строить что-то вокруг своих технологий, чем использовать стороннюю.

На фоне всего этого очень интересно выглядит технология Unity3D. Это фреймворк для создания игровых приложений, который включает в себя 3D-редактор и среду разработки. Код может писаться на Java и C#. Плеер встраивается в браузер, как flash-плеер. Мультиплатформенный (PC, Mac OS, Wii, iPhone). Встроенная физика на базе движка PhysX. Основной недостаток – он платный (но за все хорошее надо платить %). Немного подробнее об особенностях можно почитать здесь. А здесь можно посмотреть, что он может. Не забываем устанавливать плеер. %)

Тема 4 (короткая). JavaFX.
Чуть не забыл. Кроме Adobe и Microsoft, в гонку мультимедиа-вооружений, в создании RIA-приложений, вступила корпорация Sun. Ныне подразделение корпорации Oracle. Которая предложило альтернативу на базе технологии Java - JavaFX. Честно говоря, я не особо в курсе, что там происходит. Но насколько понимаю, технология потихоньку развивается, хотя результаты, скорее всего, не такие выдающиеся, как у Flash, или даже как у Silverlight.

Итого.

Интернет стал очень перспективной средой для бизнеса. Многие крупные корпорации направили в его русло нехилые инвестиции и сосредоточили значительные силы разработчиков. Все меняется. От голого гипертекста перешли к javascript’у, от javascript’а к ajax’у и flash’у. Думаю то, что будет дальше, можно охарактеризовать, как «больше мультимедиа», «больше интерактива», «больше новых интересных технологий».Да и вообще, в любом случае, конкуренция для конечного пользователя - это хорошо. Поэтому я, со своей стороны, надеюсь, что в Flash-плеер'е 11 будут какие-либо расширенные возможности по рендерингу 3D-контента, а не только поддержка плоскостей, даже без встроенного отсечения. Это был бы ход конем, с моей точки зрения, т.к. 3D-эра интернета, еще не наступила, а у Adobe сейчас есть преимущество в процентном распространении flash-плеера. Но конечно, все это будет возможно, только с появлением нормального аппаратного ускорения, с поддержкой рендеринга на видеокарте.Как бы то ни было, время покажет.

Ну а что про будущее Flash’а… Скорее всего, его существование, сбалансируется новыми технологиями, но об его смерти говорить - ой как рано.

Сайты по теме:

Комментариев нет:

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