Веб-приложения наконец-то начинают пробиваться к свету. Я ставлю все свое состояние на это. Я уверен, что веб-приложения - это будущее Веба, программных приложений, сетевых архитектур и даже компьютеров и операционных систем.
Приложения основанные на Вебе проникнут (почти) во все виды программ, которыми мы пользуемся сегодня. В данной статье я попытаюсь привести некоторые преимущества использования веб-приложений.
Чтобы вы лучше поняли, о чем я веду речь, я приведу несколько примеров: GMail, Bloglines, и OddPost. Gmail является полноценным почтовым клиентом, который делает все, что делает любой другой почтовый клиент, запускаемый на вашем компьютере, и даже немного больше. То же самое можно сказать об OddPost. Bloglines - веб-приложение для чтения новостей, которое напрямую конкурирует с обычными аналогичными приложениями, конкурирует и выигрывает. Эти веб-приложения работают на сервере, а их пользовательский интерфейс (UI) отображается в виде веб-страниц. По самой структуре приложения, вся программная логика сконцентрирована в одном центральном месте (на сервере), а пользовательский интерфейс доступен любому человеку в виде небольшой программы, которая существует с самого момента зарождения HTTP-сети (речь идет о браузере). Для появления веб-приложений не хватало только таких важных технологий, как JavaScript и DOM.
Использование JavaScript в веб-приложениях очень сильно отличается от того, как он использовался в 1999 году. Тогда технология JavaScript была только классным способом заставить элементы страницы реагировать на движение мыши (что сейчас всех раздражает), создавать следы курсора на экране, мигать текстом, менять цвета. JavaScript-ом пользовались просто потому, что он был, а не потому, что он был необходим. На какой-то момент я посчитал, что дни JavaScript-а сочтены, так должно быть думали и многие другие веб-разработчики. Использование JavaScript-а на страницах стало дурным тоном в веб-дизайне, после чего язык уже все готовы были списать со счетов.
Сегодня же JavaScript - это зрелый полноценный язык. Сейчас он используется именно для того, для чего он и задумывался, для выполнения действий на стороне клиента без лишнего обращения к удаленному серверу. Динамическая составляющая веб-страниц всегда была больной точкой при создании веб-приложений, и видимо это единственная причина, почему веб-приложения только сегодня стали пробиваться к свету. Сегодняшний JavaScript полностью снимает эту проблему.
Теперь, когда мы знаем, что мы можем делать веб-приложения, давайте поговорим о том, зачем нам их делать.
Приложение находится в одном месте
Вся программная логика приложения находится на сервере, в отличие от обычного ПО, где логика приложения располагается на компьютере каждого пользователя. Так как имеется только одна рабочая копия приложения, его намного проще распространять среди пользователей. По сути о старом способе распространения приложения вообще можно забыть, так как пользователь в реальности не получает копии приложения, как раньше. Все, что получает пользователь, это интерфейс программы (UI), т.е. только то, что ему необходимо для работы. По сути проблемы распространения веб-приложения не существует в том смысле, что получить вы его можете в любой момент в любом месте.
Пользователю не нужна никакая программа
Все, что ему нужно, это запустить браузер и набрать URL. В наши дни браузер является стандартной программой, которую пользователь получает при установке операционной системы. Так что искать браузер ему не надо, он уже на его машине, и по сути это все, что ему нужно для работы.
Пользователь не является администратором
Как правило, если пользователь устанавливает на своей машине приложение, ему приходится брать на себя роль администратора этого приложения. Ему надо устанавливать его, запускать, настраивать, чинить, решать возникающие проблемы. В случае же с веб-приложением, так как оно располагается на сервере, пользователю нет необходимости беспокоиться об этом. Ему и не следует об этом беспокоиться. Пользователь от этого будет только счастлив. А это в свою очередь - признак хорошего приложения. В случае же с обычным приложением о таком счастье и мечтать не приходится.
В роли администратора выступает разработчик приложения
Да, еще один груз на плечи программиста. Но если сравнить стоимость создания веб-приложения со стоимостью содержания команды специалистов, которые занимаются установкой, поддержкой и починкой обычных приложений на машинах пользователей, вы сразу же увидите, что будет дешевле, не говоря у же об эффективности. С точки зрения бизнеса намного выгоднее содержать небольшую команду программистов, работающую в одном месте над одним приложением.
Приложение не требует ничего от пользователя
Ладно, здесь мы немножко слукавили. В действительности предполагается, что у пользователя есть браузер, который сможет работать с приложением. Но в реальности, это же мелочь? По самой сути Веба, веб-приложение не предъявляет никаких требований к аппаратной платформе. Это значит, что пользователь сможет работать с приложением на любой операционной системе и не заметит никакой разницы. Это огромный шаг от эры логотипов "Разработано для <название ОС>". У пользователя нет 512Мб оперативки? Нет проблем. Недостаточно мощный процессор? Не проблема. Устаревшая материнская плата? Никаких проблем.
Проблема поддержки разных версий в прошлом
Как только выходит новая версия веб-приложения, все без исключения пользователи ее получают буквально немедленно. Это же круто! Опять же, так как приложение находится на сервере, существует только одна его копия на всем белом свете. Все старые версии мгновенно исчезают, а пользователь даже не замечает, что у него новая версия программы. Это также значит, что разработчикам не надо заботиться о поддержке старых версий программ и волноваться по поводу обратной совместимости.
Малый вес
Пользователю незачем загружать на свой компьютер все приложение целиком, чтобы начать с ним работать (фанаты Java-апплетов кусают локти!). Даже весь интерфейс не обязательно загружать. Достаточно загрузить только ту его часть, которая требуется для выполнения конкретной текущей задачи. Благодаря этому веб-приложения невелики по объему, быстро загружаются и быстро отвечают на действия пользователей. Даже самое сложное приложение загружается всего за несколько секунд, и даже меньше, и то только, если канал слишком узкий.
Переносимость
Так как на компьютере пользователя ничего не устанавливается, пользователь может работать с приложением из любого места. "Любое место" буквально означает любое место на Земле. Вы можете загрузить веб-приложение, сидя в офисе, валяясь на диване дома, загорая на Гавайях, и во всех случаях оно будет работать без сучка и задоринки.
Простота и надежность
Никаких проблем с закрытыми протоколами и номерами портов. Если ваш файрвол пропускает обычные веб-страницы (а какой не пропускает?), вы загрузите любое веб-приложение. Так что пользователю не приходится забивать себе голову различными ненужными вещами или вообще беспокоиться о них. Он просто запускает браузер и набирает URL. Все просто. И даже больше, так как приложение работает в защищенной среде браузера, оно не сможет никак навредить компьютеру пользователя (упс). Никаких тебе "это приложение замедляет работу системы" или "приложение совершило недопустимую операцию". Все это в прошлом.
Архитектура приложения невидима для пользователя
Программисты посчитали что для хранения данных требуется отдельный сервер под базу данных? Решили поменять компьютеры на более мощные? Решили усилить компьютеры, добавив еще пару сотен тысяч? В мире веб-приложений это вполне возможно. Чего не скажешь о мире настольных программ. в мире веб-приложений несложно строить и поддерживать подобного рода многокомпьютерные системы. В любом случае пользователь даже не подозревает о том, как устроено все хозяйство на стороне сервера.
Разумеется веб-приложения никогда не смогут делать некоторые вещи, которые доступны настольным приложениям - я об этом речь и не веду. Вы никогда не сможете из браузера создавать сложные трехмерные модели. Веб-приложения не могут никак заменить системные программы. Не смогут по крайней мере в ближайшем будущем. Однако, что касается прикладных программ, дни настольного ПО сочтены.
Добро пожаловать на шоу. Сегодня в нашей программе: начало конца настольного ПО.