Извиняюсь за длинное вступление - просто пытаюсь правильно настроить сцену, чтобы избежать двусмысленности и путаницы.
Веб-приложения превратились из глупых браузерных интерфейсов для серверной логики в полностью браузерные приложения с минимальной потребностью в серверной логике. Эту эволюцию можно описать, выявив четкие поколения веб-приложений.
Давайте на данный момент рассмотрим только два поколения: до и после ajax. Конечно, есть и другие факторы, например, связанные с поддержкой CSS и заголовками контроля доступа, но давайте начнем с простого.
Начиная с простой в использовании системы без JavaScript, добавление слоев изящно ухудшающих улучшений и заканчивая упакованным ajax, высокочувствительным современным приложением, является сложной и подверженной ошибкам задачей. Это отнюдь не просто.
К какому поколению веб-приложение может относиться, зависит от средств, с помощью которых осуществляется доступ к приложению. То же самое веб-приложение может показаться приложением первого поколения, если доступ к нему осуществляется через Lynx, и приложением последнего поколения, если доступ осуществляется через FireFox 3.1, с несколькими промежуточными уровнями в зависимости от агента пользователя, используемого для доступа к приложению.
Проблема создания веб-приложения, которое изящно ухудшается в зависимости от возможностей пользовательского агента, где что-то, созданное для использования преимуществ текущих функций браузера, вернулось бы к функциональности чего-то, созданного возможно пятнадцать лет назад когда сталкиваешься с Lynx, это очень тяжело.
Я не могу представить настольное приложение, сталкивающееся с таким отклонением в операционной среде.
Один исполняемый файл (в отличие от набора специфичных для ОС вариантов), способный использовать преимущества функций в Vista, вполне может адекватно работать при работе под XP и при отсутствии определенных функций Vista. Чтобы снизить производительность на таком же расстоянии, что и веб-приложение, то же настольное приложение все равно должно функционировать, хотя и менее причудливо, при запуске в среде только с командной строкой, такой как DOS.
Запустите его под Lynx, это веб-приложение первого поколения. Запустите то же самое под FireFox 3.1, это модное, блестящее современное веб-приложение. Если бы вы столкнулись с такой проблемой, вы бы сочли ее сложной, хитрой, но выполнимой.
Запустите его под DOS, это приложение командной строки. Запустите его под Vista, это модное, блестящее современное веб-приложение. Если бы вы столкнулись с такой проблемой, вы бы посчитали ее безумной. Или вы?
Сталкиваются ли когда-нибудь настольные приложения с такой разницей в операционных средах, как веб-приложения?
Является ли эта проблема (широта дисперсии, а не сама дисперсия) уникальной для области веб-приложений или ее можно найти в разработке для настольных ПК?