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

Tuesday, December 9th, 2008

Сегодня в сети появилась статья “Еще одно сравнение 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 быстрее в графике, как не крути, нельзя сказать что намного, но все же приятно 🙂



Москва и FlexCamp

Tuesday, November 4th, 2008

Вчера вернулся из Москвы, куда ездил поработать, погулять и посетить FlexCamp (и даже сделать на нем небольшой доклад).

В Москве был первый раз и Москва мне не понравилась. Я привык к более размеренной жизни и меньшему количеству людей и машин. Мои ожидания она поравдала на все 100%, в отличаи от Львова, UAFPUG#6. Красная площадь оказалась не такая большая, по сравнению с площадью свободы в Харькове 😛

Зато FlexCamp удался!

Я наконец-то познакомился в живую с Костей Ковалёвым! Рад до безобразия.

В плане организации было все на высоте (проблемы с интернетом отнесем к проблема отчественного бизнеса, где никто ни о чем не думает, они были не по вине организаторов). Спасибо организаторам.

По докладам, все доклады были из разряда “обзорных”. Мне большинство были не сильно интересны — я или уже это знал, или активно использую.
Для незнающих или только начинающих доклады, по-моему мнению, были очень полезны.

Фотографий я не делал, но есть хорошие фото от mr.Destro .

На FlexCamp мой доклад был посвещен Eclipse Monkey (Monkey Script), который совпал с открытием русскоязычного проекта “monkey-for-flex” по использованию Eclipse Monkey.
Мой доклад тоже был больше общеобразовательный. Ниже его можно полистать

В разделе “Живой пример” я показал пример генерации коментариев для класса из шаблона, работу с диалоговыми окнами (вызов стандартного колор пикера) и генерацию хендлера для события. Эти скрипты будут выложены в проекте “monkey-for-flex”



Silverlight vs Flash: Video Codec Comparison*

Thursday, July 3rd, 2008

Статья о сравнении производительности видео кодеков от Silverlight и Flash.

В кратце, дела у Silverlight похуже чем у Flash, но сильных различий невидно.
При просмотре тестовых видео качество у Silverlight будет похуже — проскакивают непонятные квадратики.

Сложившаяся ситуация не может не радовать — конкуренция великая сила). В данный момент, по моему мнению, мы имеем двух противников адоб и майкрософт и этих противников совершенно разные политики достижения целей: адоб дает хорошие инструменты, майкрософт “скупает” разработчиков. Адобу творит чудеса в плане флешплеера (да и софта в целом), но ему нехватает мобильности и желания активно работать с флеш-сообшеством (покрайней мере отечественным). Майкрософт делает свои “обычные” порой тормознутые вещи, но ведет активную работу с сообществом программистов, привлекая и стимулируя(читай “подкупая” 🙂 ) их разными плюшками, конференциями, софтом. Причину почему этого не делает адоб я незнаю, то ли денег нехватает, то ли желания, то ли представители в странах СНГ не работаю как нужно (кстате может спросить об этому у Главы представительства Adobe Systems в России и СНГ, вроде как 2й год работает, должен знать ситуацию).

Вобщем берем попкор и смотрим за событиями дальше. Обещают, что будет интересно.

UPD: пример работы MS )

________________
*скопировано оригинальное название статьи )



AIR, FLEX3 — мы готовы! Silverlight 2 — сейчас прогреем и поедем

Monday, February 25th, 2008

Адоб зарелизил AIR и FLEX 3, бурные продолжительные апплодисменты, все встают.

В честь этого небольной редизайн сайта покравсив его в черный (флексовый) цвет. Также сделал клевую шапку-флешку иллюстрирующую что такое AIR. Стоит зайти посмотреть

Одновременно с этим injun #576871 написал пост о том, что

Скот Гутри, пару дней назад рассказал в нескольких строках о предстоящей первой бета-версии Silverlight 2.

Я если чесно очень боюсь Silverlight 2 — последнее време продукты от майкрософта безумно огромны, неповоротливы и громоздки, как бы Silverlight 2 не стал именно таким “выхлопом” от майкрософт.
Майкрософт сейчас подобен безумному полководцу с безграничной армией программеров-войнов, которых он шлет бездумно на бойницы пытаясь просто завалить их трупами войнов. Эти войны-программисты порождают безумное количесто софта который просто неудобен в использовании, но окружающие люди просто ничего не видят вокруг, за огромностью MS этого просто не видно. Эта толпа программистов способна(?) сделать много всякого функционала и возможностей, но обычно это выглядит очень убого, а порой это вообще никому не нужно. Пока МС просто пытается набрать колличественный показатель всяких плюшек и возможностей, но вопрос в том, сможет ли он перешагнуть в качественный. Лично я подозреваю, что уже не застигну этот момент ;(

“способна(?)” — это я к тому, что я в этой жизни так и не пронаблюдал релиза Silverlight 1.1, и его прорадителя :).




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