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