Funkcje platformy internetowej crowdfundingu z otwartym priorytetem
Opublikowany: 2022-03-10W moim ostatnim poście opisałem kilka interesujących funkcji CSS — niektóre z nich są dostępne tylko w jednej przeglądarce. Większość twórców stron internetowych ma pewne funkcje, które chcieliby, aby były szerzej dostępne lub były w ogóle dostępne. Zachęcam programistów do używania, omawiania i zgłaszania błędów implementacji w przeglądarkach, aby spróbować zaimplementować funkcje, jednak co by było, gdyby istniał bardziej bezpośredni sposób, aby to zrobić? Co by było, gdyby twórcy stron internetowych mogli się zebrać i sfinansować rozwój tych funkcji?
Jest to model, który firma konsultingowa Igalia o otwartym kodzie źródłowym wprowadza w ramach eksperymentu Open Prioritization. Podstawową ideą jest model finansowania społecznościowego funkcji platformy internetowej. Jeśli chcemy, aby jakaś funkcja została wdrożona, możemy zainwestować niewielką kwotę, aby pomóc sfinansować tę pracę. Jeśli cel zostanie osiągnięty, funkcja może zostać zaimplementowana. Ten artykuł jest oparty na wywiadzie z Brianem Kardellem, rzecznikiem programistów w Igalii.
Co to jest otwarta priorytetyzacja?
Idea otwartego ustalania priorytetów polega na tym, że społeczność może wybierać i pomagać w finansowaniu rozwoju funkcji. Igalia wybrała listę funkcji docelowych, z których wszystkie są zaimplementowane lub są obecnie wdrażane w co najmniej jednym silniku. Dlatego sfinansowanie funkcji pomoże jej stać się dostępne w różnych przeglądarkach i bardziej użyteczne dla nas jako programistów. Lista początkowa to:
- Kolory CSS
lab( )
w Firefoksie -
:focus-visible
w WebKit/Safari - HTML
inert
w WebKit/Safari - Argumenty listy selektorów dla
:not( )
w Chrome - Wsparcie CSS Containment w WebKit/Safari
- Obsługa CSS
d
(ścieżka SVG) w Firefoksie
Strona internetowa zawiera więcej wyjaśnień na temat każdej funkcji i wszystkich szczegółów dotyczących działania finansowania. Igalia współpracuje z Open Collective, aby zarządzać zobowiązaniami.
Kim jest Igalia?
Być może nigdy nie słyszałeś o Igalii, ale skorzystasz z ich pracy. Igalia pracuje na silnikach przeglądarek i posiada specjalistyczną wiedzę na temat wszystkich silników. Mieli drugą co do wielkości liczbę zatwierdzeń w źródłach Chrome i WebKit w 2019 roku. Jeśli kochasz CSS Grid Layout, to możesz podziękować Igalii za wdrożenie w Chrome i WebKit. Prace nad dodaniem tej funkcji do tych przeglądarek wykonał zespół Igalia, a nie inżynierowie pracujący wewnętrznie w firmie zajmującej się przeglądarką.
To właśnie sprawia, że ten pomysł jest tak atrakcyjny. To nie jest kwestia zbierania pieniędzy, a następnie przekonania kogoś do wykonania pracy. Igalia ma doświadczenie w wykonywaniu tej pracy. Deweloperzy muszą być opłacani, więc dzięki crowdsourcingowi pieniędzy jesteśmy w stanie wybrać, nad czym dalej pracujemy. Igalia również ma już relacje z silnikami, aby każda sugerowana funkcja mogła odnieść sukces.
Czy przeglądarki zaakceptują te funkcje, jeśli je sfinansujemy?
Fakt, że Igalia ma już relacje w zespołach zajmujących się silnikami przeglądarek i omówił już z nimi wybrane funkcje, oznacza, że jeśli jest finansowana, powinniśmy widzieć funkcje w przeglądarkach. Istnieją już precedensy dla głównych funkcji finansowanych przez strony trzecie i opracowywanych przez Igalię. Wdrożenie Grid Layout w Chrome i WebKit zostało sfinansowane przez Bloomberg Tech. Byli sfrustrowani brakiem implementacji Grid Layout i to Bloomberg Tech zapewnił pieniądze na rozwój tej funkcji przez kilka lat.
Chrome i WebKit z radością zaakceptowały wdrożenie; nie było kontrowersji związanych z dodaniem tej funkcji. Była to raczej kwestia ustalania priorytetów. Przeglądarki miały inne zadania, które zostały uznane za wyższy priorytet, dlatego zaangażowanie finansowe i czas programisty zostały skierowane gdzie indziej. Funkcje, które zostały wybrane do tej wstępnej próby finansowania społecznościowego, również nie budzą kontrowersji pod względem ich implementacji. Jeśli praca może być wykonana, silniki prawdopodobnie ją zaakceptują. Interoperacyjność — rzeczy działające w ten sam sposób we wszystkich przeglądarkach — to coś, o co dbają wszyscy dostawcy przeglądarek. Nie ma żadnych korzyści, by silnik pozostawał w tyle. Zasadniczo po prostu omijamy wewnętrzny proces ustalania priorytetów funkcji.
Dlaczego przeglądarki nie robią tego po prostu?
Zapytałem Briana, dlaczego firmy przeglądarkowe same nie finansują tych rzeczy. Wyjaśnił,
„Ludzie mogą pomyśleć, na przykład, »Apple ma wszystkie pieniądze na świecie«, ale to ignoruje złożoną rzeczywistość. Firma Apple nie jest ich przeglądarką internetową. W rzeczywistości sama przeglądarka internetowa nie jest dla nikogo przedsięwzięciem zarobkowym. Przeglądarki i standardy są dobrowolne, to dobro wspólne. Jednak pod względem kosztów przeglądarki są znaczne. Są znacznie bardziej złożone, niż większość z nas zdaje sobie sprawę. Obecnie tylko 3 organizacje zainwestowały wiele lat i miliony dolarów rocznie, aby rozwinąć i utrzymać projekt silnika renderującego. Każdy z nich już dokonuje ogromnych i niezrównanych inwestycji w dobra wspólne.
Następnie Brian zwrócił uwagę na znaczną inwestycję Firefoksa w Servo, a Google w LayoutNG, projekty, które poprawią wrażenia z korzystania z przeglądarki, a także umożliwią wdrożenie nowych funkcji platformy. Jest wiele rzeczy, które każda przeglądarka może wdrożyć w swoim silniku, ale sposób, w jaki te funkcje są wewnętrznie traktowane priorytetowo, może nie zawsze odpowiadać naszym potrzebom jako programistów.
Przyszło mi do głowy, że finansując wdrożenie przeglądarki, robimy to samo, co w przypadku innych produktów, z których korzystamy. Wielu z nas opracowało wtyczkę do potrzebnej funkcji w CMS lub zapłaciło stronie trzeciej za jej dostarczenie. Programiści CMS poświęcają swój czas na pracę nad podstawowym produktem, upewniając się, że jest on solidny, bezpieczny i aktualny. Bez podstawowego produktu dodanie wtyczek byłoby niemożliwe. Strony trzecie mogą jednak wnosić części do tej platformy i w pewnym sensie to właśnie możemy zrobić poprzez otwarte ustalanie priorytetów. Pokaż, że funkcja jest na tyle warta zachodu, abyśmy zastawili trochę gotówki, aby ją przekroczyć.
Jak to pasuje do projektów takich jak Internet, które chcemy?
SmashingConf wsparł projekt Web We Want, w ramach którego programiści przedstawiali pomysły dotyczące platform internetowych, które były przedmiotem dyskusji i głosowania na scenie podczas konferencji. Byłem zaangażowany w kilka z tych wydarzeń jako gospodarz i panel. Zastanawiałem się, jak otwarte ustalanie priorytetów pasuje do tych istniejących wysiłków. Brian wyjaśnił, że są to zupełnie inne rzeczy, mówiąc:
„… jeśli zapytasz mnie, co może ulepszyć mój dom, mógłbym wymienić milion rzeczy. Niektóre z nich nie są nawet w najmniejszym stopniu praktyczne, po prostu byłyby naprawdę schludne. Ale jeśli powiedziałbyś, że zrób listę rzeczy, które możesz zrobić z budżetem na to, co każda z nich kosztuje – moja lista będzie znacznie bardziej praktyczna i związana z realiami, o których wiem, że istnieją.
Jeśli pod koniec miesiąca powiesz „to jest twoja lista, a tutaj jest 100 dolarów, co z nią zrobisz?” to bardzo bezpośrednie pytanie, które pomaga mi osiągnąć coś praktycznego. Może pomaluję. Może kupię jakieś nowe oświetlenie. A może oszczędzę go przez kilka miesięcy na coś droższego”.
Projekt Web We Want zadaje pytanie otwarte, pyta, czego chcemy od platformy. Wiele potrzeb to nie rzeczy, które już istnieją jako specyfikacja. Rozpoczęcie wdrażania którejkolwiek z tych rzeczy oznaczałoby rozpoczęcie od samego początku, z pomysłem, który wymaga podjęcia już na etapie specyfikacji. Pewności jest niewiele i bardzo trudno byłoby je wycenić.
Funkcje wybrane do tego pierwszego otwartego eksperymentu ustalania priorytetów mają celowo ograniczony zakres. Mają już pewne wdrożenie; mają specyfikację, a Igalia rozmawiała już z opiekunami przeglądarek, aby sprawdzić, czy funkcje są gotowe do pracy, ale nie mają bezpośrednich priorytetów.
Wspieranie tego projektu oznacza wspieranie konkretnego fragmentu rozwoju, który może nastąpić w rozsądnie krótkim czasie. Opublikowanie pomysłu w sieci, której chcemy, zapisanie pomysłu na swoim blogu lub dodanie problemu opisującego zupełnie nową funkcję w repozytorium CSSWG GitHub, może potencjalnie wprowadzić nowy pomysł do dyskusji. Jednak te pomysły mogą mieć długą, powolną drogę do urzeczywistnienia. A biorąc pod uwagę naturę dyskusji o standardach, prawdopodobnie nie będą one przebiegać dokładnie tak, jak sobie wyobrażałeś. Proponowanie tych rzeczy jest cenne, ale bardzo trudno oszacować czas i koszty ostatecznej realizacji.
Ten sam problem dotyczy bardzo pożądanej funkcji zapytań kontenerowych. Igalia posunęła się tak daleko, że wspomniała o zapytaniach kontenerowych w swoich FAQ. Zapytania kontenerowe to coś, czym zajmuje się wiele osób zaangażowanych w proces opracowywania standardów i dostawców przeglądarek, jednak dyskusje te są na wczesnym etapie. Nie jest to coś, na co można by w tym momencie nadać wartość pieniężną.
Zaangażować się!
Więcej informacji znajduje się na stronie Open Prioritization wraz ze szczegółowymi często zadawanymi pytaniami, które odpowiadają na inne pytania, które możesz mieć. Jestem tym podekscytowany, ponieważ zawsze chętnie pomagam projektantom i programistom w znalezieniu sposobów na zaangażowanie się w platformę internetową. To nasza platforma. Możemy poczekać, aż producenci przeglądarek przyznają pewne rzeczy, lub możemy aktywnie wnieść swój wkład poprzez pomysły, raporty o błędach i trochę gotówki dzięki Open Prioritization, aby pomóc ją ulepszyć.