Silverlight vs HTML5 – bitva, která se nekoná

Do nadcházejícího vydání .NET zpravodaje jsem si dovolil napsat úvodník na téma mediální pranice, která vznikla ihned po uvedení úvodní přednášky na konferenci PDC 2010. Pro ty z vás, kteří zpravodaj ještě neodebíráte, jej budu citovat:

"Když jsem se minulý týden díval po internetu v Silverlight playeru na přímý přenos přednášek z PDC, neuvědomil jsem si, čeho budu svědkem v následujících dnech. Zejména na komunitních IT webech nastala naprostá panika, podobná výbuchu Eyjafallajoekull nebo prasečí chřipce, ohledně údajného pohřbení platformy Silverlight. Tak jako prach z islandské sopky nezpůsobil žádnou havárii letadla a stejně tak jako nedošlo k hromadné epidemii chřipky i bez očkování, tak ani Silverlight nekončí.

Microsoft intenzivně investuje do rozvoje této platformy a fakt, že na PDC jsme nepředstavili alfa verzi 5.0 ještě neznamená její konec. Naopak. Silverlight se za poslední rok stal preferovanou platformou pro vývoj business aplikací v prostředí internetového prohlížeče a hlavní platformou pro vývoj aplikací pro Windows Phone 7, vedle typického použití pro pokročilý multimediální obsah nebo RIA. Na dlouhodobé strategii se toho také moc nezměnilo. Stále půjde o multi-browser technologii přímo podporovanou na Windows a Mac OS. Linux verze je nadále implementována firmou Novell."

A teď trochu hlubší pohled

Silverlight začal svou cestu k vývojářům v roce 2007, kdy jsme uvolnili první verzi, primárně zaměřenou na multimediální projekty. O rok později byla vydána verze 2 s podporou .NET Frameworku a .NET jazyků a tentýž rok byl oznámen i příchod verze 3, která světlo světa spatřila na počátku roku 2009. Redmondský tým nelenil a opět po 9 měsících byla uvedena beta 4. verze. Její příchod na trh byl načasován na duben tohoto roku, tedy nějakých 13 měsíců po verzi 3. Když jsem si to teď takto sepsal, tak musím opravdu před Silverlight týmem smeknout klobouk. Za necelé 3 roky vydat 4 verze produktu balancuje na hraně únosnosti. Ale je to pochopitelné – začínali jsme z nuly a vedle nás stály vyspělé technologie, jako jsou Flash nebo Java. Pokud měl Silverlight rychle stáhnout náskok a ukázat svou hodnotu, tento překotný vývoj musel nastat.

Silverlight, jako platforma pro běh aplikací, není jedinou věcí, která se musí vyvinout v novou verzí. Musí to být také nástroje – ať jde o Visual Studio nebo Expression Studio. Když si to vše dám dohromady s tím, jak často chtějí (a jsou ochotni) vývojáři měnit své nářadí, hlava mi říká, že 5. verze by již neměla přijít s takovým kalupem. Prostě chvíli chci mít pod rukami jednu verzi s odpovídajícími nástroji. Mimochodem dnes velice vyspělou, zdatně konkurující okolí.

Posledním novinkou, o které se hodně na PDC hovořilo, je využití Silverlightu jako primární platformy pro vývoj nad Windows Phone 7, včetně speciálního buildu VS 2010 pro WP7 projekty, stejně jako WP7 Expression Blend edice. Mimochodem poprvé v historii Microsoftu, kdy jsou tyto nástroje zcela zdarma všem vývojářům.

Ani jeden z uvedených faktů ve mne nevyvolává sebemenší pocit pochybnosti, že by se vývoj Silverlightu jakkoli zastavil. Je tady ale jedno „ALE“.

Chybné ALE

Skeptici v tuto chvíli asi chtějí vykřiknout – ALE vždyť jste vyhlásili totální podporu HTML 5 a pracujete ve standardizačních komisích jako diví. HTML 5 vytěsní Silverlight do ústraní. Zní to jak bystrá úvaha, je tomu ale opravdu tak?

HTML 5 není náhradou Silverlightu, nýbrž obě technologie se významně dobře doplňují. Velice dobře si dovedu představit, že HTML 5 a JavaScript nahradí současné triviální reklamní aplikace ve Flashi, případně amatérské přehrávače videa. Ale i zde vidím notný problém, protože válka kodeků v rámci <video/> tagu zatím nemá jasného vítěze. A jak dlouho se to již řeší, nemáte pocit?

Kde je tedy typické místo v současném světě pro Silverlight?

  • Aplikace s rozsáhlejší aplikační logikou. Silverlight od verze 2. podporuje jazyky, jako jsou C# nebo VB.NET a obsahuje derivát .NET Frameworku. Zde působí JavaScript, se vší úctou, jako chudý příbuzný a pro celou řadu aplikací si nedovedu vůbec představit jeho použití.
  • Aplikace s větší vazbou na data a datové služby. Od verze 4 Silverlightu přibyla silná podpora pro WCF služby, RIA Services nebo rozšířený databinding.
  • Pokročilé multimediální aplikace. Již od verze 3 jsou podporovány a vylepšovány technologie jako Smooth Streaming, DRM ochrana (i offline), podpora HD formátů a jejich přehrávání na celé obrazovce a mnohé další.
  • Aplikace, které mají běžet v prohlížeči i mimo prohlížeč se zachováním plného bezpečnostního sandbox modelu.
  • Aplikace, kde vyžadujeme pokročilé grafické operace a složitější interakci s uživatelem. Typicky ve scénářích, kdy chceme nebo potřebujeme uživateli navodit pocit, že pracuje s běžnou desktopovou aplikací.
  • Aplikace, které se mají naprosto a zcela identicky chovat na platformách, kde je Silverlight portován. Podíváme-li se na stav, ve kterém se nachází HTML/CSS v jednotlivých prohlížečích, každý soudný profesionál musí přiznat, že stav je žalostný. Napsat kód, který bude zcela bezpečně fungovat ve všech současných verzích prohlížečů od všech výrobců, je velmi náročný úkol. Jednotné prostředí Silverlightu, ale třeba i Flashe tyto rozdíly prostě stírá.

Celou řadu aplikací bude možné vytvořit v jedné nebo druhé technologii. Ať jde o Silverlight a Flash nebo HTML 5. Pak budou vstupovat do hry další faktory jako např. zkušenost a preference programátorů, možnost nasazení runtime prostředí, potřeba běhu na širším rozsahu zařízení. Třeba jedno bude mít televize HTML 5 – capable prohlížeč, ale i instalovaný Silverlight. To není utopie, dnes existují externí set-top boxy se Silverlight pluginem pro příjem live streamu.

V tuto chvíli mohu se vší odpovědností říci, že budoucnost bude barevná a Silverlight i HTML 5 budou vedle sebe existovat velice dobře. Se stejnou vizí k tomu přistupuje i celý Microsoft a na obou technologiích v současné době probíhají intenzivní práce a brzy o nich uslyšíte. Nebojte.

Závěr bych nechal asi jednomu číslu ze statistiky www.riastats.com pro Českou republiku: 67,5% PC má instalován Silverlight pluging. Před 3 léty mi nikdo nevěřil.

clip_image001