다음을 통해 공유


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

Comments

  • Anonymous
    November 11, 2010
    Abyste pochopil, co lidi trápí, tak si představte, že dnes chcete vyvíjet nějakou RIA aplikaci, řekněme sociálního klienta. Vaším zájmem je, aby se aplikace dostala k co nejširšímu spektru uživatelů, samozřejmě jde ale také o náklady na vývoj. HTML exceluje v prvním, Silverlight v druhém a vždy to tak bylo, co se však na PDC změnilo, je vize do budoucna. Zatímco před PDC jsme mohli doufat, že strategií Microsoftu bude udělat ze Silverlightu a potažmo .NETu primární vývojovou technologií pro prohlížeč, desktop, mobily, televize atd., dneska nejvyšší vedení otevřeně říká, že takové ambice opouští a tuto roli bude mít HTML5. Pokud tedy dnes začnu vyvíjet RIA aplikaci v Silverlightu, musím počítat s tím, že vyvíjím ve specifické technologii, která nemá ambice "být všude". To je ta ohromná změna, která pro některé ISV dělá Silverlight "mrtvý". On samozřejmě není a nebude, ve své původní vizi ".NET everywhere" se s ním však patrně musíme rozloučit, nebo je minimálně sázka na Silverlight hodně riskantní.

  • Anonymous
    November 18, 2010
    Já to samozřejmě chápu a také jsem to v mém komentáři tak napsal. Máte určitě pravdu v tom, že původní idea, která se skrývala pod názvem Silverlightu - WPF/E (= Windows Presentation Foundation Everywhere) vzala za své. Opravdu „všude“ nebude.  Nechci nikoho obhajovat, ale nepamatuji si, že by jsme kdy prohlásili – Silverlight opravdu pojede na každém HW a OS. MS vždy garantoval platformu Windows a Apple. Později na základě spolupráce s Novellem byla uvolněna verze Moonlight pro majoritní verze Linuxu. A naposled byla uvolněna verze pro Nokia Symbian (www.silverlight.net/.../symbian). To podle mne moc lidí ani nepostřehlo. Pokud jde o televize a různá settop boxy, tak ty, které jsem postaveny nad Windows Embedded tuto možnost mají také, protože tam byl SL také portován a v instalační sadě. Otázkou zůstává co s různými desítkami a stovkami klonů Linuxu a nově objevivším se Androidem. Pro tyto platformy řešení nemáme a ani jsme je před 3 lety plánovat nemohli. Což bude případ jakékoli pořádné RIA platformy. Proto bych asi nepoužil slovo „mrtvý“, ale asi nevhodný. Pokud by jste se mně před rokem zeptal, jakou platformu vybrat pro projekt, který „musí běžet úplně všude“ (třeba i v mém dálkovém ovladači), má odpověď by byla identická – HTML. Pokud budete mít zájem, přečtěte si tento blogpost člověka z „pole“. blog.scratchaudio.com/.../html5-flash-silverlight-which-one-is-dead Je to sice pohled z jedné branže, ale určitě zajímavý.

  • Anonymous
    February 22, 2011
    dik za ten link, pohled urcite zajimavy, ale hlavne, vubec jsem nevedel, ze podobna stranka existuje, uz jsem zaregistrovan a jdu kolaborovat :) diky