33 коровы – Наш ответ Чемберлену или проблемы сравнения конкурирующих платформ - RIA разработка, Flex, Action Script, AIR, Eclipse, Monkey script

Наш ответ Чемберлену или проблемы сравнения конкурирующих платформ

December 9, 2008 – 11:56 am

Сегодня в сети появилась статья “Еще одно сравнение Adobe Flash и Silverlight 2” , прочитав ее я понял главную ошибку авторов этих статей — каждый автор является специалистом только в одной области, или Flash|Flex или Silverlight. Поэтому страдают “конкурирующие платформы”. Как выход я вижу написание совместной статьи (но это дело долгих споров). Автор данной статья не избежал ошибок и показал всое поверхностное знание Flex/Flash технологии.

Я попытаюсь исправить его недочеты, для полноты картины )

В начале оговоримся что я не буду в ходе разговора использовать софт который находится в стадии альфа, бетта и пререлиз ).

Среда разработки и прочий инструментарий.

Для начала разберемся с инструментраем и возможностями:

FlashPlayer — это плагин который позволяет проигрывать swf файлы (байт код, который можно создавать где и как угодно, например умельцы рантайм генерят его и сразу же запускают в флешплеере).
Flash IDE/Flex Builder — это среда позволяющая создавать swf файлы.
Flex framework — это фреймворк позволяющий быстро и эффективно создавать RIA приложения. Flex Builder “заточен” для работы с Flex framework.

Использование Flash IDE как средство разработки крупных приложений, довольно опрометчивый шаг. Ее, в контекте разработы RIA лучше использовать как дополнительное средство.

Вообще не стоит говорить что вся разработка сводится к связку Flash IDE(графика)-Flex(код) — это просто частный случай варианта разработки.

а использовать только Flex сложно, поскольку ничего похожего на дизайн-вью в нем просто нет.

Ляп! пожалуйста, жмем на кнопку Design в MXML редакторе и видим дизайн вью. (единственно что он не работает в билдере под линукс). Может канечно этот дизайн вью и не такой навороченый как бленд, но он есть )

Язык программирования

ActionScript 3 являеться вариантом реализации ECMAScript-262, 4 версии http://en.wikipedia.org/wiki/ECMAScript , Я не буду искать подробности отличая от этого стандарта, они есть и это можно найти воспользовавшись гуглом ).

Язык не имеет …

Да язык часто ругают за его непродвинутость.

Язык не имеет встроенной событийной модели

но это вот ляп, событийная модель является главной фичей флешплеера 9 и выше.
— кстате автор нигде не учитывал возможности флешплеера 10 ) который уже вышел в релиз.

Отдельной строкой хочется сказать об отладчике.
Если во Flex Builder он еще куда ни шло, то во Flash им просто невозможно пользоваться – основным методом отладки до сих пор является trace.

При разработке крупных проектов боже вас упаси использовать и дебажить во Flash IDE! вы же не будете дебажить в Blend’e 😉

Поддержка ОС и браузеров:
А что есть нормальная(официальная) поддержка Linux? Как мне поница Moonlight дорос пока только до версии 1. вобщем то до релиза далеко.
К том же плеер более стабилен в различных системах. (мне порой приходится перегружать барузер или запускать ИЕ чтобы посмотреть приложение на Silverlight, Маководы жалуются что не всегда получается поставить плагин)

Возможность упаковки в исполняемый файл:

Стоит учитывать что есть продукты сторонних производителей которые позволяют делать испольняемые файлвы из флеш/флекс приложений, причем под разные платформы (например Zinс)

