Pull to refresh

О том, почему мы будем использовать HTML(5) вместо Silverlight

Reading time6 min
Views6.6K
Original author: Davy Brion
Недавно я провел исследование о том, какая технология создания пользовательского интерфейса будет наилучшим выбором для приложений, которые собирается создавать мой клиент в следующие несколько лет. Мой клиент – это команда .NET разработчиков, а это значит, что двигаться можно в двух основных направлениях: разработка с использованием стандартных веб-технологий или Silverlight. Когда необходимо рекомендовать одну технологию в противовес другой, то в идеале выбор должен быть основан на чем-то большем, чем на нескольких мнениях. Мы создали список технологий-кандидатов. После чего мы создали перечень критериев, связанных в категории. Всем критериям был назначен некоторый вес, и мы оценили каждый из них для всех технологий-кандидатов.

В этой статье, я хотел бы пройтись только по категориям критериев и обсудить наши выводы. Я поделюсь детальной таблицей с данными, для того чтобы вы смогли исследовать результаты самостоятельно. В зависимости от ваших потребностей или вашего мнения, вы можете изменить вес и оценку, и посмотреть, как это повлияет на результат. Я удалил несколько критериев, которые были специфичны для моего клиента, но это не вызвало огромного влияния на результат. Для этой статьи, я также сократил количество технологий-кандидатов до ASP.NET MVC 3 в сочетании с семейством jQuery (jQuery Core, jQuery UI и jQuery Mobile) и Silverlight.

Вот неполный список категорий и некоторых критериев (детальный список находиться в Excel документе, ссылку на который вы найдете в завершении статьи):
  • Взаимодействие с пользователем (совершенство пользовательского интерфейса, доступность, интуитивность/простота в использовании, доступность с различных устройств, доступность из различных платформ)
  • Инфраструктура (легкость/гибкость развертывания, контролируемость)
  • Защищенность (от XSS, CSRF)
  • Производительность(потребление ресурсов сервера, потребление ресурсов клиента, асинхронность, отзывчивость пользовательского интерфейса, начальное время загрузки)
  • Код/Архитектура(завершенность, повторное использовании логики проверок, простота, затраты на поддержку, гибкость, потенциал, тестируемость, i18n, цикл обратной связи, порог вхождения в технологию, потенциальная эффективность, быстрое прототипирование, читабельные URL, расширяемость)
  • Люди (число необходимых навыков, необходимая доля внимания со стороны пользователей, документация, поддержка общественностью, коммерческая поддержка)
  • Стратегия(перспективность, соответствие стандартам, отличия, поддержка, виденье)
  • Лицензия (у нас есть доступ к коду?)
  • Цена
  • Инструменты (Поддержка со стороны IDE, наличие дополнительных инструментов, наличие бесплатных компонентов от сторонних разработчиков, наличие платных компонентов от сторонних разработчиков)

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

Следующий график иллюстрирует оценку обоих технологий по категориям:

HTML 5 vs Silverlight by categories

Я уверен, что довольно много вещей, которые удивили вас на этом графике. Первое, что вы могли подумать это: «Почему Silverlight был оценен так плохо в категории Взаимодействие с пользователем?» Ответ довольно прост: если ваши пользователи не работают с Windows или OS X, то у них нет возможности использовать Silverlight. Не повезет и пользователям с ограниченными возможностями, так как их поддержка в Silverlight не развита. Если принять во внимание эти факторы, уже не имеет большого значения то, что при помощи Silverlight, вы можете создать невероятно роскошные приложения. Кроме того, большинству людей довольно быстро надоедает чрезмерная анимация, так что лучше в этом деле не переусердствовать. Имея это ввиду, jQuery UI и HTML5 могут лучше удовлетворить ваши потребности.

