Страницы

Распутать всемирную путанину

Совокупность современных стандартов предоставления информации во всемирной сети, а также средств их просмотра чрезвычайно сложна, несистемна, избыточна. Полноценные браузеры - это огромные комплексы кода, неподвластные полному пониманию человеком. Только крупные компании могут себе позволить разрабатывать и поддерживать такое ПО, да и то немногие. Наличие открытых исходных кодов ничего по сути не меняет. Свободное сообщество в нынешнем виде может либо только плестись за могущественными корпорациями, либо самоизолироваться. Можно ли это изменить?

Нет.

Глобально не получится - всё будет идти своим чередом по законам энтропии. Локально можно, но это и похоже на самоизоляцию. Впрочем, если применять её как часть, имеющую связь с общим, то это может быть практичным решением. На общем уровне это даже увеличит общий хаос, но нас это не должно беспокоить, как не беспокоит то, что наведения порядка в жилище увеличивает мировую энтропию.

Само по себе разделение представления документов на содержимое, оформление и программную логику прекрасно. Претензии возникают к конкретному наполнению этих абстракций - HTML,CSS,JavaScript и особенностям их поддержки. Безусловно, в этом направлении было сделано много положительного в виде HTML5 и WASM, но к появлению действительно прекрасного инструмента для сети это не сильно приблизило.

Можно выработать такие форматы, работа с которыми была бы лучше и для разработчика, и для пользователя, и отображение которых могло бы быть осуществлено легковесным специализированным просмотрщиком, не исключая возможности работы через обычные браузеры. Каким бы хотелось видеть технологии:

  1. Исходный язык разметки должен быть не слишком тяжеловесным, чтобы не оттягивать на себя внимание от данных. Он должен быть более гибок в выборе специальных символов, чтобы позволять удобно представлять содержимое разных типов без необходимости в избыточном экранировании. Предопределённые типы разметки должны быть хорошо упорядочены.
  2. Язык программирования для документов должен быть не полным алгоритмически с ограниченным количеством производимых действий. Это позволит придать документам, порой, необходимой динамичности, но не позволит непроизводительно отжирать ресурсы по разгильдяйству или злой воле разработчиков страниц. Необходимость в WEB-приложениях, которым в свою очередь нужен полный по Тьюрингу язык, ещё не означает, что эту функцию должен выполнять язык для документов - это ложное обобщение.
  3. Язык оформления не должен содержать головоломных правил применения к элементам. Предопределённые элементы стиля, где возможно, должны быть чётко определены для однообразного представления. Не должен содержать правил, позволяющих потреблять много ресурсов.
  4. Языки исходных форм, в целом, должны быть более строги к ошибкам, должны иметь численные ограничения на количество элементов. Также, они должны иметь близкое к изоморфному двоичное представление, предпочтительное для просмотра. Это позволит уменьшить накладные расходы и вероятность ошибок, связанных с необходимостью разбора кода в обычной текстовой кодировке. Языки должны быть хорошо разделены и поддерживать концепцию модульности для лучшего разделения данных.
  5. Язык приложений может быть похож на WASM или даже им и быть. Взаимодействие программы на нём с отображаемой страницей следует ограничить такой формой, которая позволяла бы не только выполнение на клиентской стороне, но и на стороне сервера, таким образом не обязуя, но позволяя быть браузеру исключительно тонким клиентом, не ограничивая при этом пользователя.

Совместимость с внешним миром можно обеспечить трансляцией:

  1. При запросе документов обычным браузером сервер может отдавать данные, переведённые на поддерживаемые им форматами. Учитывая богатство нынешних технологий эта операция может выполняться гарантировано, тем самым не превращая технологию в закрытый инструмент.
  2. Для обратной поддержки облегчённым браузером, заточенным только на более легкие и строгие технологии следует воспользоваться тем же методом. Постепенное увеличение поддержки обычных форматов нужно осуществлять не за счёт раздувания кода браузера, а за счёт транслятора, преобразующего богатсво внешнего мира в более скупое внутренне представление. Это позволит держать ядро технологии простым, избежав участи лёких решений, по мере развития превращающихся в тех же тяжеловесных монстров, каковым они должны были противопоставляться. Второе положительное свойство заключается в возможности постепенной миграции с более сложных на более простые.

2 комментария:

  1. Лайк! Не понял про язык исходных форм. Какие более конкретные соображения у вас есть по ограниченному языку документов, и почему он вообще может быть нужен?

    ОтветитьУдалить
    Ответы
    1. Язык и формат документа - это термины для немного разных точек зрения на одно и то же понятие, поэтому язык не то, чтобы нужен, от него просто никуда не деться. Можно лишь спроектировать его либо криво, либо прямо. Конкретные соображения - это долгий разговор и большая работа, которую неплохо бы задать неким исходным посылом, вроде этой заметки.

      Удалить