Исследование Мэри Микер и Лян Ву из KPCB инициировало в сети взрыв троллинга со стороны тусовки, занимающихся мобильными приложениями, а так же бурное обсуждение перспектив развития интернета.
Неоднократно могильным колоколом озвучивалась мысль, что будущего в гипертекстовом вэбе нет, что вебсайты уйдут в прошлое так же, как исчезает печатная пресса, а web-разработчиков вытеснят программисты, создающие native apps для планшетов и телефонов.
В связи с этим поделюсь точкой зрения на наше мобильное будущее: web проживёт дольше мобильного телефона, который выйдет из употребления существенно раньше, чем мы сейчас все ожидаем. Я бы вообще отвёл сотовому телефону ещё лет 10, максимум 15 жизни. Но о телефонах в другом месте, а тут я бы хотел обсудить о перспективы развития веба и мобильных приложений.
Несомненно, HTML был и остаётся предназначенным для манипулирования статической текстовой и графической информацией. Но прошу обратить внимание на несколько интересных моментов, описанных ниже.
Прежде всего – это тот факт, что графические web интерфейсы появились от хорошей жизни: производительность процессора, размер памяти и скорость передачи информации выросли до такой степени, что стало можно делать богатые web приложения с разумным временем рендеринга. К примеру, google docs.
До этого интерфейсным балом правили приложения, приближенные к железу. К примеру, flash (в основном игры да баннеры, но тем не менее). Ещё ранее, во времена тотально экономии килобайтов траффика в сети царили десктопные GUI клиенты (те же «The Bat!», «Semagic»).
Возврат к GUI клиентам (теперь уже мобильным) мы наблюдаем от того, что на телефонах хорошей жизни никогда и не было. Оперативная память выросла до приемлемого для интерпретаторов размера (около 1gb) лишь год-два назад, скорость интернета вне зон покрытия Wi-Fi только сейчас становится минимально-достаточной, а производительность процессоров сильно ограничивается энергопотреблением — революции в энергоэлементах до сих пор так и не случилось.
Но! Как только все эти ограничения будут сняты, немедленно, я уверен, будет очень быстрый откат к унифицированным декларативным языкам описаний интерфейсов типа HTML. Причём эти описания непременно будут храниться в облаках, а не в виде локальных копий, как это сейчас делается в полунативных приложениях (native wrapper + HTML).
Аргументирую: в чём слабость локальных клиентов по отношению к облачным веб-клиентам? В проблеме обновления версии интерфейса, отображаемого у пользователя, в развёртывании новых версий. Нынешние способы написания и обновления нативных приложений на мобильных устройствах — это какой-то ад.
Вначале нам необходимо написать приложение для устройства, причём для каждого типа устройства надо готовить своё приложение (а только у одного apple видов устройств аж 11 штук, причём 9 из них имеют активную аудиторию более 5%). Затем нам нужно залить обновлённую версию приложения в какой-то сетевой репозиторий. На этом мытарства не кончаются: теперь необходимо как-то уведомить всех пользователей, что надо бы приложение обновить, после чего смиренно ждать и надеяться, что большинство приложение, всё-таки, обновят. И ладно, если это – апгрейд аппа, а если выпущена версия, которая исправляет критическую ошибку?
Создателям приложений просто удобнее, когда интерфейс описывается декларативно, не требует перекомпиляции и распространяется централизованно. Причём чем более централизованней, тем более удобнее будет такая упаковка и дистрибьюция произведений.
Процесс проникновения приложений-сайтов на мобильные терминалы тормозиться исключительно причинами описанными вначале: не всегда доступна стабильная связь, нет гарантированной толщины канала, то, что чистый вэбапп пока что медленнее полностью нативного приложения.
С другой стороны не надо думать, что и с web приложениями на мобильных терминалах всё хорошо. Слабостью web решений является крайняя специализация их, «заточенность», под статический контент и тактильное управление. Чтобы взаимодействовать с интерфейсами, описанными на HTML/CSS/JS обязательно понадобиться наведение чего-то на активный элемент (курсора, пальца) и механический клик (тап, щелчок, свайп). Это сильно затрудняет взаимодействие с интерфейсами, не предполагающими тактильного взаимодействия: к примеру, hands-free систем навигации в автомобилях с проекцией экрана на лобовое стекло.
Если же вспомнить о не текст-ориентированных интерфейсах, то становится совсем печально. К нетекстовым интерфейсам относятся аудио интерфейсы (Siri, различные виды IVR), способы динамического монтирования видео, создания графических коллажей. HTML — это язык текст-ориентированных интерфейсов. Для описания нетекстового ввывода он подходит слабо.
И, да, что же, всё-таки, станет с вебом в эпоху мобильных? Не побоюсь такого прогноза: мобильные аппы в моде ещё года на три-четыре. Затем на смену им придёт новый интерпретируемый язык описания интерфейсов. Будет ли язык этот развитием связки старого доброго HTML + JS (что весьма вероятно), или будет это полностью новый язык описания интерфейсов-взаимодействий (что, на мой взгляд, вероятно менее) – не скажу. В любом случае создание нового языка потребуется для миграцией с тактильно-ориентированного управления к бесконтактными способами управления устройствами.