HTML5 vs. Flash player (se zvláštním přihlednutím k webovým aplikacím)

HTML5 logo

Když jsem napsal „Proč je vítězství HTML5 nad flashem dobré pro všechny”, zdálo se mi, že z něj vyplývají kromě jiných i tyhle dva úhly mého pohledu:

  1. Jde mi o vítězství nad flash playerem, tím pluginem, který je nutný pro chod aplikací vytvořených v programu Flash.

  2. Na celou záležitost se dívám z pohledu vývojáře web aplikací.

Z komentářů jsem pochopil, že jsem selhal v obou bodech a tímto předkládám ctěnému čtenáři reparát.

Východiska

Web aplikací se pro účely tohoto článku myslí aplikace typu Basecamp, MailChimp, Flickr, Google Reader, Twitter, Facebook — jejich kód je HTML, CSS, JavaScript a běží v prohlížeči.

Pokud píšu flash s málým „f” mám na mysli plugin flash player. Flash s velkým „F” je program, ve kterém se tvoří to, co se pak ve flashi přehrává.

Nad důsledky rozhodnutí Adobe o zrušení vývoje flash playeru pro mobilní zařízení se zamýšlím hlavně z pohledu web aplikací.

HTML5 je zastřešující termín pro HTML5, CSS3 a JavaScript.

Jestli tomu dobře rozumím…

Flash začínal jako program pro tvorbu animací, který nabízel i interaktivní složku. Proto se o něj zajímali spíš grafici, než kódéři nebo programátoři. Časem začal Flash uspokojovat poptávku po prostředí, kde se tvoří hry a na multimédia/interakci náročné aplikace.

A když už tu byla skupina vývojářů aplikací ve Flashi, řeklo si Adobe, že by mohlo rozšířit spektrum vyvíjených aplikací (a oslovených vývojářů) a uvedlo AIR (Adobe Integrated Runtime).

„Adobe AIR supports Flash applications by running them within a contained Flash Player instance, and HTML/JavaScript/Ajax web applications by running them within the included WebKit rendering engine.”

Wikipedia

O něco podobného se, počítám, snaží i Microsoft se svým Silverlightem. Mimochodem, proto si také myslím, že to se Silverlight playerem dopadne podobně jako flashem.

OK, takže já tomu rozumím takhle: Obě firmy vyrábí nástroje pro vývojáře a všimli si rostoucího trhu web aplikací, který neobsluhuje žádné ucelené vývojové prostředí a řekli si, že by takové prostředí mohli nabídnout. Výměnou za to, ale výsledek musí běžet v jejich přehrávači – pluginu (flash player, AIR, Silverlight).

Co je špatně na pluginech

Kromě široce diskutovaných věcí, jako jsou náročnost na výkon hardwaru a bezpečností chyby, je pro mě jako tvůrce web aplikací nepřijatelné to, jak pluginy porušují konvence, které jinak v prostředí webových prohlížečů platí.

Porušování konvencí prohlížečů je důsledek toho, že obsah přehrávaný flashem/silverlightem je v prohlížeči takový „stát ve státě” a podporuje jen to, co Adobe/Microsoft naprogramuje. Nevyhnutelně tak docházelo, dochází a bude docházet k tomu, že některé věci nebudou fungovat.

Tím se dostávám k závažnějšímu problému pluginu, které kontroluje jedna firma – vývoj. Vysvětlím dále, ačkoli to tak možná chvíli nebude vypadat.

Kde jsme…

Dva zásadní vlivy na prostředí vývoje aplikací:

  • Internet je všudypřítomný
  • Počítače jsou všudypřítomné

„No a? To každej ví. Co z toho?”, říkáte si? Jo, to je, hádám, kouzlo velkých změn: Když je prožíváte, nemusíte si jich ani všimnout.

Co jsme čekali dřív od aplikací?

  • Pustím ji na svém počítači, kde je nainstalovaná.
  • Vše, co potřebuje ke svému chodu je na tom počítači.
  • Moje vstupní a výstupní data jsou na tom počítači.

