Мягкая деградация за пределами домена веб-приложений: насколько это серьезная проблема?

Приносим извинения за длинное вступление. Мы просто пытаемся правильно оформить сцену, чтобы избежать двусмысленностей и путаницы.

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

Давайте на данный момент рассмотрим только два поколения: до и после ajax. Конечно, есть и другие факторы, например, связанные с поддержкой CSS и заголовками контроля доступа, но давайте начнем с простого.

Начиная с простой системы без стиля и без JavaScript, добавляя слои изящно деградирующих улучшений и заканчивая современным приложением с поддержкой ajax и быстрым откликом, — это сложная и подверженная ошибкам задача. Это отнюдь не легко.

К какому бы поколению ни относилось веб-приложение, зависит от средств доступа к приложению. Одно и то же веб-приложение будет выглядеть как приложение первого поколения при доступе через Lynx и приложение последнего поколения при доступе через FireFox 3.1 с несколькими промежуточными уровнями в зависимости от пользовательского агента, используемого для доступа к приложению.

Проблема создания веб-приложения, которое изящно деградирует в зависимости от возможностей пользовательского агента, когда что-то, созданное для использования преимуществ текущих функций браузера, вернется к функциональности чего-то, созданного возможно, пятнадцать лет назад, когда столкнулся с Lynx, очень тяжело.

Я не могу себе представить настольное приложение, сталкивающееся с такой разницей в операционной среде.

Один исполняемый файл (в отличие от набора вариантов для конкретной ОС), способный использовать преимущества функций Vista, вполне может адекватно справляться при работе под XP и при отсутствии определенных функций Vista. Чтобы деградировать на сравнимом расстоянии с веб-приложением, то же настольное приложение все равно должно функционировать, хотя и менее причудливым образом, при запуске в среде только с командной строкой, такой как DOS.

Запустите его под Lynx, это веб-приложение первого поколения. Запустите то же самое под FireFox 3.1, это модное, блестящее современное веб-приложение. Если бы вы столкнулись с такой проблемой, вы бы сочли ее сложной, сложной, но выполнимой.

Запустите его под DOS, это приложение командной строки. Запустите его под Vista, это модное, блестящее современное веб-приложение. Если бы вы столкнулись с такой проблемой, вы бы сочли это безумием. Или вы бы?

Сталкивались ли когда-нибудь настольные приложения с такими разнообразными операционными средами, как веб-приложения?

Является ли эта проблема (широта различий, а не сама разница) уникальной для домена веб-приложений или ее можно найти в разработке для настольных компьютеров?


person Community    schedule 20.02.2009    source источник


Ответы (3)


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

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

person Community    schedule 20.02.2009
comment
о, я не знаю .. QT действительно хорош для кроссплатформенной разработки. Тогда вашей самой большой проблемой будут возможности устройства — например, размер экрана телефона по сравнению с настольным компьютером. - person gbjbaanb; 20.02.2009
comment
Я согласен, кроссплатформенная разработка уже возможна с несколькими языками и фреймворками. Но изящная деградация заключается в уменьшении масштаба для более низкого разрешения экрана, пропускной способности, процессора, памяти и т. д., когда это необходимо. Qt или другие фреймворки не очень хорошо с этим справляются. - person Mendelt; 20.02.2009

Я не могу себе представить настольное приложение, сталкивающееся с такой разницей в операционной среде.

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

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

Конечно, ничто не мешает издателю программного обеспечения для настольных компьютеров предъявлять строгие требования к среде. Это просто вопрос бизнеса. Но ничто не обязывает вас поддерживать и неосновные браузеры (и действительно ли большинство веб-приложений поддерживают Lynx?!?).

person Community    schedule 20.02.2009
comment
И действительно ли большинство веб-приложений поддерживают Lynx? - Lynx был упомянут, чтобы продемонстрировать возможную широту вариаций в операционной среде, то есть, хотя это редкость, не исключено, что поддержка таких вариаций будет требованием. - person Jon Cram; 20.02.2009
comment
Если вы хотите сравнить яблоки с яблоками, вам следует подумать о том, что считается мейнстримом в обоих мирах. Для меня поддержка Lynx эквивалентна поддержке Vista и 10-летней версии RedHat (что во многих случаях может быть разумным требованием). - person Kena; 20.02.2009
comment
Vista/RedHat не совсем то же самое. У вас не будет одного и того же исполняемого файла, работающего на обоих, у вас будут очень похожие варианты для каждой ОС. Сравнение Vista/RedHat больше похоже на наличие версии вашего веб-приложения для Lynx и отдельной версии FireFox/IE/Safari/Chrome/Opera. - person Jon Cram; 20.02.2009

В области приложений и операционных систем (ОС) проблема обычно обратная. Это ОС, которая берет на себя всю сложность обеспечения совместимости. С другой стороны, приложение обычно диктует минимальную версию ОС.

Еще одно место, где приложения начинают видеть эту проблему, - это мир Java и, в меньшей степени, все другие так называемые языки сценариев, которые работают на нескольких ОС.

person Community    schedule 20.02.2009