Возможности краудфандинговой веб-платформы с открытой расстановкой приоритетов
Опубликовано: 2022-03-10В своем последнем посте я описал некоторые интересные функции CSS, некоторые из которых доступны только в одном браузере. У большинства веб-разработчиков есть некоторые функции, которые они хотели бы, чтобы они были более широко доступны или были доступны вообще. Я призываю разработчиков использовать, обсуждать и сообщать об ошибках реализации в браузерах, чтобы попытаться реализовать функции, однако что, если бы существовал более прямой способ сделать это? Что, если бы веб-разработчики могли собраться вместе и профинансировать разработку этих функций?
Это модель, которую консалтинговая компания с открытым исходным кодом Igalia запускает в своем эксперименте с открытой приоритизацией. Основная идея — модель краудфандинга для функций веб-платформы. Если мы хотим, чтобы функция была реализована, мы можем внести небольшую сумму денег, чтобы помочь финансировать эту работу. Если цель достигнута, функция может быть реализована. Эта статья основана на интервью с Брайаном Карделлом, защитником разработчиков в Igalia.
Что такое открытая расстановка приоритетов?
Идея открытой расстановки приоритетов заключается в том, что сообщество может выбирать и помогать финансировать разработку функций. Igalia выбрала список целевых функций, все из которых реализованы или в настоящее время реализуются по крайней мере в одном движке. Таким образом, финансирование функции поможет сделать ее доступной для разных браузеров и более удобной для нас как разработчиков. Первоначальный список таков:
- Цвета CSS
lab( )
в Firefox -
:focus-visible
в WebKit/Safari -
inert
HTML в WebKit/Safari - Аргументы списка селекторов для
:not( )
в Chrome - Поддержка CSS-сдерживания в WebKit/Safari
- Поддержка CSS
d
(путь SVG) в Firefox
Веб-сайт дает более подробное объяснение каждой функции и все детали того, как будет работать финансирование. Igalia работает с Open Collective над управлением залогами.
Кто такая Игалия?
Возможно, вы никогда не слышали об Игалии, но вам будет полезна их работа. Igalia работает с браузерными движками и обладает специальными знаниями обо всех движках. У них было второе место по количеству коммитов в исходниках Chrome и WebKit в 2019 году. Если вам нравится CSS Grid Layout, то вам следует поблагодарить Igalia за реализацию в Chrome и WebKit. Работа по добавлению этой функции в эти браузеры выполнялась командой Igalia, а не инженерами, работающими внутри браузерной компании.
Именно это делает эту идею такой убедительной. Это не тот случай, когда вы собираете немного денег, а затем пытаетесь убедить кого-то выполнить работу. У Igalia есть послужной список выполнения работы. Разработчикам нужно платить, поэтому с помощью краудсорсинга мы можем выбирать, над чем работать дальше. У Igalia также уже есть отношения с движками, чтобы любая предложенная функция могла быть успешной.
Примут ли браузеры эти функции, если мы их профинансируем?
Тот факт, что Igalia уже имеет отношения с командами разработчиков браузеров и уже обсудил с ними выбранные функции, означает, что в случае финансирования мы должны увидеть функции в браузерах. И уже есть прецеденты, когда основные функции финансируются третьими сторонами и разрабатываются Igalia. Реализация Grid Layout в Chrome и WebKit финансировалась Bloomberg Tech. Они были разочарованы отсутствием реализации Grid Layout, и именно Bloomberg Tech предоставила деньги на разработку этой функции в течение нескольких лет.
Chrome и WebKit были рады реализации; не было разногласий по поводу добавления этой функции. Скорее, это был вопрос расстановки приоритетов. У браузеров была другая работа, которая считалась более приоритетной, поэтому финансовые обязательства и время разработчиков были направлены на что-то другое. Функции, которые были выбраны для этой первоначальной попытки краудфандинга, также не вызывают споров с точки зрения их реализации. Если работа может быть выполнена, то двигатели, скорее всего, примут ее. Совместимость — вещи, работающие одинаково в разных браузерах — это то, о чем заботятся все поставщики браузеров. Для двигателя нет никакой выгоды отставать. По сути, мы просто обходим внутренний процесс определения приоритетов для этой функции.
Почему браузеры просто не делают этого?
Я спросил Брайана, почему браузерные компании сами не финансируют эти вещи. Он объяснил,
«Люди могут подумать, например, что «у Apple все деньги в мире», но это игнорирует сложные реалии. Дело Apple не в их веб-браузере. На самом деле, веб-браузер сам по себе ни для кого не является средством зарабатывания денег. Браузеры и стандарты являются добровольными, они являются общим достоянием. Однако с точки зрения затрат браузеры значительны. Они намного сложнее, чем многие из нас думают. Сегодня только 3 организации инвестировали много лет и миллионы долларов в год, необходимые для развития и поддержки проекта движка рендеринга. Любой из них уже делает огромные и беспрецедентные инвестиции в общее достояние».
Далее Брайан отметил значительные инвестиции Firefox в Servo и Google в LayoutNG, проекты, которые улучшат работу браузера, а также позволят реализовать новые функции платформы. Любой браузер может реализовать в своем движке многое, но то, как эти функции расставлены по приоритетам, не всегда может соответствовать нашим потребностям как разработчиков.
Мне пришло в голову, что, финансируя реализацию браузера, мы делаем то же самое, что и для других продуктов, которыми пользуемся. Многие из нас разработали плагин для необходимой функции в CMS или заплатили третьей стороне за его предоставление. Разработчики CMS тратят свое время на работу над основным продуктом, следя за тем, чтобы он был надежным, безопасным и актуальным. Без основного продукта добавление плагинов было бы невозможно. Однако третьи стороны могут вносить свой вклад в эту платформу, и в некотором смысле это то, что мы можем сделать с помощью открытой расстановки приоритетов. Покажите, что функция стоит того, чтобы мы могли пожертвовать немного денег, чтобы получить ее за черту.

