具有开放优先级的众筹 Web 平台功能
已发表: 2022-03-10在我的上一篇文章中,我描述了一些有趣的 CSS 特性——其中一些只在一个浏览器中可用。 大多数 Web 开发人员都有一些他们希望更广泛可用的功能,或者根本可用。 我鼓励开发人员使用、讨论和提出浏览器的实现错误来尝试实现功能,但是,如果有更直接的方法来做到这一点呢? 如果 Web 开发人员可以聚在一起为这些功能的开发提供资金呢?
这是开源咨询公司 Igalia 通过他们的开放优先级实验推出的模型。 基本思想是网络平台功能的众筹模型。 如果我们想要实现某个功能,我们可以投入少量资金来资助这项工作。 如果达到了目标,就可以实现该功能。 本文基于对 Igalia 开发人员倡导者 Brian Kardell 的采访。
什么是开放优先级?
开放优先级的想法是社区可以选择并帮助资助功能开发。 Igalia 选择了一系列目标功能,所有这些功能都已在至少一个引擎中实现或当前正在实现。 因此,资助一项功能将有助于它成为跨浏览器可用,并且对我们作为开发人员更有用。 初始名单是:
- Firefox 中的 CSS
lab( )
颜色 :focus-visible
在 WebKit/Safari 中- WebKit/Safari 中的 HTML
inert
- Chrome 中
:not( )
的选择器列表参数 - WebKit/Safari 中的 CSS 包含支持
- Firefox 中的 CSS
d
(SVG 路径)支持
该网站对每个功能以及资金如何运作的所有详细信息进行了更多解释。 Igalia 正在与 Open Collective 合作管理这些承诺。
伊加利亚是谁?
您可能从未听说过 Igalia,但您会从他们的工作中受益。 Igalia 致力于浏览器引擎,并且拥有所有引擎的专业知识。 他们在 2019 年对 Chrome 和 WebKit 源代码的提交数量第二高。如果你喜欢 CSS 网格布局,那么你要感谢 Igalia 在 Chrome 和 WebKit 中的实现。 将功能添加到这些浏览器的工作是由 Igalia 的一个团队完成的,而不是在浏览器公司内部工作的工程师。
这就是使这个想法如此引人注目的原因。 这不是筹集一些钱然后试图说服某人做这项工作的情况。 Igalia 有做这项工作的记录。 开发人员需要获得报酬,因此通过众包资金,我们能够选择下一步的工作。 Igalia 也已经与引擎建立了关系,以使任何建议的功能都可能获得成功。
如果我们资助它们,浏览器会接受这些功能吗?
事实上,Igalia 已经在浏览器引擎团队中建立了关系,并且已经与他们讨论了选定的功能,这意味着如果得到资助,我们应该会在浏览器中看到这些功能。 而且,由第三方资助并由 Igalia 开发的主要功能已经有了先例。 Chrome 和 WebKit 中的网格布局实现由 Bloomberg Tech 资助。 他们对缺乏网格布局实施感到沮丧,而彭博科技公司提供了几年来开发该功能的资金。
Chrome 和 WebKit 很乐意接受这个实现; 添加该功能没有争议。 相反,这是一个优先级问题。 浏览器还有其他被认为具有更高优先级的工作,因此财务承诺和开发人员时间被用于其他地方。 为最初的众筹尝试选择的功能在实施方面也没有争议。 如果工作可以完成,那么引擎很可能会接受它。 互操作性——跨浏览器的工作方式相同——是所有浏览器供应商都关心的事情。 引擎落后没有任何好处。 我们基本上只是绕过该功能的内部优先级流程。
为什么浏览器不做这些事情?
我问布赖恩,为什么浏览器公司不自己资助这些东西。 他解释说,
“例如,人们可能会认为‘苹果拥有世界上所有的钱’,但这忽略了复杂的现实。 苹果的业务不是他们的网络浏览器。 事实上,网络浏览器本身并不是任何人都可以赚钱的。 浏览器和标准是自愿的,它们是公地。 然而,在成本方面,浏览器是相当可观的。 它们比我们大多数人意识到的要复杂得多。 今天只有 3 个组织投入了多年和每年数百万美元来发展和维护渲染引擎项目。 他们中的任何一个都已经在公地进行了大规模且无与伦比的投资。”
Brian 继续指出 Firefox 对 Servo 的大量投资,谷歌对 LayoutNG 的大量投资,这些项目将改善浏览器体验,也使得实现平台的新功能成为可能。 任何浏览器都可以在他们的引擎中实现很多功能,但是这些功能在内部优先级的方式可能并不总是符合我们作为开发人员的需求。
我突然想到,通过资助浏览器的实施,我们正在做与我们使用的其他产品相同的事情。 我们中的许多人会为 CMS 中所需的功能开发一个插件,或者付费给第三方来提供它。 CMS 开发人员将时间花在核心产品上,以确保它是健壮的、安全的和最新的。 没有核心产品,添加插件是不可能的。 然而,第三方可以为该平台贡献部分,从某种意义上说,这就是我们可以通过开放优先级来做的事情。 表明一个功能值得我们承诺一些现金来完成它。
这如何适合我们想要的 Web 等项目?
SmashingConf 支持了 Web We Want 项目,在该项目中,开发人员提出了 Web 平台的想法,以便在会议的舞台上进行讨论和投票。 我作为主持人和小组成员参与了其中一些活动。 我想知道开放的优先级如何与这些现有的努力相适应。 布赖恩解释说这些是完全不同的事情,

