Иерархические файловые системы, файлы и программы, которые с ними работают, стали настолько привычными, что долгое время это решение считались единственно верным. С появлением веб-приложений мы узнали, что всё может быть иначе и намного лучше.
Веб-приложения нередко сравнивают с текстовыми терминалами из семидесятых-восьмидесятых годов, но нужно понимать, что это лишь аналогия, подмечающая некоторые общие черты — необходимость в наличии сервера и возможность работать с ним удалённо. Однако с появлением веб-сервисов мы не вернулись назад, а наоборот, объединили две прежних концепции и получили ценные новые качества.
Любое веб-приложение состоит из двух равноправных частей: кода, работающего на сервере (или на серверах), и кода, загружаемого в браузер и исполняющегося локально. В каждый современный браузер встроен интерпретатор языка JavaScript, на котором, собственно, и написана та часть приложения, которую мы видим. Информация между клиентом и сервером передаётся асинхронно, то есть по мере необходимости. Интересный момент: клиент может запрашивать у сервера не только данные, но и части программы, которые тут же и будут исполнены.
Эта непростая схема даёт массу преимуществ: софт больше не нужно устанавливать — установка происходит на лету, равно как и обновление; данные больше не нужно сохранять — сохранение теперь автоматическое; скорость и качество обмена информацией можно довести до невиданных высот (примером тому служит хотя бы многопользовательский режим в Google Docs). Есть и другие положительные эффекты: данные, например, всегда сохранны и к ним можно получить доступ с любого подключённого к интернету компьютера в любое время.
Главный же недостаток — возможная потеря контроля над данными и необходимость непрерывно использовать услуги компании-разработчика. Собственно, отсюда и слово «сервис». Оно не является синонимом веб-приложения, но одно с другим почти всегда идёт рука об руку.
Следующий важный этап развития приложений, который уже вошёл в нашу жизнь, — это программы для мобильных устройств. Может показаться, что они напоминают программы для ПК, но отличий от прошлых двух поколений софта здесь столько, что знак равенства будет неуместным.
Мобильный телефон или планшет далеко не всегда имеет стабильное соединение с интернетом и куда больше ограничен в ресурсах, чем настольный компьютер, и это стало причиной для частичного возвращения в прошлое. Как и программы для ПК, мобильные приложения требуют установки и хранят данные локально. Но те преимущества, которыми обладали веб-приложения, не потеряны.
Очень часто мобильные приложения имеют возможность отправлять данные на сервер или являются аналогами веб-клиентов. В случае с iOS синхронизация уже доступна на системном уровне — через фирменный сервис iCloud. Установка и обновление упрощены настолько, насколько это возможно, а безопасность обеспечивается благодаря курируемым магазинам приложений.
Но главное, что добавилось с приходом мобильных устройств, — это «выход в реальный мир»: доступ к камере, GPS и прочим датчикам и, конечно, возможность иметь устройство с собой постоянно. Это открыло дорогу множеству приложений, которые раньше просто не были возможными.
Несложно пронаблюдать, что каждый из этапов развития происходил с появлением какой-то принципиально новой технологии. Персональные компьютеры и программы для них последовали за появлением и удешевлением микропроцессоров. Веб-приложения появились сразу после того, как быстрый интернет стал нормой. Мобильные приложения появились вместе с доступным мобильным интернетом и смартфонами. И каждый раз открывались новые возможности.
Дальше нас тоже наверняка ждут изменения. Какими они могут быть? Вот несколько предположений, которые можно сделать, исходя из тех изменений, что заметны уже сейчас.
Хранение всего в облаке. Сохранность данных и незаметная синхронизация между устройствами потихоньку становится нормой. iCloud, Google Drive, SkyDrive, Dropbox — эти и другие сервисы будут приспосабливаться для сохранения всё более разнообразной информации. В какой-то момент каждое новое приложение будет уметь синхронизировать всё, что мы в нём оставляем.
Поддержка социального графа и «многопользовательские режимы». Google Docs не последняя программа, в которой над одним документом смогут работать сразу несколько пользователей. Поддержка связей из социальных сетей здесь играет немаловажную роль: многие мобильные приложения уже сейчас просят пользователей подключить аккаунты соцсетей — эта функциональность будет всё более и более востребованной. В новых версиях операционных систем подключение соцсетей происходит уже на системном уровне.