Przeglądarki
W świecie webdevu istnieje jeden element, nad którym jako osoby webdeveloperskie nie mamy żadnej kontroli: przeglądarka. Cały nasz kod odpala się w tym przedziwnym ustrojstwie, a nam zostaje jedynie trzymać kciuki za to, żeby poprawnie zadziałał. Owszem, istnieją standardy sieciowe, które określają, co i w jaki sposób przeglądarki wspierają. Ale teoria często zderza się z praktyką. Nie wspominając już o bugach, które mogą czyhać na każdym kroku. Przeglądarka nie jest przyjaznym miejscem dla naszego kodu. To lochy, w których na każdym kroku potyka się o bossa, będąc uzbrojonym wyłącznie w wykałaczkę…
Ale może zostawmy te niewydarzone metafory na boku. Przyjrzyjmy się przez chwilę temu, jak wygląda sam rynek przeglądarek. A wygląda zdecydowanie ciekawej, niż kilkanaście lat temu. Wtedy liczyły się tak naprawdę tylko dwie przeglądarki: Netscape Navigator i Internet Explorer. To były mroczne czasy dla otwartych standardów, bo rywalizacja tych przeglądarek zakończyła się wieloletnim monopolem Internet Explorera. Dzisiaj na całe szczęście z tamtych czasów zostało jedynie mgliste wspomnienie. Obecny światek przeglądarek jest zdecydowanie bardziej różnorodny. Mamy “wielką trójcę” (Chrome, Firefox, Safari), ale mamy także wiele bardziej niszowych przeglądarek. Niektóre z nich próbują wprowadzić innowacje do sposobu przeglądania Sieci, jak np. Arc. Inne nastawione są na oddanie jak największej kontroli osobie użytkowniczej, jak Vivaldi. Znajdą się też przeglądarki dla osób ceniących sobie ekstremalną wręcz prywatność (Tor Browser). Ba, są nawet przeglądarki dla osób webdeveloperskich, których zadaniem jest ułatwianie tworzenia stron WWW (Polypane). Do tego dochodzi cały świat przeglądarek mobilnych czy przeglądarek wbudowanych w aplikacje mobilne. Praktycznie każda osoba powinna być w stanie znaleźć przeglądarkę, która spełniałaby jej codzienne potrzeby.
Ale warto zajrzeć pod maski tych przeglądarek. Tam się szybko okaże, że tak naprawdę na rynku istnieją tylko trzy silniki: Blink (z Chrome’a), WebKit (z Safari) i Gecko (z Firefoksa). Z czego jeden jest wyraźnie dominujący – zarówno przez fakt, że używajaca go przeglądarka jest obecnie najpopularniejsza, oraz dlatego, że silnika tego używa najwięcej przeglądarek spośród tych, które zostały wymienione wyżej. Mowa tutaj o Blinku, silniku Chrome’a. Silniku, który równocześnie bardzo szybko dodaje nowe ficzery. W tym takie, które budzą obawy związane z bezpieczeństwem i prywatnością, bo pozwalają przeglądarce komunikować się bezpośrednio ze sprzętem. Silniku, który rośnie w tempie na tyle szybkim, żeby zacząć budzić obawy o powrót do sytuacji hegemonii jednego silnika. Sytuacji, w której otwarte standardy sieciowe przestają mieć znaczenie, skoro i tak jest jeden silnik. A z drugiej strony mamy Safari, które przez lata utrzymywało monopol na iOS-ie dzięki polityce niewpuszczania tam innych silników niż WebKit. Dopiero widmo wymuszenia otwarcia się iPhone’ów na inne silniki sprawiło, że rozwój WebKita znacząco przyśpieszył.
Na poziomie silników dopiero widać, że przeglądarki to nie tylko technologia, ale też (a może: przede wszystkim) – polityka. I to polityka prowadzona przez wielkie korporacje, które inwestują czas i pieniądze w rozwój poszczególnych silników. Owszem, czasami pojawiają się pozytywne akcenty, jak np. współpraca w celu minimalizacji różnic między silnikami. Ale często widać także negatywne skutki, jak np. utrudnianie wejścia na rynek mniejszym przeglądarkom czy skupianie się na ficzerach Sieci jako platformy przy pomijaniu ficzerów dla osobów użytkowniczych.
A przecież przeglądarka ostatecznie ma być oprogramowaniem pośredniczącym między osobą webdeveloperską a osobą użytkowniczą. Taka jest nawet jej profesjonalna nazwa po angielsku: user agent – program działający w imieniu osoby użytkowniczej. Przeglądarki powinny oddawać osobie uzytkowniczej jak największą kontrolę nad tym, jak wygląda jej doświadczenie korzystania z Sieci. Patrząc na to, jak wyglądają obecne przeglądarki, zwłaszcza te najpopularniejsze, można mieć co do tego wątpliwości. Wydaje się, że to wciąż produkty mająca zarabiać na osobach użytkowniczych, niż faktycznie programy reprezentujące w najlepszy możliwy sposób interesy swoich osób użytkowniczych. I dopóki nie zmieni się ekonomia Internetu, raczej nie mamy co liczyć na wielkie zmiany.
Przeglądarki istniały od samego początku Sieci i nie zanosi się na to, żeby w najbliższym czasie miały zniknąć. Dlatego jako osoby webdeveloperskie powinniśmy się z nimi zaprzyjaźnić, a nie próbować z nimi walczyć. W końcu to jedyny sposób na dotarcie do osoby użytkowniczej – jakkolwiek niedoskonały by on nie był.
Źródła
- Aaron Gustafson, The Illusion of Control in Web Design, (data dostępu: ), w: A List Apart, (data dostępu: ).
- Jay Hoffmann, The History of the Browser Wars: When Netscape Met Microsoft, (data dostępu: ), w: Jay Hoffmann, The History of the Web, (data dostępu: ).
- Adrian Roselli, Internet Explorer Still Does Not Go Away Today, (data dostępu: ), w: Adrian Roselli, Adrian Roselli, (data dostępu: ).
- Tyler Sticka, Browsers Are Weird Right Now, (data dostępu: ), w: Tyler Sticka, Tyler Sticka, (data dostępu: ).
- Peter O'Shaughnessy, Think you know the top web browsers?, (data dostępu: ), w: Medium, (data dostępu: ).
- Thomas Steiner, Inspecting Facebook's WebView, (data dostępu: ), w: Thomas Steiner, blogccasion, (data dostępu: ).
- Peter-Paul Koch, Breaking the web forward, (data dostępu: ), w: Peter-Paul Koch, QuirksBlog, (data dostępu: ).
- Noam Rosenthal, Should The Web Expose Hardware Capabilities?, (data dostępu: ), w: Smashing Magazine, (data dostępu: ).
- Mike Pennisi, The Web Can't Survive a Monoculture, (data dostępu: ), w: Mike Pennisi, mikepennisi.com, (data dostępu: ).
- Mark Nottingham, What willwould a Chromium-only Web look like?, (data dostępu: ), w: Mark Nottingham, Mark Nottingham, (data dostępu: ).
- Alex Russell, Apple Is Not Defending Browser Engine Choice, (data dostępu: ), w: Alex Russell, Infrequently Noted, (data dostępu: ).
- Tim Kadlec, Health Benefits of Browser Diversity, (data dostępu: ), w: Tim Kadlec, Tim Kadlec, (data dostępu: ).
- Stuart Langridge, Browsers are not rendering engines, (data dostępu: ), w: Stuart Langridge, as days pass by, (data dostępu: ).
- Jim Nielsen, Browsers and Representation, (data dostępu: ), w: Jim Nielsen, Jim Nielsen’s Blog, (data dostępu: ).
- Rachel Andrew, Interop 2024, (data dostępu: ), w: web.dev, (data dostępu: ).
- Samuel Maddock, The End of Indie Web Browsers: You Can (Not) Compete, (data dostępu: ), w: Samuel Maddock, Samuel Maddock’s Blog, (data dostępu: ).
- Alastair Campbell, Accessibility improvements for user-agents, (data dostępu: ), w: Alastair Campbell, AlastairC, (data dostępu: ).
- Jeremy Keith, User agents, (data dostępu: ), w: Jeremy Keith, Adactio, (data dostępu: ).
- Robin Berjon, You're Gonna Need A Bigger Browser, (data dostępu: ), w: Robin Berjon, Robin Berjon, (data dostępu: ).
- Andy Bell, Be the browser’s mentor, not its micromanager. - Build Excellent Websites, (data dostępu: ).
Dodatkowe materiały
- Joshua Comeau, A Framework for Evaluating Browser Support, (data dostępu: ), w: Joshua Comeau, Josh W Comeau, (data dostępu: ).
- Chen Hui Jing, Internet Explorer 3, an adventure in cross-browser compatibility, (data dostępu: ), w: Chen Hui Jing, Chen Hui Jing, (data dostępu: ).
- Fronteers, Jeremy Keith & Remy Sharp - How We Built the World Wide Web in Five Days, (data uploadu: , data dostępu: ), w: Vimeo, (data dostępu: ).
- Brian Kardell, Web Engine Diversity and Ecosystem Health, (data dostępu: ), w: Brian Kardell, Brian Kardell, (data dostępu: ).
- Jeremy Keith, Unity, (data dostępu: ), w: Jeremy Keith, Adactio, (data dostępu: ).
- Dave Rupert, What is the Value of Browser Diversity?, (data dostępu: ), w: Dave Rupert, daverupert.com, (data dostępu: ).
- Jeremy Keith, Continuous partial browser support, (data dostępu: ), w: Jeremy Keith, Adactio, (data dostępu: ).
- Jay Hoffmann, The Browser Engine That Could, (data dostępu: ), w: Jay Hoffmann, The History of the Web, (data dostępu: ).
- Carl M. Johnson, Dropping Support For IE11 Is Progressive Enhancement, (data dostępu: ), w: Carl M. Johnson, The Ethically-Trained Programmer, (data dostępu: ).
- Alex Russell, Progress Delayed Is Progress Denied, (data dostępu: ), w: Alex Russell, Infrequently Noted, (data dostępu: ).
- Niels Leenheer, Chrome is the new Safari. And so are Edge and Firefox., (data dostępu: ), w: Niels Leenheer, Niels Leenheer, (data dostępu: ).
- Eric Bailey, “Evergreen” Does Not Mean Immediately Available, (data dostępu: ), w: CSS Tricks, (data dostępu: ).
- Open Web Advocacy, (data dostępu: ).
- Skills Matter, IE: RIP or BRB? (Bruce Lawson keynote at FullStack eXchange 2022), (data uploadu: , data dostępu: ), w: YouTube, (data dostępu: ).
- Jim Nielsen, Nothing’s Bulletproof, (data dostępu: ), w: Jim Nielsen, Jim Nielsen’s Blog, (data dostępu: ).
- Hadley Beeman, The evergreen web, (data dostępu: ).
- Ashley, Safari releases are development hell, (data dostępu: ), w: Ashley, Ashley's blog, (data dostępu: ).
- Thomas Buckley-Houston, Browsh, (data dostępu: ).
- Hey! Presents, Andy Bell – Be the browser’s mentor, not its micromanager, (data uploadu: , data dostępu: ), w: YouTube, (data dostępu: ).