Co budeme očekávat od aplikace velmi brzy?

  • Pustím ji na jakémkoli počítači buď bez instalace, protože běží na serveru, nebo si nainstaluju nějakého obslužného klienta, který ale také komunikuje ze serverem.
  • Vše, co potřebuje ke svému chodu je na serveru, nebo ze serveru kdykoli stáhnutelné, pokud bych to náhodou potřeboval lokálně.
  • Moje vstupní a výstupní data můhou být kdekoli budu chtít.

Doufám, že cítíte, že v době těch prvních kritérií byl počítač klasický desktop nebo notebook. Druhá sada kritérií platí pro dobu, kdy je počítač cokoli od mobilu, přes tablet, až po tu „klasiku”, nebo kdovíco ještě přijde.

A jsme zpátky u toho problému s vývojem, který pluginové ekosystémy nezvládají. Kdo by mohl očekávat, že Adobe nebo Microsoft zvládnou zajistit, že jejich pluginy poběží na všech těch zařízeních? Zvlášť, když se takový Apple rozhodne, že je na svou platformu nepustí? Nemluvě už o tom, aby na každé platformě běželi, aniž by vypadali jako vetřelec z jiného vesmíru. Pomalý, zabugovaný a nebezpečný vetřelec.

…a kam jdeme?

Jsme svědky toho, že otevřené vývojové prostředí — HTML5 — poráží proprietární ekosystémy. Poráží je právě proto, že je otevřené, nikdo ho nevlastní, je to standard, na kterém se zainteresované strany dohodly (dohadují) a je tu pro něj otevřený přehrávač — WebKit.

To samozřejmě neznamená, že by už dál nezuřily války o vývojáře nativních aplikací pro jednotlivé systémy. Nativní aplikace jsou stále jedinou možnou odpovědí pro řadu aplikací.

Co se snažím říct je, že HTML5 je už teď good-enough pro dostatečné množství aplikací, aby to zajistilo jeho budoucí vývoj. A proto se bude jeho okruh rozšiřovat a Adobe bude s Microsoftem a jinými bojovat ne o to, kdo udělá lepší vývojové prostředí pro svůj přehrávač, ale kdo udělá lepší vývojové prostředí pro HTML5.

Proto jsme vyhráli všichni, když Adobe ohlásilo, že kašle na mobilní flash player. Pokud je nemůžeš porazit, přidej se k nim. To je jediná interpretace, kterou vidím. Úplně polopaticky: Pokud by Adobe válčilo dál a vy byste byli jedním z vývojářů, který se dál drží exportování do flash playeru, postupně byste zjistili, že je stále víc zákazníků, kterým vaše aplikace neběží, nebo běží špatně. Byli byste v čím dál větší konkurenční nevýhodě. Možná se vám to teď nelíbí, ale za pár let jim poděkujete.

Proto si dovolím předpovědět, že do 5 let zmizí flash player i Silverlight player nejen z mobilů, ale i z desktopů a ze světa vůbec. Spíš dřív, pětka je ale takové pěkné číslo. Nevidím jediný důvod, proč by tam měli být.

Opakuji, neznamená to, že by se všechno vyvíjelo jen v HTML5. Nativní aplikace budou mít stále svoje místo. Čím dál častěji bude ale HTML5 vycházet z rozhodování mezi tím, co potřebujete svým uživatelům nabídnout, kolik máte na vývoj a jak velký trh potřebujete oslovit, jako vítěz.

Pro budoucí aplikace bude platit:

  • Nativní aplikace pro daný systém
  • Web aplikace postavená na HTML5, která běží přímo v prohlížeči, nebo v nějakém wrapperu prohlížeče
  • Kombinace výše uvedených variant

Související odkazy


Přidáno 13. 7. 2015

Daring Fireball: Facebook’s New Chief Security Officer Wants to Set a Date to Kill Flash


Přidáno 3. 12. 2015

Adobe vybízí k tomu, aby vývojáři přestali používat Flash.

Takže… Já to říkal ;-)

6