具有開放優先級的眾籌 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 上發布一個想法,在你的博客上寫一個想法,或者在 CSSWG GitHub 存儲庫上添加一個描述全新功能的問題,可能會在討論中獲得一個新想法。 然而,這些想法要成為現實可能還有很長的路要走。 而且,鑑於標準討論的性質,可能不會完全按照您想像的方式發生。 提出這些東西很有價值,但很難估計最終實施的時間和成本。
同樣的問題也適用於非常受歡迎的容器查詢功能,Igalia 甚至在其常見問題解答中提到了容器查詢。 容器查詢是許多參與標準流程的人和瀏覽器供應商正在研究的東西,但是,這些討論還處於早期階段。 在這一點上,這不是可能的貨幣價值。
參與其中!
Open Prioritization 網站上提供了更多信息,以及回答您可能遇到的其他問題的詳細常見問題解答。 我對此感到很興奮,因為我總是熱衷於幫助設計人員和開發人員找到參與 Web 平台的方法。 這是我們的平台。 我們可以等待瀏覽器供應商允許使用某些東西,或者我們可以通過想法、錯誤報告和開放優先級來積極貢獻一點現金,以幫助使其變得更好。