„Flash je mrtev, HTML5 není připravené, co teď?“

Prohlášení společnosti Adobe o ukončení vývoje Flash Playeru pro mobilní zařízení vzbudilo velkou vlnu emocí a komentářů. Po několika dnech už je situace jasnější a přehlednější. Pojďme si tedy shrnout, co vlastně Adobe oznamuje, co to znamená pro Flash a co to znamená pro web jako takový.

Po oznámení konce vývoje Flash Playeru pro mobilní platformy a ne zcela šťastném vyjádření společnosti Adobe proběhly mezi tvůrci webu různé emoce. Když to přeženeme: někteří oslavují konec zlého ošklivého Flashe a příchod svobodného HTML5 (zmínky o genialitě Steva Jobse, který konečně zabil Flash, nechybí), jiní hořekují nad koncem solidního cross-platformního řešení s penetrací nad 95 % uživatelů a věští zkázu webové civilizace a úpadek do hlubin nejasných specifikací a zmatených implementací.

Bohužel tyto komentáře vypovídají jen málo o skutečné situaci, mnohdy spíš o osobních preferencích komentujících. Pojďme se na celou situaci podívat střízlivějším pohledem, oproštěným od fanouškovství ať už na tu, či onu stranu.

Co se vlastně stalo?

Adobe se rozhodlo, že nebude vytvářet plugin (Flash Player) pro mobilní zařízení. Jedním z důvodů je „nemožnost zajistit konzistentní UX“. Namísto toho nabídne pro vývojáře ve Flashi / AIRu možnost vytvářet přímo nativní aplikace pro jednotlivé platformy, resp. výstup v HTML5.

V tomto článku budeme zkratkou HTML5 označovat celou rodinu technologií HTML5, CSS3 a JS.

Je to poměrně snadno pochopitelné: mobilní zařízení představují velmi variabilní svět, nejen co do platforem, ale i co do technických možností. Zajistit, aby věci, psané ve Flashi, vypadaly a ovládaly se plus mínus stejně na třípalcovém displeji s odporovou dotykovou vrstvou a (například) na velkém tabletu s kapacitním snímáním a multitouch je nadlidský úkon. Ještě přesněji řečeno: zajistit, aby jednotlivé přehrávače dokázaly tyto různé metody sjednotit a programátorovi nabídnout rozhraní, které bude z hlediska vývojáře konzistentní, ale zároveň využije možnosti daných zařízení.

Adobe tak vlastně elegantně přehodilo práci se zajištěním takové kompatibility na výrobce prohlížečů. „To je vaše věc, chlapci, my jedeme podle standardů a vy se postarejte!“ Nadávky uživatelů na nefunkční to či ono tak po mnoha dlouhých letech nebudou směřovány na adresu Flash Playeru.

Konec Flashe? Ale kdepak…

Flash už dávno není jen ten Flash, co znali vaši dědové, tedy plugin do prohlížeče, v němž se konaly animované reklamy, hlasité reklamy, později video… Flash je dnes pro Adobe celý ekosystém, od vývojářských nástrojů po runtime. Flash Player je jen jedna část na samotném konci toho řetězce – samozřejmě významná, ale už ne tak, jako před několika lety.

Před lety přišel framework Flex, postavený nad Flash Playerem, který umožňoval jednodušší a rychlejší návrh internetových aplikací (RIA) a jejich UI. Technicky byly aplikace ve Flexu překládány do swf, tedy do formátu, určeného pro běh ve Flash Playeru, ale ze strany vývojáře šlo o technologii výrazně odlišnou od toho, co bylo do té doby známo jako „Flash“.