Как это согласуется с такими проектами, как Web We Want?
SmashingConf поддержал проект Web We Want, в рамках которого разработчики предлагали идеи веб-платформ для обсуждения и голосования на сцене на конференциях. Я участвовал в нескольких из этих мероприятий в качестве ведущего и члена жюри. Мне было интересно, как открытая расстановка приоритетов согласуется с этими существующими усилиями. Брайан объяснил, что это совершенно разные вещи, сказав:
«…если бы меня спросили, что может сделать мой дом лучше, я бы назвал миллион вещей. Некоторые из них даже отдаленно не практичны, они просто были бы очень аккуратными. Но если вы скажете, составьте список вещей, которые вы могли бы сделать с бюджетом для каждой из них, мой список будет значительно более практичным и связанным с реальностями, которые, как я знаю, существуют.
В конце месяца, если вы скажете: «Вот ваш список, а вот 100 долларов, что вы будете с ним делать?» это очень прямой вопрос, который помогает мне добиться чего-то практического. Возможно буду красить. Может быть, я куплю новый свет. Или, может быть, я сэкономлю на несколько месяцев на что-то более дорогое».
Проект Web We Want задает открытый вопрос, он спрашивает, чего мы хотим от платформы. Многие из желаний не являются вещами, которые уже существуют в качестве спецификации. На самом деле начать реализовывать любую из этих вещей означало бы начать с самого начала, с идеей, которую нужно взять прямо со стадии спецификации. Определенных моментов мало, и установить цену на них будет очень сложно.
Возможности, выбранные для этого первого открытого эксперимента по приоритизации, намеренно ограничены по объему. У них уже есть реализация; у них есть спецификация, и Игалия уже поговорила с сопровождающими браузера, чтобы убедиться, что функции готовы к работе, но не относятся к непосредственным приоритетам.
Поддержка этого проекта означает поддержку конкретного этапа разработки, который может произойти в разумно короткие сроки. Публикация идеи в Web We Want, изложение идеи в своем блоге или добавление проблемы с описанием совершенно новой функции в репозиторий CSSWG GitHub потенциально может привлечь новую идею к обсуждению. Однако эти идеи могут иметь долгий и медленный путь к воплощению в жизнь. И, учитывая характер дискуссий о стандартах, вероятно, все произойдет не так, как вы себе представляли. Ценно предлагать эти вещи, но очень сложно оценить время и затраты на окончательную реализацию.
Та же проблема актуальна и для столь востребованной функции контейнерных запросов, Igalia зашла так далеко, что упомянула контейнерные запросы в своем FAQ. Контейнерные запросы — это то, что изучают многие люди, участвующие в процессе разработки стандартов, и производители браузеров, однако эти обсуждения находятся на ранней стадии. На данный момент это не то, что можно было бы оценить в денежном выражении.
Втягиваться!
Дополнительную информацию можно найти на сайте Open Prioritization, а также подробный FAQ с ответами на другие вопросы, которые могут у вас возникнуть. Я в восторге от этого, потому что я всегда стремлюсь помочь дизайнерам и разработчикам найти способы участия в веб-платформе. Это наша платформа. Мы можем ждать, пока поставщики браузеров предоставят что-то для использования, или мы можем активно вносить свой вклад через идеи, отчеты об ошибках и немного денег с помощью Open Prioritization, чтобы помочь сделать его лучше.