Na konferenci MIX09 byla oznámena betaverze Silverlightu 3.0, která přímo konkuruje platformě Flash Player / Flex od Adobe. Jelikož Flex dost důvěrně znám, uvedu pár dojmů z pohledu člověka, co by Silverlightu úspěch moc přál, ale zároveň zná možnosti konkurence.
Tak tedy první dojmy v bodech (upozorňuji, že veškeré dojmy jsou založeny pouze na informacích z keynote, SL3 jsem zatím neinstaloval a nezkoumal):
- Celkově nebylo oznámeno nic extra převratného. Z mého pohledu Silverlight stále dohání Flex, byla přidána např. podpora pro integraci s historií prohlížeče a deep linking, pixelové efekty, GPU akcelerace, 3D, vylepšení data bindingu, LocalConnection API, cachování knihoven atd., což jsou všechno věci, které Flex už nějakou dobu má.
- Jediná opravdu inovativní věc, která bude v Silverlightu 3, je multitouch.
- Podle dema bude Blend 3 opravdu zajímavou aplikací pro designéry – podporuje sketchování, kolaboraci s klienty, převod PSD do funkčního uživatelského rozhraní atd. Jakkoliv je ale Blend 3 „cool“, celkově se mi nelíbí strategie, kdy MS kašle na pořádný návrhář ve Visual Studiu a namísto toho investuje do Blendu, který je popravdě řečeno pro programátora dost utrpením. Ve světě Flexu dojde taky k oddělení vývojářského nástroje (Flex Builder, postavený nad Eclipse) a nástroje pro designéry (Flash Catalyst), ale rozdíl je ten, že Flex Builder je pro návrh UI plnohodnotným nástrojem s kvalitním vizuálním návrhářem. Jistě, Catalyst bude umět víc, ale to je v pořádku. Základ pořád můžu udělat já jako programátor ve Flex Builderu.
- Tím se dostávám k dalšímu bodu, který mě osobně (nepříjemně) překvapil: Microsoft neoznámil žádné výrazné vylepšení Silverlight Tools for Visual Studio. To ještě neznamená, že se žádná vylepšení konat nebudou (možná se to jen nevešlo do keynote), ale osobně se vážně bojím, že Microsoft bude vydělávat prašulky na Blendu a Visual Studio bude propagovat jako nástroj pro vývojáře, kteří už mají UI vytvořené designerem a nemusí ho tudíž moc řešit. Což je samozřejmě bullshit.
- Scott Guthrie taky vůbec nemluvil o vylepšení kompatibility WPF a Silverlightu. Můj osobní názor je, že WPF byla velká chyba Microsoftu, která zbrzdila vývoj jejich vlastních aplikací i celého odvětví o roky (to by bylo na delší vyprávění), ale když už tu WPF máme, měl by být Silverlight co nejvíc kompatibilní. Absence tohoto tématu na keynote mě trochu děsí, protože může naznačovat, že to není pro Microsoft prioritou.
- Možná se to bude zdát malicherné, ale pro mě je Silverlight mrtvý, dokud nezlepší svůj font rendering. S velkým nadšením jsem proto přivítal oznámení, že SL3 bude podporovat ClearType. Snad to nebude nějaký „vlastní ClearType“ jako tolik vychvalovaný „subpixel rendering“ ve WPF, který ve skutečnosti velmi snižuje čitelnost textu. V betě zatím vylepšený font rendering není.
- Velkým oznámením dne byl Silverlight Out of Browser (OOB). Tady jsem měl poměrně přesný odhad, co Microsoft uvede: pokud znáte Mozilla Prism, tedy možnost spustit webovou aplikaci ve vlastním okně zástupcem z plochy, ale přitom vlastně pořád v kontextu prohlížeče (a tedy v jeho bezpečnostním sandboxu), víte, jak bude fungovat Silverlight OOB. V žádném případě se tedy nejedná o konkurenci pro Adobe AIR, což je škoda. Jakožto Flex vývojář musím říct, že možnost znovupoužít zdrojový kód i zkompilované binárky současně na webu i na desktopu je naprostá bomba. Microsoft to buď nechápe nebo má tolik nainvestováno do těžko použitelného WPF, že management prostě nedovolí vytvořit AIR-like runtime a příslušná API. Sázka na unifikovaný vývojový model napříč různými běhovými platformami je esem v rukou Adobe a od Microsoftu asi bohužel žádný trumf v nejbližší době čekat nemůžeme.
Celkově vzato vidím SL3 jako verzi, která „jen“ dohání Flex. Je úctyhodné, že se Microsoftu během 3 let (nebo kolika) podařilo dohnat několikaletý náskok Adobe, ale tipuji, že první opravdu inovativní verze bude ta čtvrtá. To samozřejmě z SL3 nedělá nepovedený release, jen mě prostě oznámení z letošního Mixu nedokázala nadchnout. Ostatně, asi se tak necítím sám – v sále bylo letos dost ticho, což ostře kontrastuje s dlouhými potlesky a nadšenými výkřiky během konference Mix07, kdy Microsoft poprvé Silverlight ukázal.
Na závěr – takhle vidím hlavní silné a slabé stránky Silverlightu / Flexu já:
Silverlight:
- (+) .NET v prohlížeči, .NET na serveru, .NET v databázi = potřebujete znát jen jednu sadu technologií. Tohle je obrovská výhoda, která může vyvážit třeba i několik plusů Flexu.
- (+) Microsoft do Silverlightu mohutně investuje, vývoj je o dost rychlejší než u Adobe.
- (-) Vývojový model je postaven na zbytečně komplikovaném WPF.
- (-) Vývojové nástroje jsou nevyzrálé, Microsoft se příliš orientuje na designery s Blendem a ignoruje fakt, že s UI pracují i vývojáři
Flex:
- (+) Zavedená technologie, Flash Player běží skoro na všech počítačích světa.
- (+) Jednotný vývoj pro web a pro desktop. Binární kompatibilita!
- (+) Jednoduchý vývojový model velmi podobný HTML+JS. Žádné superkomplikované XML struktury, vše je jen tak složité, jak je nezbytné.
- (-) Pro serverové programování je potřeba použít jinou technologii
Flex neznám, proto se nebudu vyjadřovat ke srovnání. Zkusím okomentovat jen Silverlight. Co se týká WPF, tak to by v budoucnosti mělo být nadmnožinou, použitou v Silverlight. Neznám konkrétně tvé výhrady k WPF a docela by mě zajímaly, osobně mi to přijde jako dobrý směr nebo určitě lepší než winforms – ano, výhrady se také najdou, ale ve srovnání právě s winform je WPF vpředu. Pokud jsi se díval na Prism 2.0 (Composite WPF), tak řeší spoustu infrastrukturních věcí, které pomáhají ve výjoji a tak můžeš mít snadno sdílený kód aplikace pro Silverlight tak i „tlustého“ WPF. A myslím, že i spoustu ovládacích prvků budeš moci znovupoužít. Je jasné, že rozšířenost nemůže být za půl roku (v2.0) taková, jako má konkurence ve Flash playeru. Ale pokud se nemýlím, tak pro běh na klientovi je stejně nutno stáhnout separátní instalaci (cca 11MB). Navíc MS v tomto směru celkem dobře podchytil rozšiřování v podobě streamingu OH, a pokud vše dopadne, mělo by to být právě přes v3.0. Toť jen mé postřehy. --J.