Возможные этапы развития web-сайтов

В предыдущем статье мы разобрали основные проблемы современного веба. Если коротко, то проблема в отсутствии унифицированности устройств, операционных систем и браузеров. При разработке сайтов, мы сталкиваемся с небывалым количеством проблем по отображению сайта у разных пользователей и отработки элементов. Мы либо отбрасываем большую часть отсталых пользователей(старые устройства/операционные системы) или делаем изначально устаревший продукт.

Дальше мы попробуем разбить веб на два эволюционных пути и попробуем представить, как он будет развиваться в этих направлениях.

Путь 1. Все идет как шло

Если развитие сайтостроения будет продолжать двигаться в эту же сторону, то и здесь есть выход. В данный момент мир разработки сайтов предоставляет нам множество интересных инструментов для упрощения жизни разработчика. Для быстрой верстки и более унифицированного вида можно использовать CSS-фреймворки Bootstrap/Foundation/Другие. При правильной кастомизации их исходного стиля, не так сложно будет добиться вполне хорошего отображения готового продукта на разных устройствах и дисплеях.

Какое решение было бы идеальным? Полностью упакованный фреймворк, который бы работал по принципу компонентов и лайаутов (как в разработке андроид приложений), с автоматически-адаптирующимися величинами под дисплей пользователя. Заменить html на препроцессорный язык (как это обстоит с CSS), который работает по принципу наброски компонентов на лайауты. К каждому компоненту привязывается стиль, по принципу class/id в html. Таким образом мы получаем автоматизированную систему, которая адаптируется под разрешение дисплея, версию операционной системы или браузера.

В общий чертах, всю веб разработку можно перенести в один язык программирования (и точно уж не в js, хватит с нас бэкенщиков на nodejs), который уже транслируется в понятную, для браузера, упаковку html/css/js. Идеально подходит ООП структура языка, для работы с компонентами и для переопределения их. Надеюсь найдутся умельцы, которые реализуют подобную задумку в лучшем свете.

Путь 2. Слава унифицированности.

А теперь поговорим про утопию. Представим, что пользователь перешел по адресу сайта и автоматически у него открылся сайт как мобильное приложение. Как это возможно без рисков? При переходе по адресу сайта «будущий браузер» выкачивает набор инструкций (по принципу работы JVM), которые загружаются в оперативную память и запускается наше приложение. Загруженные инструкции будут дергать за ниточки уже существующие компоненты и их стили. Все иконки можно хранить в векторе, размер их будет минимальный, изображения подгружать ленивой загрузкой. В общей сложности приложение может занимать не больше 5 мб для полноценной работы. Большинство современных сайтов сейчас весят приблизительно от 5 мб.

В итоге мы получаем принцип работы сайта, но уже вся отрисовка элементов и отработка будет на структуре операционной системы, а не на различных браузерах. Тем самым глюки и несостыковки сводятся к минимуму.

Заключение

Конечно на эту тему можно размышлять много и долго, но я попытался сжать размышления до минимума. К сожалению, все идет по 50% первого пути. Нет унификации в инструментах, а все так же разрабатываются костыли для других велосипедов. Одна часть «умельцев» пытается превратить JS в полноценный язык программирования, а другая разрабатывает на устаревших подходах. Вот такой вот современных веб..