Изображения:
JPEG, GIF, PNG — флеш с этим работает на лету. Вектор, у флеша это в крови. Кроме того, что можно импортировать ai,пдф файлы автор забыли о поддержке SVG графики. Причем уже есть библиотреки позволяющие использовать ее рантайм. (Например degrafa http://www.degrafa.com/2007/07/27/how-complex-can-you-get-with-degrafa-very/).
Также можно реализовать поддержку практичеки любого формата графики (ByteArray+Bitmap+Drawing API).
Про скорость отрисовки я бы вообще ничего не говорил, как не крути у флешплеера она больше.
А проблемы подготовки графики это уже проблемы кривых рук.

Видео:
flv это хорошее сжатие, но и возможность лайфстриминга, перемотки и других фич
из коментариев:
+ есть поддержка HD video
Флешплеер это тоже поддерживает.
+ теоретически, поддержку flv можно реализовать самому, используя MediaStreamSource (тут есть примеры http://code.msdn.microsoft.com/ManagedMediaHelpers)
нужна практика а не теория, хотя такой возможностью флеш не может покак порадовать.
Как не крути пока приоритет на стороне флеша

Шрифты:

Имеет три встроенных шрифта, поддерживается импорт символов из шрифтов ТТF, ограниченно поддерживаются шрифты, установленные в системе.

просто глупость.
Мы можем влючить любой шрифт в наше приложение, и он будет работать везде.
3 шрифта, тоже глупость, Просто по умолчанию флекс компоненты используют заданые шрифты, и нечего более.

Формально, не импортированные шрифты поддерживаются. Однако, с текстом, напечатанным таким шрифтом, почти ничего нельзя делать: ни поворачивать, ни масштабировать, ни использовать в качестве маски.

Раньше (9 и ниже версии плеера) и вправду не позволяли таких операций как вращение, масштабирование (вытягивание по какой-то оси), в 10 плеере вы можете делать с любым шрифтом, что угодно и как угодно.

Сокеты:
незнаю что твориться в Silverlight, но в FlashPlayer к сожелению имеет некоторые ограничения :(

Работа с файлами:
Принципиальное преисущество было у Silverlight до выхода 10 версии флешплеера, теперь его нет ).

Хранение данных на клиенте:
хе хе пункту просто не зачет. никак не может влиять на оценку платформы.

Разметка:
Спорный вопрос. Я бы не ставил плюса ни одной из технологий.
Если говорить о скором будующем то будет революция 😉 Ключевое слово Flash Catalyst

«Программное» рисование:
Незнаю как обстоят дела в Silverlight, но во флеш им можно творить чудеса.

«Программная» анимация:

Flash/Flex: Основана на фрэймах.

Никто не мешает использовать верменные интервалы. т.е. больше возможностей ).
Я не спец в этой области и пусть те кто работают с FlashCS3|CS4 добавят свои коменты. ).

Собственные контролы:
Автор описал только один, довольно причудливый способ :).
Да. Визуально не всегда сразу можно посмотреть на внешний вид компонента.
Опять же для спора и нахождения истены в данном вопросе нужно сначало определиться с понятием “Собственный контрол”.

Кастомизация контролов
Я незнаю как работают стили в WPF, но

ни все равно почти начисто обходит css-образные стили Flex, которые по сути не многим более чем обычные словари, которые можно хранить в отдельных файлах. Стили во Flex не поддерживают байндинга, не позволяют задавать темплейты, не имеют строгой типизации, и уж тем более не позволяют хранить внутри себя анимацию, не умеют изменятся в зависимости от каких-либо условий.

Полный бред. Для начала ознакомтесь с возможностями стилировния, затем полистайте примеры на той же Деграфе. Стили во флексе ограничиваются только фантазией, как только она закончилась, так и закончились стили )

Связывание данных

Да, во Flex не создается как таковой объект биндинга

Он то создаеться, но вот доступа мы к нему не имеем. Также есть возможность создать биндинг в коде BindingUtils

А двусторонний биндинг, единственный пока что козырь Silverlight, во Flex добавят в Gumbo.

В Flex 2|3 это также легко реализуется, как в коде так и с использованием MXML :)

Реализация MVC
Flex Framework и есть реалиация MVC просто она скрыта от глаз программистов. Поэтому они не разобравшись пугаються и пытаюстся насочинять своих фреймворков ).
А насочиняли их уже много Cairngorm/PureMVC/Mate/Guasax/Model-Glue… и так далее.

Вроде пока все, что пришло на ум.

Поэтому я бы не спешил делать такие опрометчивые выводы, незная не платформы, и незная текущего состояния вещей.
В скором вермени (2009 год) Adobe ух как пошатнет преимущества разработки под сильверлайт, И я бы не стал говорить, что “с точки зрения удобства для разработчика “серебренный свет” уже вне досегаемости”.