“......如果你问我什么能让我的房子变得更好,我可以说出一百万件事。 其中一些甚至不实用,它们只是非常整洁。 但是,如果你说列出你可以做的事情,并为每件事情的成本制定预算——我的清单将更加实用,并且受我知道存在的现实的约束。
月底,如果你说“有你的清单,这是 100 美元,你会用它做什么?” 这是一个非常直接的问题,可以帮助我完成一些实际的事情。 也许我会画画。 也许我会买一些新的灯饰。 或者,也许我会把它存几个月,买一些更昂贵的东西。”
Web We Want项目提出了一个开放性问题,它询问我们想要平台做什么。 许多需求并不是作为规范已经存在的东西。 真正开始实施任何这些事情都意味着从一开始就开始,从规范阶段就需要一个想法。 几乎没有确定性,而且很难定价。
为第一个开放优先级实验选择的功能特意限制了范围。 他们已经有了一些实现; 他们有一个规范,并且 Igalia 已经与浏览器维护人员进行了交谈,以检查这些功能是否已准备好使用,但不属于当务之急。
支持这个项目意味着支持一个具体的开发块,这可以在相当短的时间内发生。 向 Web We Want 发布一个想法,在您的博客上写一个想法,或者在 CSSWG GitHub 存储库上添加一个描述全新功能的问题,可能会在讨论中获得一个新想法。 然而,这些想法要成为现实可能还有很长的路要走。 而且,鉴于标准讨论的性质,可能不会完全按照您想象的方式发生。 提出这些东西很有价值,但很难估计最终实施的时间和成本。
同样的问题也适用于非常受欢迎的容器查询功能,Igalia 甚至在其常见问题解答中提到了容器查询。 容器查询是许多参与标准流程的人和浏览器供应商正在研究的东西,但是,这些讨论还处于早期阶段。 在这一点上,这不是可能的货币价值。
参与其中!
Open Prioritization 网站上提供了更多信息,以及回答您可能遇到的其他问题的详细常见问题解答。 我对此感到很兴奋,因为我总是热衷于帮助设计人员和开发人员找到参与 Web 平台的方法。 这是我们的平台。 我们可以等待浏览器供应商允许使用某些东西,或者我们可以通过想法、错误报告和开放优先级来积极贡献一点现金,以帮助使其变得更好。