Flash byl především animační nástroj s možnostmi skriptovat některé akce pomocí implementace ECMAScriptu s názvem Action Script (AS). Adobe k Flexu připravilo vývojové prostředí, zvané Flex Builder, které bylo postavené na Eclipse a umožňovalo práci tak, jak jsou vývojáři aplikací zvyklí např. z Visual Studia či Delphi, s nabídkou vizuálních komponent, s průvodci a „generátory kódu“. Flex Builder odstínil vývojáře od samotného Flashe a nabídl jednoduchý značkovací jazyk MXML pro popis uživatelského rozhraní a možnost psaní knihoven a ovládacích rutin v jazyce AS (který byl už v tu dobu svými datovými typy, syntaxí či objektovostí mnohem podobnější např. C# než JavaScriptu).

Velkou výhodou Flexu byla jeho téměř bezešvá spolupráce se serverovým backendem, včetně možností předávat si transparentně např. celé objekty a nestarat se o to, jak přesně komunikace probíhá a kdy (srovnejte s AJAXem). Druhá velká výhoda byl AIR, neboli „desktopový runtime pro Flex“. Změnou několika nastavení můžete vygenerovat Flexovou aplikaci tak, že bude fungovat s runtimem AIR, tedy bude spustitelná kdekoli, kde je AIR nainstalován (obdoba např. JRE nebo .NET Runtime). Aplikace pro AIR mohou mít dokonce komponentu „webový prohlížeč“ (WebKit) – tedy přístup, dnes používaný např. v PhoneGap.

Flash není jen videopřehrávač a reklamy

Adobe tohle všechno zahrnulo do „ekosystému Flash“. V posledních verzích se Flex Builder přejmenoval na Flash Builder a dostál postupně výrazných změn – například přibyla možnost generovat nativní aplikace pro mobilní platformy (včetně iOS).

Flash dnes obsahuje tedy kromě animačního nástroje („Flash“) i IDE pro psaní aplikací („Flash Builder“), runtime pro desktop („AIR“), runtime pro prohlížeče („Flash Player“) a některé pomocné nástroje, které přesahují i do jiných oblastí použití (Catalyst, Edge…). 

Ukončení vývoje Flash Playeru pro mobilní platformy je věc, která by Flash, jako ho vnímá Adobe, neměla ohrozit – na jeho místo nastoupí u aplikací AIR, respektive překlad aplikací, napsaných ve Flexu, do nativního kódu, a v oblasti animací a videa by zase mělo přijít HTML5 (viz Edge, z druhé strany se nabízí např. projekt Popcorn od Mozilly).

Aktualizace a upřesnění: Podle posledních informací Adobe předá Flex pod správu Apache Foundation a jeho vývoj bude převeden pod zatím nespecifikovaný OSS model. Další informace např. zde: http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html

Nešikovné vyjádření…

Upřímně řečeno: nelze odhadnout, jestli to tak opravdu dopadne. Adobe je připravené – jejich nástroje podporují jak export do HTML5, tak vytváření nativního kódu, ale přitom neztrácejí kontinuitu s tím, na co byli několik posledních let vývojáři zvyklí. Z čistě věcného hlediska by se tedy nemělo jednat o žádný velký zlom.

Problém je, že „čistě věcné“ hledisko, bohužel, není to jediné, a ani to podstatné. Svým poměrně nešikovným vyjádřením Adobe udělalo velkou chybu – totiž zahazardovalo se značkou „Flash“ a znejistilo mnohé zákazníky, kteří si budou klást otázku: „Má Flash perspektivu…? Můžeme ho dál používat, nebo bychom se měli přeorientovat na jinou technologii?“ Vysvětlování, že se vlastně nic neděje a že má smysl dál zůstávat u vývojářských nástrojů se značkou Flash, totiž nemusí u všech uspět.

Adobe se totiž podařilo místo sdělení „Flash je nyní i HTML5“ říct „Flash končí, bude nahrazen HTML5„. Samozřejmě, že ten, kdo si podrobně přečte zprávu a komentáře k ní, zjistí, že to tak není, ale lidé nečtou podrobné zprávy a komentáře, lidé si pamatují slogany. A slogan tak, jak byl v první chvíli vnímán, zněl: „Adobe končí s Flashem„. Málokdo rozlišuje mezi Flashem a Flash Playerem, málokdo si uvědomí, že se jedná pouze o mobilní platformy – bohužel. Byla otřesena víra ve značku Flash.

Spása od HTML?

Pokud porovnáme Flash a HTML5 (celou rodinu technologií, včetně CSS a JS), vidíme, že se nedá o náhradě mluvit… HTML5 je uskupení více či méně rozpracovaných návrhů standardů, které se postupně proměňují a jsou v různé míře implementovány výrobci prohlížečů. Noční můra protokolu WebSocket, který se měnil implementátorům pod rukama, budiž mementem.

O něčem takovém, jako je penetrace Flashe v aktuálních verzích, se může HTML5 stále jen zdát. Flash plně těžil z modelu majoritního výrobce, tzn. standard byl jasně dán existující implementací a výrobce k ní dodával vývojářské nástroje. Proti tomu působí HTML5 jako poměrně chaotický slepenec různých ad hoc návrhů, které jsou v jednotlivých prohlížečích implementovány dobře, špatně, nebo vůbec.

Ale i v dalších ohledech HTML zaostává: JavaScript je sice výborný jazyk, ale člověk jeho krásu objeví, až když ho pochopí. Většinový vývojář ho používá „jako Céčko“ a nadává, že JS má jiný objektový model. O různých implementacích nemluvě. Oproti tomu je AS jazyk, který bude vývojářům, zvyklým na C-like jazyky, připadat mnohem srozumitelnější. 

Rychlost prototypování aplikací je rovněž rozdílná. Stejně tak třeba jejich testování či udržování. Ve všech těchto ohledech Flash (Flex) jednoznačně vede a nabízí komfort, který se blíží klasickým vývojářským nástrojům. HTML je, ať se nám to líbí nebo ne, stále o mnoho let pozadu a na všechny tyto nástroje teprve čeká. I když to tak možná současným kodérům nepřipadá a mají dojem, že se vlastně s vylepšeným textovým editorem a příkazovou řádkou dá velmi dobře vyvíjet…

Obrovskou výhodu má ekosystém Flashe právě v tom, že obsahuje profesionální
vývojářské nástroje. To je neoddiskutovatelný fakt, který uznávají i
největší zastánci HTML5: vývojové prostředí alespoň na úrovni Flash
Builderu pro HTML zatím zkrátka neexistuje, kóduje se převážně ručně (a
ruční práce je ta nejdražší) a o pohodlném „komponentovém“ návrhu
aplikace si zatím nechává HTML5 jen zdát. Možná se dočkáme i paradoxní
situace, že Flash (Flash Builder) bude „nejlepší vývojářský nástroj pro
HTML“.

Co dál?

Nestalo se tedy vlastně nic závažného. Rozhodně není na místě ani oplakávat Flash, ani slavit vítězství HTML5, obě technologie budou pokračovat dál. Zcela střízlivě zhodnoceno jde vlastně jen o odpískání nutných a dlouhodobých investic do udržování Flash Playeru pro stále divoký trh s mobilními zařízeními. Bohužel, toto rozhodnutí bylo oznámeno poněkud nešťastně a vyvolalo vlnu dohadů a spekulací.

Na druhou stranu je dobré, že se taková diskuse vede. Připomíná totiž, co vše v ekosystému HTML5 zatím chybí a jaké jsou jeho nedostatky.

Specifikace HTML5 v posledních letech a měsících udělala obrovský skok a
zahrnula mnohé funkce, které bylo do té doby možné řešit pouze jinými
způsoby – většinou právě flashovými „applety“. Flash je stále používán
jako „fallback“ pro video, audio a další nástroje, a tuto roli si ještě
několik let udrží. Se specifikací drží více nebo méně krok výrobci
prohlížečů, od Chrome, který implementuje každou novinku, po IE, který
implementuje pouze stabilní části specifikací, protože je mířen na
konzervativní uživatele a nemůže si dovolit nestabilitu či experimenty.
Bohužel s prudkým rozvojem HTML5 nepřišel adekvátní rozvoj vývojářských
nástrojů – nástroje, které jsou v tomto světě „špička“,
vlastně nenabízí o moc víc než „asistovaný zápis kódu“.

Jde tedy o „vítězství HTML5 a dobro pro celý web„? V zásadě ano – ovšem vítězství nikoli ve smyslu poražení nepřítele, ale spíš v tom, že orientací Flashového ekosystému na HTML5 může svět HTML5 získat slušné vývojářské nástroje a řadu nových impulsů. Zároveň by bylo chybou domnívat se, že tímto vítězstvím prokázalo HTML5 svou technologickou vyzrálost a převahu – z hlediska vývoje aplikací je v komfortu práce i ve stabilitě běhového prostředí stále o několik let pozadu. Ale tak už to ve světě technologií chodí: ne vždy se prosadí ta technicky lepší.

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Komentáře: 68

Přehled komentářů

lol potreba?
pas Re: potreba?
Bambus Re: potreba?
rt Re: potreba?
pas Re: potreba?
pas Flash
OBr Re: Flash
Petr Re: Flash
pas Re: Flash
OBr Re: Flash
pas Re: Flash
Patrik Martinko konecne paradny clanok
bhawk Vyborne!
Jano Flash upadok
martin tatrabanka bankovnictvi
http://duri.myopenid.com/ Re: tatrabanka bankovnictvi
Borek Bernard Re: tatrabanka bankovnictvi
Petr Staníček Skvělá analýza
mixal11 Re: „Flash je mrtev, HTML5 není připravené, co teď?“
pf clean
haxe haxe
pf Re: haxe
Franta Otevřenost
pas Re: Otevřenost
Franta Re: Otevřenost
pas Re: Otevřenost
Pavel Šimerda Re: Otevřenost
Borek Bernard Je to horší, než se zdá
David Grudl Re: Je to horší, než se zdá
Borek Bernard Re: Je to horší, než se zdá
Martin Malý Re: Je to horší, než se zdá
pas Re: Je to horší, než se zdá
DT Re: Je to horší, než se zdá
Borek Bernard Re: Je to horší, než se zdá
OBr Re: Je to horší, než se zdá
pas Re: Je to horší, než se zdá
Franta Re: Je to horší, než se zdá
pas Re: Je to horší, než se zdá
Borek Bernard Re: Je to horší, než se zdá
pas Re: Je to horší, než se zdá
OBr Re: Je to horší, než se zdá
pozortucnak fantom
xxxxmarek aktualne alternativy
pas Re: aktualne alternativy
Borek Bernard Re: aktualne alternativy
pozortucnak Re: aktualne alternativy
xxxxmarek Re: aktualne alternativy
Čelo Re: aktualne alternativy
srigi Re: aktualne alternativy
jlx Re: aktualne alternativy
Martin Malý Re: aktualne alternativy
Franta Re: aktualne alternativy
xxxxmarek Re: aktualne alternativy
Radek Re: aktualne alternativy
pas Re: aktualne alternativy
jaja Re: aktualne alternativy
Pepa konkrétní použití
omg HTML5 RIPs the WWW
omg Re: HTML5 RIPs the WWW
MeDon Nejde jen o Flex a hry
pas Re: Nejde jen o Flex a hry
František Kučera Re: Nejde jen o Flex a hry
pas Re: Nejde jen o Flex a hry
pas Re: Nejde jen o Flex a hry
gilhad Svym zpusobem je to skoda
pas Re: Svym zpusobem je to skoda
Horacio JavaScript nebo ActionScript
Tomáš Z pohledu uživatele
Zdroj: https://www.zdrojak.cz/?p=3575