Funktionen der Crowdfunding-Webplattform mit offener Priorisierung
Veröffentlicht: 2022-03-10In meinem letzten Beitrag habe ich einige interessante CSS-Features beschrieben, von denen einige nur in einem Browser verfügbar sind. Die meisten Webentwickler haben eine Funktion, von der sie wünschen, dass sie weiter verbreitet oder überhaupt verfügbar wäre. Ich ermutige Entwickler, Implementierungsfehler mit Browsern zu verwenden, darüber zu sprechen und sie zu melden, um zu versuchen, Funktionen zu implementieren, aber was wäre, wenn es einen direkteren Weg gäbe, dies zu tun? Was wäre, wenn Webentwickler zusammenkommen und die Entwicklung dieser Funktionen finanzieren könnten?
Dies ist das Modell, das die Open-Source-Beratung Igalia mit ihrem Open Prioritization-Experiment auf den Weg bringt. Die Grundidee ist ein Crowdfunding-Modell für Funktionen von Webplattformen. Wenn wir möchten, dass ein Feature implementiert wird, können wir einen kleinen Geldbetrag investieren, um diese Arbeit zu finanzieren. Ist das Ziel erreicht, kann das Feature implementiert werden. Dieser Artikel basiert auf einem Interview mit Brian Kardell, Developer Advocate bei Igalia.
Was ist offene Priorisierung?
Die Idee der offenen Priorisierung ist, dass die Community die Feature-Entwicklung auswählen und finanzieren kann. Igalia hat eine Liste von Zielfunktionen ausgewählt, die alle in mindestens einer Engine implementiert sind oder derzeit implementiert werden. Daher wird die Finanzierung einer Funktion dazu beitragen, dass sie browserübergreifend verfügbar und für uns als Entwickler benutzerfreundlicher wird. Die Anfangsliste ist:
- CSS
lab( )
-Farben in Firefox -
:focus-visible
in WebKit/Safari - HTML
inert
in WebKit/Safari - Auswahllistenargumente für
:not( )
in Chrome - CSS Containment-Unterstützung in WebKit/Safari
- Unterstützung von CSS
d
(SVG-Pfad) in Firefox
Die Website enthält weitere Erläuterungen zu den einzelnen Funktionen und alle Details zur Funktionsweise der Finanzierung. Igalia arbeitet mit Open Collective zusammen, um die Zusagen zu verwalten.
Wer sind Igalia?
Sie haben vielleicht noch nie von Igalia gehört, aber Sie werden von ihrer Arbeit profitiert haben. Igalia arbeitet mit Browser-Engines und verfügt über Fachwissen zu allen Engines. Sie hatten 2019 die zweithöchste Anzahl an Commits für die Chrome- und WebKit-Quelle. Wenn Sie CSS Grid Layout lieben, dann haben Sie Igalia die Implementierung in Chrome und WebKit zu verdanken. Die Arbeit zum Hinzufügen der Funktion zu diesen Browsern wurde von einem Team bei Igalia durchgeführt und nicht von Ingenieuren, die intern bei der Browserfirma arbeiteten.
Das macht diese Idee so überzeugend. Es geht nicht darum, etwas Geld aufzutreiben und dann zu versuchen, jemanden davon zu überzeugen, die Arbeit zu erledigen. Igalia hat eine Erfolgsbilanz bei der Arbeit. Entwickler müssen bezahlt werden, also können wir durch Crowdsourcing des Geldes auswählen, woran als nächstes gearbeitet wird. Igalia hat auch bereits die Beziehungen zu den Engines, um jede vorgeschlagene Funktion wahrscheinlich zum Erfolg zu machen.
Werden Browser diese Funktionen akzeptieren, wenn wir sie finanzieren?
Die Tatsache, dass Igalia bereits Beziehungen zu Browser-Engine-Teams hat und die ausgewählten Funktionen bereits mit ihnen besprochen hat, bedeutet, dass wir die Funktionen in Browsern sehen sollten, wenn sie finanziert werden. Und es gibt bereits Präzedenzfälle für wichtige Funktionen, die von Dritten finanziert und von Igalia entwickelt werden. Die Grid-Layout-Implementierung in Chrome und WebKit wurde von Bloomberg Tech finanziert. Sie waren frustriert über die fehlende Grid-Layout-Implementierung, und es war Bloomberg Tech, die das Geld zur Verfügung stellte, um diese Funktion über mehrere Jahre hinweg zu entwickeln.
Chrome und WebKit nahmen die Implementierung gerne an; Es gab keine Kontroverse über das Hinzufügen der Funktion. Vielmehr ging es um die Priorisierung. Die Browser hatten andere Arbeiten, denen eine höhere Priorität eingeräumt wurde, und der finanzielle Einsatz und die Entwicklerzeit wurden daher anderweitig verwendet. Die Features, die für diesen ersten Crowdfunding-Versuch ausgewählt wurden, sind auch in ihrer Umsetzung unumstritten. Wenn die Arbeit erledigt werden kann, werden die Motoren sie wahrscheinlich akzeptieren. Interoperabilität – Dinge, die in allen Browsern auf die gleiche Weise funktionieren – ist etwas, das allen Browseranbietern am Herzen liegt. Es hat keinen Vorteil, wenn ein Motor hinterherhinkt. Wir können im Wesentlichen nur den internen Priorisierungsprozess für das Feature umgehen.
Warum machen Browser das nicht einfach?
Ich habe Brian gefragt, warum die Browser-Unternehmen diese Dinge nicht selbst finanzieren. Er erklärte,
„Die Leute denken zum Beispiel vielleicht ‚Apple hat alles Geld der Welt‘, aber das ignoriert komplexe Realitäten. Apples Geschäft ist nicht ihr Webbrowser. Tatsächlich ist der Webbrowser selbst für niemanden ein gewinnbringendes Unterfangen. Browser und Standards sind freiwillig, sie sind Gemeingut. Kostenmäßig sind Browser jedoch beträchtlich. Sie sind viel komplexer, als die meisten von uns glauben. Nur 3 Organisationen haben heute die vielen Jahre und Millionen von Dollar investiert, die es braucht, um ein Rendering-Engine-Projekt zu entwickeln und zu pflegen. Jeder von ihnen tätigt bereits eine massive und beispiellose Investition in die Gemeingüter.“
Brian wies weiter auf die beträchtlichen Investitionen von Firefox in Servo und Google in LayoutNG hin, Projekte, die das Browsererlebnis verbessern und es auch ermöglichen werden, neue Funktionen der Plattform zu implementieren. Es gibt eine Menge, die jeder Browser in seiner Engine implementieren könnte , aber die Art und Weise, wie diese Funktionen intern priorisiert werden, entspricht möglicherweise nicht immer unseren Anforderungen als Entwickler.
Mir ist aufgefallen, dass wir durch die Finanzierung der Browser-Implementierung dasselbe tun, was wir für andere von uns verwendete Produkte tun. Viele von uns werden ein Plugin für eine benötigte Funktion in einem CMS entwickelt oder einen Drittanbieter dafür bezahlt haben, es bereitzustellen. Die CMS-Entwickler verbringen ihre Zeit damit, am Kernprodukt zu arbeiten und sicherzustellen, dass es robust, sicher und auf dem neuesten Stand ist. Ohne das Kernprodukt wäre das Hinzufügen von Plugins unmöglich. Dritte können jedoch Teile zu dieser Plattform beitragen, und in gewissem Sinne können wir das durch offene Priorisierung tun. Zeigen Sie, dass sich ein Feature für uns lohnt, um etwas Geld zu spenden, um es über die Linie zu bringen.
Wie passt das zu Projekten wie Web We Want?
SmashingConf hat das Web We Want-Projekt unterstützt, bei dem Entwickler Ideen für Webplattformen aufstellten, die auf Konferenzen auf der Bühne diskutiert und abgestimmt werden sollten. Ich war an mehreren dieser Veranstaltungen als Moderatorin und in der Jury beteiligt. Ich habe mich gefragt, wie die offene Priorisierung zu diesen bestehenden Bemühungen passt. Brian erklärte, dass dies ganz unterschiedliche Dinge seien, indem er sagte:
„... wenn Sie mich fragen würden, was mein Haus besser machen könnte, könnte ich eine Million Dinge aufzählen. Einige davon sind nicht einmal annähernd praktisch, sie wären einfach sehr ordentlich. Aber wenn Sie sagten, machen Sie eine Liste von Dingen, die Sie mit einem Budget für das, was jedes kostet, tun könnten – meine Liste wird wesentlich praktischer sein und an Realitäten gebunden sein, von denen ich weiß, dass sie existieren.
Wenn Sie am Ende des Monats sagen: "Da ist Ihre Liste, und hier sind 100 Dollar, was werden Sie damit machen?" Das ist eine sehr direkte Frage, die mir hilft, etwas Praktisches zu erreichen. Vielleicht werde ich malen. Vielleicht kaufe ich mir eine neue Beleuchtung. Oder vielleicht spare ich es für ein paar Monate für etwas Kostspieligeres.“
Das Projekt Web We Want stellt eine offene Frage, es fragt, was wir von der Plattform wollen. Viele der Wünsche sind keine Dinge, die bereits als Spezifikation existieren. Eines dieser Dinge tatsächlich umzusetzen, würde bedeuten, ganz am Anfang zu beginnen, mit einer Idee, die bereits in der Spezifikationsphase aufgegriffen werden muss. Es gibt nur wenige Gewissheiten, und es wäre sehr schwer, sie zu beziffern.
Die für dieses erste offene Priorisierungsexperiment ausgewählten Funktionen sind bewusst in ihrem Umfang begrenzt. Sie haben bereits einige Implementierungen; Sie haben eine Spezifikation, und Igalia hat bereits mit Browser-Betreuern gesprochen, um zu überprüfen, ob die Funktionen bereit sind, daran zu arbeiten, aber nicht in den unmittelbaren Prioritäten enthalten sind.
Dieses Projekt zu unterstützen bedeutet, einen konkreten Teil der Entwicklung zu unterstützen, der innerhalb eines angemessen kurzen Zeitrahmens erfolgen kann. Das Posten einer Idee bei Web We Want, das Verfassen einer Idee in Ihrem Blog oder das Hinzufügen eines Problems, das eine völlig neue Funktion im CSSWG-GitHub-Repo beschreibt, bringt möglicherweise eine neue Idee in die Diskussion. Diese Ideen können jedoch einen langen, langsamen Weg haben, um Wirklichkeit zu werden. Und angesichts der Art von Diskussionen über Standards wird es wahrscheinlich nicht genau so ablaufen, wie Sie es sich vorgestellt haben. Es ist wertvoll, diese Dinge vorzuschlagen, aber es ist sehr schwierig, Zeit und Kosten für eine endgültige Implementierung abzuschätzen.
Das gleiche Problem gilt für die begehrte Funktion von Container-Abfragen, Igalia ist so weit gegangen, Container-Abfragen in ihren FAQ zu erwähnen. Containerabfragen sind etwas, mit dem sich viele Personen befassen, die am Standardisierungsprozess und bei Browseranbietern beteiligt sind, diese Diskussionen befinden sich jedoch noch in einem frühen Stadium. Es ist an dieser Stelle nicht möglich, einen monetären Wert anzugeben.
Machen Sie mit!
Weitere Informationen finden Sie auf der Open Prioritization-Website, zusammen mit einer detaillierten FAQ, die andere Fragen beantwortet, die Sie möglicherweise haben. Ich freue mich sehr darüber, weil ich immer daran interessiert bin, Wege für Designer und Entwickler zu finden, sich an der Webplattform zu beteiligen. Es ist unsere Plattform. Wir können darauf warten, dass Dinge von Browser-Anbietern zur Nutzung freigegeben werden, oder wir können aktiv mit Ideen, Fehlerberichten und mit Open Prioritization ein bisschen Geld dazu beitragen, es besser zu machen.