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ší.
- http://blogs.adobe.com/conversations/2011/11/flash-focus.html
- http://www.zdnet.com/blog/perlow/without-mobile-adobe-flash-is-irrelevant/19247
- http://inflagrantedelicto.memoryspiral.com/2011/11/mobile-flash-player-rip/
- http://www.zdnet.com/blog/perlow/a-web-developer-speaks-flash-player-is-dead-html5-isnt-ready-long-live-air/19293
- http://www.mikechambers.com/blog/2011/11/11/clarifications-on-flash-player-for-mobile-browsers-the-flash-platform-and-the-future-of-flash/
Přehled komentářů