Adobe Flash Player dokona żywota w 2020. Dlaczego tyle to trwało?
Z końcem 2020 roku, Adobe zakończy wsparcie techniczne i dostarczanie aktualizacji dla wtyczki Adobe Flash Player. Oznacza to brak poprawek zabezpieczeń dla programu o opinii dziurawego jak sito dziwadła, więc tym bardziej cieszy fakt znaczącego spadku popularności owego rozwiązania w ciągu ostatnich lat. Czy Flash umiera, bo nie jest już potrzebny? Czy może powody są inne? I skąd w ogóle wziął się w przeglądarkach? Przyjrzymy mu się przez chwilę.
Przede wszystkim, umierającą technologią nie jest Flash, a Adobe Flash Player, czyli jedynie odtwarzacz skonteneryzowanych projektów dystrybuowanych w plikach SWF. Sam Flash nie zginie jeszcze przez wiele lat, jest bowiem budulcem dla wielu grafik, animacji oraz całych kompletnych aplikacji i gier (niekoniecznie działających akurat w przeglądarce). Dostarcza wszak znacznie więcej, niż kodek dla strumieniowanych filmów, lecz także pewien model programowania.
Flash rozpoczął marsz po dominującą pozycję na rynku w połowie lat dziewięćdziesiątych, gdy zorientowano jego rozwój na ustanowienie konkurencji wobec platformy Shockwave. Utrzymywane (acz nie stworzone) przez firmę Macromedia środowisko Shockwave było ówczesnym standardem w dziedzinie materiałów edukacyjnych i multimedialnych, sprzedawanych na płytach CD-ROM. Powolny, acz znaczący wzrost funkcjonalności Flasha w końcu zainteresował Macromedię na tyle, że zdecydowała się go kupić w roku 1996.
Od tego czasu, oba środowiska rozwijano równolegle, a Flash wzbogacił się między innymi o model semi-programowania (ActionScript), pozwalający w łatwy sposób tworzyć proste i atrakcyjne wizualnie aplikacje. Środowisko było niewydajne i niebezpieczne, ale obniżyło koszty tworzenia oprogramowania na tyle, że spotkało się z aprobatą branży. Skupienie na multimediach poskutkowało bardzo dobrym wsparciem dla coraz popularniejszego strumieniowania.
Internet Explorer
Niewątpliwą trampoliną do monopolizacji sieci przez Flasha było dołączenie go do programu Internet Explorer 4 (oraz domyślna obecność w Windows 98). Microsoft do takiego stopnia chciał uczynić z IE i DHTML płótno do wyświetlania treści multimedialnych, że gromadził całą gamę narzędzi do tego celu, w większości opracowanych przez zewnętrzne firmy. W ten sposób Internet Explorer dostarczał takie cuda, jak RealPlayer, Shockwave Flash, VRML, VDOLive, Java, Liquid Motion, DirectAnimation oraz (przy pewnej dozie kombinowania) DirectX.
Jednak Microsoft z tamtych lat bardzo nie lubił otwartych standardów i zmierzał do ich rozszerzenia i rozwinięcia tak, by udokumentowana przez komitety standaryzacyjne "baza" działała wszędzie, ale rozszerzenia już tylko u nich. Więc żadne z wymienionych narzędzi nie zostało zgłoszone jako propozycja rozwinięcia standardu HTML. Redmond chciało kapitalizować na ogólnodostępnym internecie, ale oferować w jego ramach atrakcyjne multimedia możliwe do wyświetlenia tylko w systemie Windows.
Na szczęście (dla nas, nie dla Microsoftu) Flash stał się o wiele bardziej popularny niż antycypowano. Internet został zalany nie tylko przez prezentacje i gry stworzone we Flashu, ale również przez całe strony oparte tylko o niego. Powstało też wiele całkiem poważnych aplikacji sieciowych, używających Flasha jako warstwę wyświetlania. Portal YouTube oparł pierwszą wersję swojego odtwarzacza właśnie o Flasha. Pierwsze lata XXI-go wieku były więc czasem, gdy wtyczka Flash była absolutnie niezbędna do przeglądania internetu. Macromedia, a następnie Adobe, wydawała wtyczkę na wiele systemów operacyjnych i przeglądarek. Plan Microsoftu, by przyciągnąć użytkowników do IE, bo na nim Flash działa od razu, a na Mozilli nie, okazał się za słaby. Siła Flasha sprawiała, że instalowano go samodzielnie również w formacie Netscape Plugin API, wzbogacając o jego obsługę również Mozillę.
Monopol i problemy
Swojego Flasha, dla wszystkich głównych przeglądarek, miały Windows, Mac OS (klasyczny oraz X), przeróżne systemy oparte o Linuksa, a nawet Solaris. Komputer bez niego uchodził za narzędzie niekompletnie przygotowane do przeglądania internetu. Stosowano go częściej, niż Javę. Ale wraz z popularnością rozpoczęły się problemy. Flash okazał się mieć te same wady, co szereg innych powstałych naprędce środowisk uruchomieniowych. Podobnie jak Java i Visual Basic, był zdumiewająco dziurawy.
Nowe wersje Flasha zaczęto wydawać z absurdalnie wysoką prędkością, nękając użytkownika częstymi, ale i tak zbyt rzadkimi komunikatami o aktualizacjach krytycznych. O ile oczywiście posiadana wersja zawierała narzędzie do aktualizacji... Popularność Flasha i jego zerowy poziom bezpieczeństwa czyniły go doskonałą platformą do atakowania. Błędy w zabezpieczeniach były nie tylko poważne, ale również łatane z żółwią prędkością, czyniąc posiadanie Flasha proszeniem się o kłopoty. A warto tutaj pamiętać, że były to czasy sprzed dynamicznie ładowanych wtyczek, treści na żądanie i kontenerów dla procesów przeglądarki. Gdy zainstalowano wtyczkę dla treści, działała ona cały czas i mogła robić bardzo dużo, nie tylko na swoim katalogu podręcznym.
Niewydajny pożeracz baterii
Zaczęły się pojawiać również inne problemy. Flash nie obsługiwał, mimo bycia platformą multimedialną, akceleracji z użyciem kart graficznych. Po prostu nigdy nie zaprojektowano go pod tym kątem. Ze względu na to, coraz mocniej obciążał on system, a w internecie sprzed dekady był o wiele cięższą kulą u nogi i spowalniaczem, niż wszędobylski dziś JavaScript. Wysokie obciążenie bardzo źle wpływało na stabilność ówczesnych przeglądarek internetowych, wywołując zawieszenia i awarie. Było to dotkliwe szczególnie w przypadku mniej popularnych systemów. Flash ns Linuksach bywał koszmarem i nic się nie dało z tym zrobić.
Była też kwestia drenażu baterii. Wysokie wymagania sprzętowe oraz mizerna stabilność czyniły Flasha niezwykle frustrującym doznaniem dla użytkowników coraz mocniejszych, ale w dalszym ciągu dość ograniczonych, pierwszych smartfonów. Zresztą treści flashowe w ogóle nie powstawały z myślą o urządzeniach aż tak mobilnych, gdy święciły one swoje triumfy, ostatnim krzykiem mody był sam internet...
Adobe AIR
Adobe miało świadomość owych problemów i postanowiło zaradzić im, wydając nowe, zmodernizowane środowisko uruchomieniowe, dostosowane do nowych czasów. Bezpieczniejsze, lżejsze, akcelerowane i zbudowane z myślą o wyższej niezadowności. Tak powstał Adobe AIR (integrated runtime), znacznie lepszy od Shockwave, Flasha i wielu aspektów środowiska Silverlight. Ale AIR w dalszym ciągu było runtimem, a więc wymagało wydania dedykowanych bibliotek na każdy system. Tymczasem do internetu zaczęto podłączać coraz to dziwniejsze urządzenia, nierzadko działające pod kontrolą dziwnych, rzadkich systemów, implementujących jedynie HTML i CSS oraz podstawowy JavaScript.
Ze względu na to, o wiele więcej sensu miało rozszerzanie standardu HTML o potrzebne elementy multimedialne i otwarte kodeki. Przerwanie mrocznych czasów dominacji Internet Explorera 6 i sukces Firefoksa sprawiły w dodatku, że rozwój JavaScriptu z powrotem nabrał tempa. Czysty, pozbawiony wtyczek zestaw HTML/CSS/JS zaczynał być wystarczający do serwowania wszystkiego, co dotychczas zmuszało do użycia Flasha.
Apple dobija Flasha
Bez wątpienia do zmierzchu Flasha przyczynił się też... Steve Jobs, kierujący w 2010 roku list otwarty do Adobe, punktując wszystkie wyżej wymienione wady: bezpieczeństwo, apetyt na zasoby, drenaż baterii, niestabilność i zamknięty standard (to ostatnie jest zabawne w wykonaniu Apple). Adobe bronił się, tłumacząc że problemy ze stabilnością i pożeranie zasobów to słabości nie Flasha, a systemu iOS i gdyby oprogramowania iPada było lepsze, nie byłoby okazji do niesprawiedliwej krytyki Flasha.
Niemniej, internetowy krajobraz uległ na tyle głębokiemu przeobrażeniu, że na Flasha nie było już miejsca. Nawet, gdyby nagle stał się bezpieczny, lekki i stabilny. Adobe jeszcze przez kilka lat walczyło z nieuniknionym, wydając kolejne wersje środowiska. Również Microsoft nieco stchórzył i pozostawił Flasha w systemie Windows 10. Ale już twórcy przeglądarek internetowych wydali swoje "mapy drogowe" eliminacji obsługi Flasha. W przypadku Chrome'a, Flash jest kuriozalnym wyjątkiem wśród wtyczek, ze względu na to, jak głęboko wgryza się w rysowanie strony. Obsługuje go dedykowana warstwa Pepper, powstała tylko po to. Firefox w międzyczasie dorobił się nowego mechanizmu wtyczek i choć przez chwilę eksperymentował z otwartą implementacją Flasha w postaci Shumway, wkrótce potem również ogłosił chęć usunięcia obsługi NPAPI, ponieważ pozwalało na zbyt wiele i było trudne w utrzymaniu.
Zadekretowana emerytura
Z losem Flasha pogodził się również sam Adobe, ogłaszając w 2017 roku, nowe wersje wtyczek Flash Player i Shockwave będą wydawane jeszcze przez 3 lata (odpowiednio grudzień i kwiecień 2020). Swoją drogą, Adobe pozbywa się również AIR, oddając środowisko pod opiekę firmy Harman.
Przeglądarki jeszcze obsługują Flasha, ale starają się skutecznie do tego zniechęcić, by czym prędzej usunąć NPAPI. Wraz z końcem 2020 Flash przestanie działać na Chromium i wszystkich pochodnych (w tym nadchodzącym, nowym Edge, gdzie Flash wciąż działa. Mimo, że na oryginalnym Edgu go nie było). Microsoft planuje usunięcie i zablokowanie Flasha w grudniu 2020 przez Windows Update. Zostaną do tego wykorzystane aktualizacje usuwające Flasha wbudowanego w system oraz Zasady Grupy, które przestawią Flasha w tryb "Zawsze wyłączony", jeżeli został on doinstalowany samodzielnie. I tak, nowy Edge obsługuje Zasady Grupy, bycie opartym o Chromium na szczęście mu w tym nie przeszkadza.
Flash doprawdy jest produktem z innych czasów, stworzonym z nieaktualnych powodów, działającym na innych niż obecne urządzeniach i zbudowanym z użyciem przestarzałych, niebezpiecznych praktyk. W dobie otwartych standardów (i, jakimś cudem jednocześnie, zamkniętych aplikacji), jest ciałem obcym, które słusznie zniknie z komputerów już za rok. A czy Wy używacie jeszcze Flasha? Jeśli tak, to dlaczego? Czy potrzebujecie go do pracy, czy dla rozrywki? Dajcie nam znać w komentarzach!