Следующая область, где Silverlight был оценен очень плохо, это – Стратегия. Факт несоответствия стандартам, очевидно, наносит сокрушительный удар, но, есть и другие недостатки. Прежде всего, мобильные платформы наносят еще один сокрушительный удар. Android и iOS не поддерживают Silverlight. Мы знаем, что эта технология никогда не будет работать на iOS, и пока она не работает на iOS, у Android нет никаких оснований поддерживать Silverlight, просто потому что эта технология не играет никакой важной роли. Microsoft еще даже не анонсировала создание плагина для поддержки в браузерах Windows Phone 7, и никто не знает, дождемся ли мы этого. Это означает, что веб-приложения на Silverlight не доступны с любого портативного устройства, за исключением тех, которые поддерживают полную версию Windows и составляют небольшую долю рынка. Во-вторых, несмотря на свое первоначальный лозунг «Озаряя Интернет», получается, что в планах Microsoft всего 3 активно продвигаемые сценария: разработка внутренних бизнес-приложений, потоковое видео и создание приложений для Windows Phone 7. Хотя, создание внутренних бизнес-приложений и является тем, чем мы будем заниматься в ближайшие несколько лет, мы все же планируем создавать публичные приложение, доступные большому кругу пользователей. Работа с Silverlight для внутренних приложений и HTML (5) для общедоступных приложений выглядит не экономичной, поскольку мы будем вынуждены обучать наших разработчиков обоим направлениям. И это не будет иметь большого смысла, поскольку HTML (5) отлично подходит для внутренних бизнес-приложений.

Но, как вы могли заметить, есть области, в которых Silverlight оценивается лучше, чем ASP.NET MVC 3 + jQuery. Например, по категории Инструменты, вы не можете отрицать тот факт, что Visual Studio и Blend удовлетворяют большую часть потребностей разработчика. По крайней мере, большую часть времени разработки и отладки вы будете проводить в вашей уже знакомой IDE, в то время, как при работе с стандартными веб-технологиями, вам будет необходимо провести некоторое время, используя Firebug или инструментов разработчика в Google Chrome, вместо того, чтобы делать практически всю работу в Visual Studio. И это приводит меня к обсуждению категории Люди. Наибольшим преимуществом Silverlight над веб-разработкой, основанной на стандартах, есть то, что все что вам необходимо знать – это C# и XAML. Для разработки, основанной на стандартах вам необходимо знать HTML, CSS, JavaScript и язык, на котором написано ваше серверное приложение, в данном случае, это также C#. И это может повлиять на вашу способность по поиску новых разработчиков, так что в некотором роде, у Silverlight тут есть преимущество.
Хотя, я хочу отметить, что, в долгосрочной перспективе, вам лучше работать с теми людьми, которые готовы выйти из зоны комфорта, чем с теми, которые цепляются за то, что они уже знают. С точки зрения безопасности, технология Silverlight также оценена лучше, так как вам не придется о таких общих проблемах, как XSS, CSRF и других уязвимостях общих для веб-разработки.

Таким образом, мы имеем 3 категории, в которых Silverlight оценивается лучше, чем ASP.NET MVC 3 + JQuery, но этого недостаточно для того чтобы сократить отрыв. Основываясь на весе, который мы присвоили каждому критерию, максимально возможная оценка это 732 балла. ASP.NET MVC3 и jQuery набрали 568 балла. Silverlight набрал 304 балла. Очевидно, что результаты будут отличаться в зависимости от того, что вы считаете важным. Именно по этому, мы проконсультировались с аналитиком из одной крупной компании, специализирующейся на исследованиях и консалтинге в сфере IT технологий. Аналитик полностью согласился с нашими выводами и данными, и подтвердил, что его компания рекомендует переход к HTML5 для всех своих клиентов. Он даже зашел дальше, и сказал, что Silverlight трудно рекомендовать, разве что, в случае, если ваши приложения не нацелены на поддержку мобильных платформ и являются сугубо внутренними и вы уже вложили деньги в эту технологию. Пока что, я не могу предоставить ссылку на это мнение, но документ об этом будет готов в ближайшем будущем, и я лучше дам ссылку, когда он выйдет (если документ будет публичным) или, по крайней мере, сошлюсь на него.

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

Резервная ссылка MS Excel 2007 (html_vs_silverlight.xlsx)
Резервная ссылка MS Excel 2003 (html_vs_silverlight_xl2003.xls)



Dmitry_Zhariy says:
Прочитайте этот текст на английском!
Попробуйте прочитать текст этой статьи на английском языке ради улучшения ваших навыков и добра.
Следующая ссылка ведет на билингвистический (смешанный, английский и русский) вариант этой статьи. Читайте текст на английском и пользуйтесь русским переводом снизу, если вы вдруг вы потеряете смысл англоязычного текста.

[ EN/RU ] О том, почему мы будем использовать HTML(5) вместо Silverlight

Огромное спасибо всем, кто оставил отзывы по поводу билингвистического текста в предыдущем посте.
Tags:
Hubs:
+38
Comments93

Articles