Единственными весомым преимуществами Silverlight является:
– большее количество “тяжолых” разработчиков, которые прошли огонь и воду в програмирование под C# и т.д. В отличаии от разработчиков Flex которые в большей части работали во Флеш
– политика отношения Microsoft к разработчикам, ее тактика “Мы везде и никто кроме нас)”. Обучение, бонусы и т.д.

ЗЫ
Неосвещенным остался вопрос производительности, но это тема для отдельного большого исследования.
Как показывает практика FlashPlayer быстрее в графике, как не крути, нельзя сказать что намного, но все же приятно :)

  1. 16 Responses to “Наш ответ Чемберлену или проблемы сравнения конкурирующих платформ”

  2. > Работа с файлами:
    > Принципиальное преисущество было у Silverlight до выхода
    > 10 версии флешплеера, теперь его нет ).

    есть. Открытие файл стрима на выбраный файл, Flash платформа, не дает такой возможности.

    By Reijii on Dec 9, 2008

  3. Дим, ну успокойся ты со своими 2х гиговыми файлами,
    1-5-10-20 мб файл при нынешних технологиях можно и в память положить ниче, с ним не случится. Т.е. вопрос о стриме или нет не сильно пренципиален.

    By Ilja on Dec 9, 2008

  4. Лан фиг с ними 2-х гиговыми, но сама возможность работать с файлом по частям есть кул. Опять же докачки, или выцепить только хедеры того же видео чтобы что-то с ними сделать, не суть важно.

    By Reijii on Dec 9, 2008

  5. ps. имху у тебя в обзоре те же ляпы что и у Алекса Шера, критикуешь силвер мало про него зная. Я так понял вы собрались скооперироваться. буду рад посмотреть на результат.
    (beer)

    By Reijii on Dec 9, 2008

  6. Дима, ляпы в студию :)

    Я вообще не критиковал Сильверлайт, я просто болею за флекс )

    By Ilja on Dec 10, 2008

  7. >Дима, ляпы в студию

    Действительно, ляпов нет. Да и откуда возьмутся ляпы при подходе “незнаю что твориться в Silverlight”, “Незнаю как обстоят дела в Silverlight”, “Я незнаю как работают стили в WPF” и т.д. 😀

    >Единственными весомым преимуществами Silverlight является…

    IMHO основным преимуществом Silverlight является C# и MSVS. И это преимущество перевешивает все преимущества Флекса.

    By Yorick on Dec 10, 2008

  8. Несмотря на все красоты и удобства Flex, наличие в Silverlight С# и подобных вещей, перетянутых с большой платформы просто убивает наповал. Единая среда, единый язык – это колоссальное преимущество. Остальное – допишется и исправится

    By User on Dec 10, 2008

  9. да, насчет стандартизации ActionScript. Надеюсь, никто не забыл, что стандарта не будет?

    By User on Dec 10, 2008

  10. 1. >> IMHO основным преимуществом Silverlight является C# и MSVS. И это преимущество перевешивает все преимущества Флекса.

    2. >> Несмотря на все красоты и удобства Flex, наличие в Silverlight С# и подобных вещей, перетянутых с большой платформы просто убивает наповал.

    Полностью согласен с этими двумя комментариями, но они нуждаются в уточнении.

    Вот как должен заканчиваться первый:

    “…перевешивает все преимущества Флекса для С#-разработчиков.

    А вот как – второй:

    “…просто убивает наповал всех С#-разработчиков..”

    И это совершенно верно, так же, как и то, что по той же самой причине тесной интеграции со всей Microsoft-платформой Silverlight является отталкивающим для всех, кто к этой платформе не привык.

    С этой точки зрения Flex – это более открытая технология. Во Flex нет жесткой привязки к целой платформе разработки, кроме одной – платформы выполнения приложений, то есть самого проигрывателя. Это доказывается тем, что Flex-приложения уже делают самыми разными способами, в самых разных IDE. От полностью бесплатных FlashDevelop и AXDT / FlexBean до люксового FDT.

    Преимущества этих технологий разные, напрямую их сравнивать нельзя (я знаю, что заказчики просят, знаю) :)

    By Рост on Dec 24, 2008

  11. >> да, насчет стандартизации ActionScript. Надеюсь, никто не забыл, что стандарта не будет?

    Не забыли, сами об этом писали. Но если говорить о стандарте, то ActionScript3 все еще ближе к “стандартному” JavaScript, чем C#. А ведь именно JavaScript, благодаря своей простоте, является сейчас языком сети, и это доказывает его преимущество над более сложными и строгими языками.

    Я считаю, что в разговоре о стандартах точка еще не поставлена, ведь при таком бурном развитии JavaScript вопрос повышения устойчивости и безопасности языка будет только заостряться. Вот Гугель возьмет, и поддержит (в качестве дополнительной опции) ECMAScript4 в своем Chreom года через два, когда тот будет стоять на 99% машин. Тогда вопроc о стандартах может повернуться совсем другой стороной.

    By Рост on Dec 24, 2008

  12. >>Рост
    Вы забыли о том что количество .НЕТ(С#) програмистов наверно на в 2-ом месте после Джавістов. И перед нами есть такие возможности как програмировать под Віндовс (Лінукс(Моно)), под АСП.НЕТ, и тепер Силверлайт, тоесть перейти с одного на другое у нас проблем большых не составляет. А еще у майкрософта есть десятки готовых решений, которые имеют хорошые взаемодийствия.

    По поводу самого языка С#- то круче него нет и в ближайшее время не будет. Вы еще не знаете какие финты будут в С# 4.0

    Я не говорю что .НЕТ лучше для изучение, поскольку нас стало очень много и это совсем не радует,- тяжело выделиться, но на мой взгляд это основная причина почему Силверлайт через 1-2 года будет лидер в большых РИА апликациях, где нужно будет более мощной логике чем графики, или во Флекс/Флеш хотя бы добавлят многопоточность.

    Хотя думаю большие перспективы во всех этих технологий.
    ЗЫ: извините за ламаный язык.

    By PomAH4uK on Dec 28, 2008

  13. Господа, любители Сильверлайта, я сидел на шарпе около года, и скажу откровенно язык действительно удобный и практичный. Но есть одно но. Это неудобство всей этой грёбаной ms-овской платформы. Всё закрыто . .абсолютно тупой подход. Куча каких-то хуй знает каких классов понаписано . . Документация умереть не встать. Это приводит к тому что человек желающий посмотреть на всё это добро вынужден привыкать к тому что всё уже сделано до него .. и думать уже не надо. . надо тупо брать томы документаций. . книг . . еще всякой по^&*ни – это противоречит основным принципам нормального программирования. Когда я решил просто познакомиться с экшн скриптом, думая что это недоделанная противная вэб технология, примеры которой я наблюдал несколько лет назад на FP 8-рке, которые тупили и глючили на самом простом, я сильно удивился поглядев рабочие примеры в интернете, которые ничем не уступали WPF. Я скажу Адоб просто герои! Попробовали бы вы найти нормальную базу для гуи года 3 назад. А сейчас это уже реальность!
    Кстати заметьте косяк ms-ов: шрифты все размыты.
    Баг или фича? ) ))) ха-ха-ха-ха ) ) ) )

    By foreground on Jan 6, 2009

  14. Как C# программист скажу. ActionScript3 такой же простой, понятный и удобный язык. Ну а чего мне в C# не хватает, так это E4X и “динамичности” в части десктопных приложений.

    И кстати, пока тут все спорят что лучше, мир переходит на 10-ый флэш :)

    By Breaker on Apr 30, 2009

  15. > И кстати, пока тут все спорят что лучше, мир переходит на 10-ый флэш
    … и третий SilverLight (включая RIA-Services)

    By Yuri Abele on Nov 17, 2009

  16. Эй, народ, а где обещанное совместное сравнение? Уже и SL4 на подходе, а вы все никак не договоритесь?

    By Urrri on Dec 2, 2009

  17. Я считаю, что Силверлайт может стать офигенной тулзой для Бизнес приложений, но в вопросах анимированной графики пока совершенно сырой.

    Есть куча мелких граблей на которых флеш уже отточился за более чем десять лет: размытие шрифтов, встраивание шрифтов, строк хинтинг, размытие растров и т.д.

    Так силверлайт, например, прирулил вроде видео нормальное, но… оно не работает когда юзер под проксисервер
    Т.е. все у кого инет через прокси раздается видео не увидят :(

    By Ushan on Aug 10, 2010

Sorry, comments for this entry are closed at this time.



]]> rss о RIA от 33 Коровы
Забадать RSS!
]]>
~~~~~~