На днях я слушал последний подкаст Shop Talk Show во время утренней пробежки. У них была Джен Симмонс на шоу, рассказывающая (среди прочего) о процессе стандартизации. Как и следовало ожидать, это отличный разговор — Джен супер умная и долгое время выполняла отличную, значимую работу.
Среди вопросов, которые она обсуждала, — забота о новых возможностях браузера, потому что однажды поставленный, он там навсегда. Большинству из нас не нужно беспокоиться о вещах на том же уровне, потому что:
… вы всегда можете удалить весь свой код позже. Вы всегда можете сказать: «О, эта штука, которую я быстро отправил для своего проекта, была плохой идеей. Давайте уничтожим это и сделаем это позже ». Но в Интернете есть две вещи. Во-первых, нам не нужно менять его и отправлять позже, почти всегда. Если мы поторопимся и отправим подсетку, а подсетка дрянная, нет, вроде, ее починки. Мы застряли с этим.
Это постоянство в сети всегда было одной из характеристик сети, которая поражает меня больше всего. Вот почему вы можете загружать сайты сегодня на Newton, и они просто будут работать. Это настолько резко контрастирует со всем, что я могу придумать. Устройства не созданы таким образом. Продукты вообще, цифровые или иные, редко создаются таким образом. Родные платформы не построены так. Это обязательство не ломать то, что было создано, просто невероятно.
Еще один важный момент Джен, который нужно запомнить:
… И еще одно: мы не решаем вопрос для одного сайта. Мы не решаем проблемы для facebook.com, youtube.com, codepen.io или … для чего угодно. Мы разрабатываем решения для всей сети и для каждого варианта использования одновременно.
Позже она приводит пример, обсуждая, как даже нечто, кажущееся простым, подчеркивает, становится намного более интенсивным, когда вам нужно решить для всех:
Ну, а как насчет этих языков, которые набираются по вертикали? Какая типография в Японии? Что нужно для такого сценария, который полностью отличается от латинского алфавита? И об этом идет долгий разговор, а затем: «Ух ты, мы поставляем что-то, что действительно работает для всех языков и всех сценариев по всему миру». Или это почти работает, и нам не хватает нескольких частей, но мы посвящены идти вперед и заканчивать эти работы, как только сможем.
Существует много мыслей и размышлений, которые влияют на решение, что попадает в эту невероятную платформу, а что нет.
Еще один человек, которого я очень уважаю и который долгое время выполнял невероятно важную работу, — это Алекс Рассел. В частности, он потратил абсурдное количество времени и энергии на то, чтобы быть осторожным в отношении чрезмерной уверенности в JavaScript, которая приводит к большинству текущих проблем с производительностью сети.
Я подумал о комментариях Джен, когда увидел, как один человек заявил, что Алекс пытается «продать вам сказки об использовании платформы».
Я не хочу выделять этого человека, потому что я здесь не для того, чтобы поощрять кучи, а потому, что они едва ли не первые, кто выражает такое общее мнение. Но это утверждение о «сказке об использовании платформы» действительно застряло у меня, потому что оно кажется… неправильным.
Так много внимания было уделено планированию и созданию веб-платформы, чтобы гарантировать, что даже при добавлении новых функций они добавляются таким образом, чтобы не нарушать работу сети для тех, кто использует старое устройство или браузер. Можете ли вы сказать то же самое для любой структуры там? Я не имею в виду, чтобы меня воспринимали как бросающую тень (как говорят дети). Создание реальной веб-платформы требует более глубокого уровня приверженности такого рода вещам из-за необходимости.
И поскольку некоторые фреймворки, только сейчас, учитывая, как они масштабируются и растут в разных географических регионах с разными ограничениями и языками, веб-платформа создавала это в течение многих лет. Процесс стандартизации кажется нам очень сложным из-за невероятного количества мелочей, которые становятся критическими. Эта проблема безопасности, которая может может быть проблемой? Возможно, вы чувствуете себя комфортно, принимая на себя этот риск, но когда вы создаете что-то, что каждый везде будет использовать, это становится веской причиной не отправлять.
Люди много говорят о том, что сеть по умолчанию доступна или эффективна, и хотя она не идеальна, она также не так уж далека от истины. Создание платформы означает, что вы должны расставить приоритеты в этих вещах.
Если вы вообще беспокоитесь о том, чтобы достигать людей за пределами маленьких пузырьков, в которых мы все живем, то использование платформы не может быть сказкой: она должна быть основой для всего, что мы строим.
Это не значит, что основания достаточно или всегда правильно.
Есть ли ограничения? Абсолютно! Есть причина, по которой у нас все еще есть орган по стандартизации, примерно через 26 лет после того, как HTML был впервые указан: потому что работа не выполнена и никогда (стук по дереву) не будет. (Именно поэтому я нахожу очень обнадеживающим, что такие люди, как Николь Салливан, усердно трудятся над поиском некоторых вещей, для которых нам нужны фреймворки, которые, вероятно, должны быть вместо этого в браузере.)
Сеть процветает благодаря здоровой напряженности между стабильностью и хаосом экспериментов. Вполне нормально и время от времени необходимо использовать инструменты, чтобы усилить проблемы и ограничения, которые мы можем иметь в Интернете. У меня вообще нет проблем с этим.
Но важно, что мы делаем это очень осторожно, потому что есть определенные компромиссы.
Для создания стандартов, которые превращают его в платформу, каждой функции уделяется особое внимание, чтобы минимизировать риски безопасности. Каждая новая функция должна быть тщательно рассмотрена с точки зрения доступности, чтобы убедиться, что она не только не причиняет вреда, но и что вспомогательные технологии содержат всю информацию, необходимую для предоставления людям полезного опыта. Производительность должна быть на первом месте для каждого нового стандарта, чтобы гарантировать, что его доставка не вызовет раздувания или других проблем с производительностью.
И каждая из этих вещей должна рассматриваться не просто в одном контексте, а для всех сайтов, а также для географических регионов, языков, устройств и клиентов для просмотра.
Можете ли вы с уверенностью сказать, что в инструментах и средах, которые мы используем или создаем, используется тот же уровень заботы?
Используйте платформу до тех пор, пока не сможете, а затем увеличьте то, чего не хватает. А когда вы расширяете, делайте это с осторожностью, потому что ответственность за обеспечение безопасности, доступности и производительности, которую платформа пытается предоставить вам по умолчанию, теперь полностью ложится на вас.