Info Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na DevBlog.

Budoucnost je v HTML5. Bohužel.

Tento týden proběhly dvě velké konference společností Microsoft a Adobe, které vždycky sleduju s velkým očekáváním, protože novinky na nich oznámené čas od času vývojářům změní život. Když například Microsoft oznámil Silverlight, znamenalo to vyhlídku, že jednou napsaný kód půjde spustit jak na Windows, tak na Macu, v prohlížeči, na mobilních zařízeních, v televizích apod. Totéž Adobe a jejich Flex / Flash Platform. (Podobně Java, ale v jejím světě se nepohybuju.) Pokud píšete RIA aplikace, tato vize je jedním z nejlepších příslibů, jaké vám technologická firma vůbec může dát.

A pak přišlo Microsoft PDC a oficiální vyjádření, že Silverlight ustupuje z role obecné vývojové technologie a že tu teď bude plnit HTML5 – strategicky je tedy Silverlight de facto mrtvý. Adobe na svém MAXu neukázalo žádné novinky pro aplikační vývojáře na straně Flexu / Flashe, pouze „blbiny“ typu akcelerované 3D apod. (že je ActionScript 3 koncepčně 10 let starý a pro vývoj by se fakt hodila jeho nová generace, o tom ani ň). Opět se ale hodně mluvilo o HTML5.

Vypadá to tedy, že strategickou technologií budoucnosti je HTML5 – u Microsoftu bohužel úplně, u Adobe vývoj Flashe / Flexu pokračuje a znamená to tedy „pouze“ to, že HTML5 požere dost zdrojů už tak poměrně malé vývojářské firmě.

A z představy, že se RIA aplikace budou vyvíjet v HTML5, mi vlasy na hlavě vstávají hrůzou. Seznam důvodů je subjektivní, ale zde máte názor jednoho RIA vývojáře:

  • JavaScript jako jazyk je primitivní (málo toho umí), ale současně taky poměrně komplikovaný (X+1 způsobů, jak realizovat OOP, apod.). Souhlasím, že JavaScript je asembler webu, a trpím představou, že bych měl v asembleru programovat. Podívejte se třeba, jak C# 5.0 krásně řeší asynchronní programování, a ve světě AJAXu, kde se toto píše pořád dokola, ticho po pěšině.
  • Dejte vědět, až HTML5 jako standard ve své úplnosti bude mít penetraci přes 10%. I když, jako vývojáře mě vlastně zajímá spíš nějakých 80%. Můžeme se vsadit, jestli tou dobou ještě vůbec budu programátor.
  • V HTML jsem viděl velmi málo aplikací reálného rozsahu. Mezi pár světlých výjimek patří Gmail, Google Docs, Office Web Apps a pár dalších, což jsou ale téměř vždy aplikace s velkou firmou v pozadí a s enormními investicemi do vývoje. Menší HTML aplikace se moc nevidí – je to jen náhoda?
  • HTML má pro vývoj aplikací velmi nízkou sémantiku.
  • Nástroje pro AJAXový vývoj jsou relativně primitivní, což je přirozený důsledek několika bodů výše. Situace se postupně zlepšuje, stále bych ale IDE pro AJAX nesrovnával s nejlepšími IDE pro jiné technologie.

Jsem hodně zvědavý, co nás na poli RIA aplikací čeká v příštích pár letech. Můj současný odhad je, že Flex zůstane podobný jako dnes – poměrně velmi dobrá technologie, jen s menším množstvím inovací pro vývojáře, protože na to prostě Adobe nemá lidi. Silverlight je patrně mrtvý, pokud někdo z Microsoftu strategii nezmění, a potenciálně zajímavá by opět mohla být Java, ačkoliv tam je problémů taky dost. Pokud se však naše budoucnost jmenuje HTML5, z mého pohledu se musí stát následující:

  • Rozšířenost HTML5 jako celku se musí dostat na rozumná procenta, jinak budu jako vývojář mrhat časem při hledání x-browser bugů (od toho už jsem si vážně odvykl).
  • V HTML5 se nesmí programovat přímo, ale pomocí nějakého jazyka vyšší úrovně. Nejvíc by se mi asi líbil Silverlight / XAML + C#, ale přežitelný by byl i Flex, případně Java (tam se o možnosti kompilace do HTML5 už otevřeně mluví)
  • Nevěřím, že HTML5 plně nahradí technologie pro vývoj desktopových aplikací (možné to je např. pomocí Adobe AIR), opět tedy vidím nutnost pro nějaký jazyk vyšší úrovně, který by web a desktop zapouzdřil. Opět proč ne XAML nebo něco jako Flex.
  • Potřebujeme lepší nástroje. Daleko lepší, než dnes.

Zatímco tedy lidi od webu HTML5 oslavují a jásají, já v něm vidím velké riziko pro vývoj RIA aplikací. Snad bude budoucnost shovívavá.

Zařazeno do kategorií |
vlko (Ne, 2010-10-31 13:22):

Neviem prečo máš pocit, že je silverlight mŕtvy? Podľa mňa len MS povedal, že to nebude jeho primárna crossplatform technológia, ale jej vývoj sa určite nezastaví. Čo by určite nebolo logické. Silverlight bude hlavne to čo ty od nej čakáš, teda RIA a game platforma a v budúcnosti možno náhrada desktopu. BTW nejaké flame už máme tu http://www.as­pnet.sk/…-101741.aspx

Borek (Ne, 2010-10-31 13:53):

„Mrtvý“ není, budou ho podporovat ještě X let, skoro určitě přijdou i nové verze apod., ale strategický význam Silverlight ztratil. Je to jako s WPF – taky „žije“ a MS v něm píše některé významné kusy softwaru, ale inovativní technologie obklopená nadšenou komunitou vypadá jinak.

V MS je všechno otázka peněz, a pokud SL přivřou nebo skoro uzavřou kohoutek, je v podstatě konec. Na vysokých místech je SL údajně dlouho vnímán jako „fuck you Windows product“, takže jsou IMO obavy na místě.

Keff (Ne, 2010-10-31 14:51):

Znáš blog SL product managera? http://www.ri­agenic.com – doporučuji sérii ‚Rise and fall of Microsoft‘s UX platform' a povzdech ‚WPF has no product manager‘

Aleš Roubíček (Ne, 2010-10-31 13:38):

Já bych se zas tak nebál. :) JavaScript není zas tak špatný jazyk, ostatně píšeš v ActionScriptu, který je dost podobný. Ok, rozdíl mezi třídní a prototypovou dědičností může někomu dělat problémy, ale není to zas tak zlé. A projekty jako Google Closure nebo Cappuccino jsou ukázkou dalšího směřování webového vývoje.

Bohužel projekt Volta moc daleko nedošel, ale zbyli z něj alespoň Rx. Ale kdo ví, co ještě drží pod pokličkou? Z některých diskusí s Erikem se občas dá odtušit něco zajímavějšího a i z Bartovy přednášky na PDC bylo cejtit ve vzduchu něco víc.

Peklo jménem XAML bych tu raději neslyšel, z toho se mi ježí nejen vlasy na hlavě. :) Výhodou HTML je, že funguje všude, protože je jednoduché. To se o překomplikovaném XAMLu říct neda. :)

Dík za pěkný námět k zamyšlení!

Borek (Ne, 2010-10-31 14:01):

Ad JavaScript – je to určitě subjektivní, ale připadá mi jako jeden z horších jazyků pro praxi, které jsem měl tu čest poznat. AS3 je syntakticky podobný, ale způsobem používání dost jiný.

Ad XAML – byl to spíš příklad, MXML ve Flexu se mi třeba líbí o dost víc, ale i ten XAML mi připadá lepší než HTML. Ono sice „funguje všude“, ale musíš doplnit „tak nějak“.

Jitka Dařbujanová (St, 2010-11-03 09:01):

S tím Borku souhlasím a předvídám smutné dny, kdy budu manažerům vysvětlovat, proč daná funkcionalita, která šla dříve vytvořit přetáhnutím myši či jednoduchým a standardním způsobem nyní trvá podstatně déle. Kdo si zkusil oba přístupy, musí uznat, že pro Javascript neexistuje (nebo ho neznám) dobré a intuitivní IDE, se standardizovaným toolboxem komponent (jQuery se snaží, ale v tomto zdaleka zdaleka není tam, co je pro praxi potřebné a nezbývá, než do JS občas zasáhnout), který by práci zjednodušil natolik, aby efektivita byla alespoň srovnatelná s Flexem, Silverlightem aj.

Tomáš Herceg (Ne, 2010-10-31 14:57):

Aleš Roubíček: Co je na XAMLu proboha překomplikovaného? To se bohužel nedá říct o primitivním HTML a CSS, na které se postupně naplácávaly a dále naplácávají další a další rozšíření, které jsou většinou dost vágně popsané ve „standardu“. Je sice jednoduché, ale bohužel všechny technologie, které začaly něčím jednoduchým a na které se pak přidávalo podle potřeby a bez jakékoliv koncepce, končí nepřehledným balastem. Stejně je to například s e-mailem – na začátku jen textové maily bez diakritiky, pak přišel MIME a dneska napsat parser, který by to zvládl, je práce na dva měsíce nejmíň. To samé HTML a slavné CSS, jenom naimplementovat pořádný parser CSS, který zvládne všechny výjimky a prasečiny typu !important, je naprosto šílené. To není překomplikované?

Aleš Roubíček (Ne, 2010-10-31 15:56):

Pokud potřebuješ psát vlastní parser pro HTML, e-mail nebo CSS, jistě zvládneš hravě i XAML o tom žádná. :)

srigi (Ne, 2010-10-31 17:32):

Ehm, myslim ze ste tem pripevok pochopil zo zlej strany. Vyvojar aplikacie pre koncaka sa nezaobera problemami, ktore popisujete. Prispevok aj clanok je skor o tom co takyto vyvojar moze pouzit na vyvoj RIA app, ktora pobezi prevazne v browseri.

Daniel Steigerwald (Ne, 2010-10-31 14:12):

V mnoha bodech s tebou souhlasím, a jen dodám svou zkušenost.

  1. JS OOP, ano, každý to kurví po svém, ale situace je dnes taková, že js libraries war is over. jQuery vyhrálo, a přitom žádnou podporu tříd nemá. jQuery UI něco má, ale je to zpatlanina. Prošel sem asi všechny knihovny, a skončil u Google Closure. Nic mne už nedonutí dát znovu šanci YUI, Mootools, Prototype.. to jsou mrtví koně. Na malé skriptování je jQuery nejlepší, na skutečné aplikace jedině Closure. Proč? Protože Closure Compiler.
  2. Nástroje. Co konkrétně postrádáš? Nemám pocit, že by něco zásadního chybělo.
  3. Javascript. Co konkrétně postrádáš? Nemám pocit, že by něco zásadního chybělo. Dívajíc se na vývoj C# v posledních letech z odstupu, většina novinek je sugar směrem ke stručnějšímu kódu a ala dynamickému programování. Nic, co bych v JS potřeboval. Closure Compiler je naopak krok ke větší statičnosti Javascriptu.
  4. AJAX už dnes není o ladění bugů, i když mě se to lehce řekne, anšto sem dropnul IE < 8 :)
Borek (Ne, 2010-10-31 16:18):

Dík za komentář, v zásadě jsme asi ve shodě, takže jen dvě malé poznámky / odpovědi:

Ad nástroje – HTML i JS jsou pro nástroje hůře srozumitelné než jejich deklarativnější kolegové, proto ta horší podpora. (JS nástroje jsou na nižší úrovni, ne že by snad vyloženě něco chybělo.)

Ad JS – napíšeš v něm samozřejmě cokoliv, jde o pohodlí. Kromě OOP by se tam hlavně hodila lepší syntaxe pro asynchronní kód.

Daniel Steigerwald (Po, 2010-11-01 09:47):

Jak to myslíš s tím asynchronním kódem? Celé jQuery je založeno na callbacích. http://nodejs­.org/ taky. Tohle uměl JS odjakživa, na rozdíl od C# < 5 ;)

Aleš Roubíček (Po, 2010-11-01 10:04):

C# umí callbacky od verze 2.0, předtím to šlo řešit pomocí eventů. Ale C# 5.0 zavedl syntaxi, která nutnost callbacků u async volání ruší. Kód je tak jakoby synchronní, ačkoli funguje asynchronně.

Borek (Po, 2010-11-01 10:15):

Jé, předběhl's mě, a navíc asi s přesnější informací :)

Aleš Roubíček (Po, 2010-11-01 10:24):

Občas se zadaří :)

Borek (Po, 2010-11-01 10:13):

Teď nevim, jestli to myslíš vážně nebo žertuješ, ale:

  1. C# má delegáty od první verze (v novějších verzích se pouze přidaly další možnosti jejich zápisu)
  2. Model callbacků je právě to, co se mi nelíbí. Dá se s ním žít (ve Flexu to koneckonců jinak nejde), ale podívej se znovu, jak se dá asynchronní kód zapsat v C# 5.0. „Kam se hrabe Bitner, to se nedá srovnat!“
Daniel Steigerwald (Po, 2010-11-01 10:25):

Jistěže, proto ten smajlík. Většinu toho co umí C#5 lze implementovat i v C#1, Vavrochu. Byl sem zvědav, jakou podporu pro async by sis představoval.

Aleš Roubíček (Po, 2010-11-01 10:29):

Jde, ale je to dřina :)

Tomina (Ne, 2010-10-31 17:23):

Dost me to provide a require v Google Closure pripomina Dojo, ktere take vubec neni spatne.

Keff (Ne, 2010-10-31 14:49):

Nízká sémantika – přesně, WPF/SL mají standardní seznam OS ovládacích prvků s platform-standardním chováním, u kterých se dá libovolně měnit vzhled při zachování funkčnosti, v HTML5 jich půlka chybí, a templatování neexistuje.

Bylo by super, kdyby MS využil toho, co vymyslel pro WPF, a napsal něco podobného, s funkčním databindingem a oddělením modelu, view a presenteru/vi­ewmodelu a s kompilací do HTML5+JS. A když se budeme hodně modlit, třeba se to bude psát v C# :)).

Borek (Ne, 2010-10-31 16:11):

S druhým odstavcem plný souhlas.

v6ak (Ne, 2010-10-31 14:53):

K Javě: Vidím zde dvě možnosti:

  • Zajímavě vypadající JavaFX s deklarativním popisem a novým jazykem JavaFX Script, který se snažil vzít z Javy i JavaScriptu to lepší. Je staticky typovaný, ale používá type inference. Bohužel, obávám se, že co do penetrace je lepší použít HTML5.
  • Google Web Toolkit – překlad Javy do HTML a JS. Taková realistická cesta. Vzhledem k překladu přímo ze zdrojáků je problém s jinými jazyky této platformy (Scala, Groovy, Mirah,…), ale například Mirah má podporu překladu do Javy a u Scaly se chystá něco podobného.

Řekl bych, že odpovědí na tyto problémy by mohlo být spíše GWT. Myslím, že je v něm psán i GMail. Jako killer feature umožňuje sdílet implementaci některých částí (např. validace) klientu se serverem.

.NETaře by u GWT mohlo potěšit: http://www.ik­vm.net/

Borek (Ne, 2010-10-31 16:10):

JavaFX Script je, pokud se nepletu, mrtev. Java je v současnosti platforma s velmi nejasnou budoucností.

Něco jako GWT by mi v principu vyhovovalo, viz text postu, jen GWT konkrétně prý v praxi přináší svou sadu problémů (nemám to ale z vlastní zkušenosti). Tak uvidíme.

Pavel (Po, 2010-11-01 00:07):

Kromě GWT existuje ještě http://j2s.sou­rceforge.net/ Kompilace javy do javascriptu je tedy realitou, samozřejmě není podporováno vše.

Nevím, co je na budoucnosti Javy nejasného. Konkurence CLI se pozitivně projevila i v tom, že JVM bude také podporovat více jazyků (i dynamické). Navíc téměř výhradně zabrala cloudy (VMware,Google). JVM je na rozdíl od CLI multiplatformní (Mono nikdo nebere tak vážně, aby na něj vsadil firemní strategii) a má na sobě nezávislé silné implementace.

Mám pocit, že v tomto trpíte profesní deformací, díky své pracovní návaznosti na technologie Microsoftu. Nic ve zlém, kdo ostatně ne.

Borek (Po, 2010-11-01 00:36):

Jak jsem psal, svět Javy sleduju pouze z povzdálí, ale různé články o problematické akvizici Oraclem, odchodu Goslinga apod. by mi úplně nedovolili Javu nazvat bezpečnou volbou.

v6ak (Po, 2010-11-01 13:22):

No, uznávám, že jisto ohledně Javy není, ale Oracle ji potřebuje až moc na to, aby ji zařízl.

v6ak (Po, 2010-11-01 13:24):

To J2S vpadá zajímavě, dost možná to zkusím.

v6ak (Po, 2010-11-01 13:21):

Pokud je JavaFX Script mrtev, je to celkem škoda. A pak jsem asi i udělal dobře, že jsem šel do Scaly.

Pavel Šimek (Po, 2010-11-01 23:15):

JavaFX vznikla podle mě na základě úplně pomýleného předpokladu – že to, co Javě chybí k masovějšímu rozšíření, je jednodušší jazyk. V době, kdy RIA vývojáři volají po lepším JavaScriptu a lepším ActionScriptu a celkově po „dospělejším“ programování.

v6ak (Čt, 2010-11-04 11:30):

Možná mám pohled příliš podobný Sunu, ale co je na tom špatného? Jinak JavaFX zahrnuje nejen nový jazyk, ale i například společný vývoj pro web a mobilní i desktopová zařízení.

Juraj Michálek (Ne, 2010-10-31 15:08):

Zmena je tu. HTML5 má pred sebou gigantického nepriateľa s menom IE6. Definujú sa nové sféry vplyvu.

Čo sa týka toolingu, tak dúfam, že z RIA technológii sa zoberie to najlepšie a dostane sa to do HTML5. Uvidíme. :)

A ako bolo písané na tej múdrej knihe: Nepropadejte panice :-)

Aleš Roubíček (Ne, 2010-10-31 16:01):

IE6 je nepodporovaný ze strany Microsoftu, je to bezpečnostní hrozba.

Anonymous (Ne, 2010-10-31 16:45):

IE6? uz je davno mrtev…. C# a silveright… teda veby jedouci jen na tom co MS povoli? E to rajedi HTML5 a javascript….. a GWT nevypada spatne

Aleš Roubíček (Ne, 2010-10-31 18:16):

Od GWT se IMO upouští ve prospěch Closure…

Jakub Nešetřil (Ne, 2010-10-31 18:23):

Sice si nemyslím, že Flex/Silverlight byly nějaké obstojné alternativy, ale jinak překvapivě musím souhlasit. Vývoj RIA aplikací je dneska bez diskuzí příliš drahý a náročný.

Nad Javascriptem je už dneska automaticky potřeba používat nějakou knihovnu – tedy čistý JS/DOM už je nepoužitelný/low-level. Ale nestačí to. Nástroje chybí – a hlavně vyšší abstrakce.

Taky by mne velmi zajímalo, kam se to vrtne. Byl bych velmi nerad, kdyby RIA/open web ustoupil mobilním apps a app stores. Toho se trochu obávám.

Borek (Ne, 2010-10-31 22:14):

Možná tomu nebudeš věřit, ale říkal jsem si, jaký komentář bys asi napsal, kdybys tenhle článek navštívil :) Je zajímavé vidět, že ač oba přicházíme z opačného směru, leccos vidíme podobně.

Michal Blaha (Ne, 2010-10-31 18:56):

ad c# compiler do JS – a http://projec­ts.nikhilk.net/Scrip­tSharp by vam nestacil? realne pouzivane i interne v MS (autor byl pretahnut do MS)

Borek (Ne, 2010-10-31 22:19):

Pro reálný projekt mi použití Script# připadá příliš riskantní (closed source, není to oficiální produkt MS, malá komunita apod.), ale je to určitě zajímavý prototyp.

Jarda Jirava (Ne, 2010-10-31 19:10):

Zajímavá úvaha a musím se přiznat, že jsem ani nebyl překvapen z toho, co MS na PDC představil. Ono to nakonec tak nějak zapadalo do toho, co vše bylo „polointerně“ komunikováno ven, byť se samozřejmě vyrojilo spoustu nových otázek a v mnoha případech to vedlo i k rozčarování či zajímavým závěrům. Tak snad se brzy (třetího) dozvím víc a aspoň něco bude publikovatelné ven.

Na mě to zatím působilo tak, že ani jedna společnost chtěla dát jasně najevo, že s HTML5 počítají a budou jí podporovat, což myslím, muselo přijít, jinak by se ocitla jedna nebo druhá společnost v palbě otázek a nevole od webových vývojářů.

Co mě však zatím nechává poměrně chladným v tomto směru je to, že jsem neviděl jasnou prezentaci podpory vývojových nástrojů (u Adobe jsem MAX tolik nesledoval, tak je možné, že něco představil, tak mě kdyžtak Borku doplň). Ale minimálně i z tvého příspěvku je jasné, že podpora technologie ano, podpora vývojářům, kteří by s danou technologií měli pracovat je slabá a teprve se začne hledat způsob, jak jim tuto technologii nabídnout v nějakém slušivém kabátku.

Co se týká XAMLu, tak tady by myslím neměl být zas tak velký problém jej uzpůsobit k tomu, aby bylo možné generovat jiný výstup, alespoň takto se mi to jeví jako snadnější úkol, než třeba implementovat ohlášený airspace. Osobně bych byl rád a zamlouval bych se za příklon k Silverlightu, resp. k XAMLu a C#, ale uvidíme, třeba MIX nabídne víc. btw. z mého pohledu to krásně vyskytl jeden ze Silverlight MVP, to, že se na některou technologii nedostane v keynote ještě neznamená, že je tato mrtvá. U Silverlightu je to dáno i tím, co bylo deklarováno, že se ten vývojový cyklus zpomalý. – J.

Aleš Roubíček (Ne, 2010-10-31 19:25):

Co považuješ za podporu v nástrojích? HTML5 je maličko rozšířený markup oproti HTML 4. Adobe má Dreamweaver, MS VWD/Expression Web. Pokud jde o animace CSS3 nebo Canvasu, tak tady něco má Adobe a Expression určitě taky nebude problém upravit na krapet jiný výstup. JavaScript má dnes velice silnou podporu v nejrůznějších IDE srovnatelnou s jazyky jako Java nebo C#. Ani zde nevidím žádný problém…

Jarda Jirava (Po, 2010-11-01 10:32):

Onou podporou myslím něco víc než jen to, že mi dokáže vývojové prostředí obarvit kód, případně poskytnout intelisense, či refaktorovat kód.

Jestli jsem dobře pochopil o čem by mělo HTML5 být – tedy nejen canvas, tak bych uvítal nástroje, které mi dokáží s HTML5 pracovat. A tady si myslím, že je cesta ještě hodně dlouhá. Už to tady někdo zmiňoval, opět se bude vymýšlet nějaký prezentační framework, abych měl oddělenou prezentaci od prezentační logiky, to s sebou ponese možnost vše vidět (nejen si to představovat) a to pokud možno v design time. Ono se stačí podívat třeba na Expression Blend, který podle některých umí poměrně málo oproti tomu, co by umět měl, a přitom o hodně velký kus oproti Expression Webu. A asi tak nějak bych si chtěl představovat nástroj pro RIA aplikace, kam počítám s HTML5 budeme směřovat.

Když si člověk zvykne na nějaký standard, tak se mu zpátky moc nechce, a tyto podpůrné nástroje budou pro masivnější rozšíření třeba. --J.

Aleš Roubíček (Po, 2010-11-01 10:55):

Můžeš být prosím konkrétnější? Já pořád netuším, co vlastně potřebuješ? :)

  • Editory markupu HTML máme jak textové tak WISIWIG.
  • Prostředí pro vývoj v ECMAScriptu taky.
  • Exportovat vektorové animace do SVG dnešní nástroje také umí.

Dvě místa, kde to může trochu být problém je Canvas (bitmapové manipulace) a CSS3 animace.

Možná, že chceš nějaké komplexní prostředí, kde bys mohl dělat všechno, ale takové dnes neexistuje ani pro současné technologie.

Ad prezentační framework. No tak ten je právě HTML 5. Navíc přece není problém i v JS psát triády, tak jak jsme zvyklí jinde. Na to není speciální framework potřeba.

Borek (Po, 2010-11-01 12:26):

Například „mít WYSIWYG“ a „mít dokonale funkční WYSIWYG“ je to, co odlišuje HTML od Flexu / SL / WPF apod. Nikdo netvrdí, že se v HTML / JS nedá programovat – samozřejmě že dá – ale jak píše Jarda, když si zvykneš na určitý standard, špatně se jde zpátky.

Aleš Roubíček (Po, 2010-11-01 12:53):

Ale pro WPF/Silverlight nebyl WISIWIG ve VS donedávna, tak jaké pak zvykání? ;) Že programátor nemůže snadno šoupat formulářovými prvky po plátně, vidím osobně jako výhodu. :)

Borek (Po, 2010-11-01 14:17):

Byl to jen příklad, navíc já netvrdil, že ten WYSIWYG byl ve Visual Studiu.

Jarda Jirava (Po, 2010-11-01 15:50):

Ony tři nástroje které zmiňuješ zde existují minimálně 13let a samostatně se vyvíjejí a přidávají různá vylepšení pro snazší manipulaci, jsou to však vždy samostatné aplikace, které vzájemně nedokáží komunikovat a tím pojítkem je až prohlížeč, kde to vše běží.

HTML5 vidím skutečně jako kombinaci všeho tedy jak html markupu, css, scriptu, tak i dat, která tím vším protékají. A právě tento integrační nástroj, který umí vše z tohoto a to v uživatelsky (vývojářsky) přívětivém kabátku není. Když se podívám třeba na zmiňovaný Expression Blend, tak co se týká UI v něm dokáži udělat naprostou většinu, pokud už mi vizuální nástroj nestačí, zasáhnu do XAML kódu. Spousta věcí pak jde udělat bez jakéhokoliv spuštění aplikace a to i s tím, že si mohu dodat design time data.

A právě proto, že se domnívám, že HTML5 bude o RIA aplikacích, tak bych předpokládal, že mi umožní tyto nástroje takové aplikace navrhnout a vyrobit.

Uvedu jednoduchý příklad, kdy mám zadávací formulář a v závislosti na vyplnění některého pole budu chtít zobrazit pole jiná. V Silverlightu (Blendu) mi stačí definovat stav a na ten se navázat – přehledně, vizuálně. Představoval bych si, že něco takového mi umožní i nástroj pro HTML5 → někde na pozadí bude vygenerován příslušný script. Obdobně pak třeba přiřazování různých tříd pro různé stavy ovládacích prvků atd.

--J.

Aleš Roubíček (Po, 2010-11-01 22:22):

Tady jde nejspíš o střet filosofií :) Někdy se nám těžko představuje jiná cesta schůdněší, ale ve výsledku tomu tak může být :)

Borek (Ne, 2010-10-31 22:24):

>>> to, že se na některou technologii nedostane v keynote ještě neznamená, že je tato mrtvá

Souhlas, ale tady o výrazných změnách mluví sám šéf velké divize MS. To není už jen, že by se na SL nedostalo v keynote…

Martin Hruška (Ne, 2010-10-31 20:27):

Závěr je tedy ten, že jsme se s vývojem vrátili někam do osmdesátých let, kdy se bastlilo v céčku říznutém asm a slovo IDE bylo sprosté. Když přišel Borland se svými IDE a později Delphi, bylo to jako malý zázrak!

Proč se musí historie opakovat? Bugy a vědomé rozdíly prohlížečů, vývoj JavaScriptu s binárním testováním funguje/nefunguje, to mi připomíná doby, kdy jsem neměl ani pořádný debugger a rezidentní aplikaci jsem ladil stylem resetlo se to, neresetlo se to.

Programátoři, kteří si zkusili napsat větší aplikaci pro web jsou dnes v blázinci, anebo mimo společnost.

Desítky let nikdo není schopen dát dohromady nástroj, který by byl zároveň multiplatformní a zároveň rozšířený. Flex vypadal nadějně, ale firma Adobe na to znalostně nemá.

Děs běs. Nikdo neví co bude a do čeho má investovat.

Keff (Ne, 2010-10-31 22:52):

Mluvíš mi z duše – v době, kdy už pomalu začíná fungovat statická analýza (ReSharper pro C#, IDEA pro Javu) a automatický refaktoring, u kterého se můžu spolehnout, že sebevětší změna neznefunkční program, se vracíme k něčemu, pro co neexistuje ani pořádné IDE (pro JS ani pro HTML není nic, co by se úsporou času při vývoji blížilo například VS + Re#…).

Ten dvacetiletý skok zpět třeba doženeme rychleji, než za 20 let, ale to nemění nic na tom, že je to obrovská a zbytečná ztráta času a peněz.

anonym (Po, 2010-11-01 00:12):

On je nějaký problém v kombinaci IDEA a GWT? http://www.jet­brains.com/…res/gw­t.html

Aleš Roubíček (Po, 2010-11-01 06:43):

Nevím v jaké době žijete, ale JavaScript má velice dobrou podporu v nástrojích. Jak už zmiňovaná Idea, tak Visual Studio mají výbornou podporu JS. CodeRush ve VS navíc přidává i vámi zmiňovaný refaktoring – a to i do HTML. Statickou analýzu máte přibalenou for free s Google Closure. Opravdu nevím v čem je dnes problém, možná v nedostatečné edukaci, ale to není problém platformy a nástrojů…

Martin Hruška (Po, 2010-11-01 09:24):

Bavíme se všichni o tom samém? O knihovně Google Closure bez dokumentace, widgetů a budoucnosti, o statické analýze v dynamickém jazyku, o zabugovaných prohlížečích ve kterých je všechno všude jinak atd?

Daniel Steigerwald (Po, 2010-11-01 09:37):

Není lépe dokumentovaná knihovna, než Google Closure.

http://closure-library.google­code.com/…s/in­dex.html http://closure-library.google­code.com/…s/in­dex.html

Jinak s tím „v blázinci nebo mimo společnost“ musím bohužel souhlasit, taková je/byla realita. Naštěstí se blízká na lepší časy, ano s AJAXem. Nová platforma nevznikne, protože těžko přeučíte zilion programátorů za noc. Je to tradeoff. Kdybychom psali aplikace pro web jako na desktop, všechny by vypadali jako vejce vejci. Nevznikly by mapy, ruzne widgety, facebook, atd.

Aleš Roubíček (Po, 2010-11-01 09:37):

Vzhledem k tomu, že tyto problémy jsou už vyřešeny frameworky jako je jQuery, YUI, Dojo nebo Closure, je tato debata trochu mimo. HTML 5 je tu mj. od toho, aby všude všechno jinak nebylo. HTML 5 jako platforma pro různé druhy zařízení ani z pricipu složitější widgety mít nemůže. Vždy je vhodnější pro dané zařízení použít specifický framework. Možností je spousta, stačí si vybrat.

Daniel Steigerwald (Po, 2010-11-01 09:41):

A ještě dodám, že ui widgetů má Google Closure přes stovku. Ano, jQuery má widgetů řádově více, ale to, že si někdo musí napsat 21. další autocomplete, o něčem svědčí. A jQueryUI je nerefaktorovatelný bordel.

Jitka Dařbujanová (St, 2010-11-03 09:23):

Velmi dobrou podporou bych nazývala situaci, kdy jako u jiných klientských programovacích jazyků mám nějaký vyspělý Grid, Layout maneger, Spllitery, Maskované textboxy atd.atd. které pouze přetáhnu na form a nastavuji parametry Object inspektorem a to včetně bindování dat. Nejdál je v tomto ohledu asi Ajax Toolkit od MS, kde už se to „dá“. Nerozumím ale stále konceptu, že javascripty těchto widgetů musí být s každým requestem znova a znova stahovány na klienta. Pokud by se JS widgety opravdu standardizovaly a prohlížeče je podporovaly, latence načítání RIA aplikací by klesla o velmi významné procento, servery by se poflakovaly anebo by se zaměřovaly na důležitější činnost. Je to ale utopie, protože na jednotných widgetech napříč všemi serverovými platformami se prostě těžko všichni v rozumné době dohodnou. Proto mě napadá instalace takové widgetové knihovny pro konkrétní serverovou technologii při prvním requestu. Samozřejmě následuje otázka doby cachování takových klientských knihoven, upgradu, bezpečnosti a toho zda by to právě na takovém konceptu nezhavarovalao, podobně jako má MS problém s množstvím instalovaných Silverlight pluginů… Každopádně do té doby to prostě zdlouhavejší bude, a to jak pro vývoj, tak pro provoz… Cesta, kterou se webový vývoj vydává spíš vede k něčemu, co už nebude tak „tenký klient“, protože jinak nároky na serverovou stranu narůstají ne lineárně ale exponenciálně, přičemž za virtuální „webovou aplikaci resp.stránky“, to z pohledu neprogramátorů vypadá, že by se mělo přece platit méně, než za desktop. program na CD doručený Českou poštou…

Aleš Roubíček (Po, 2010-11-01 06:47):

Tak to už je dnes zcela jasné, velcí hráči tlačí HTML5, začalo to Googlem, Applem, později Microsoftem a teď i Adobe…

ra.ri.ta (Po, 2010-11-01 15:20):

Programátoři žijí jakýsi divný svět. Stále brečí, že něco je a k tomu blbě nebo že něco není což je taky blbě.

Člověk před obrazovkou rozhodl, že krom textu a pár drobností nic jiného nepotřebuje. Proto tu je HTML a těch pár drobností zajistí velmi dobře JS.

Kdyby nebylo reklamních banerů, patrně nikdo po technologiích Adobe ani nehlesne.

I MS pochopil, že cesta  Silverlight není k užitku. On takové aplikace před tou obrazovkou vcelku nikdo nepotřebuje.

HTML 5 je pokračováním jednoduše použitelných prvků na obou stranách obrazovky. Kňučení programátorů, že ta druhá strana obrazovky jsou pitomci je mírně řečeno zpozdilé.

Borek (Po, 2010-11-01 17:08):

Tohle často říkají lidi, kteří nevědí, k čemu jsou RIA aplikace dobré a jak těžké je jejich programování. Často webdesignéři / programátoři :)

Anonymous (Út, 2010-11-02 08:04):

Tak trocha definice:

„Co to jsou vlastně ty RIA aplikace? Tato zkratka znamená Rich Internet Applications. Jsou to aplikace které se snaží být velmi uživatelsky přitažlivé – používají animace, efekty, zvuky, videa a nepoužívají standardní ovládací prvky.“

Tak toto přesně uživatel zcela, ale zcela určitě nechce. Pokud mohu přidat osobní názor, tak pokud něco takového vidím okamžitě upaluji co nejrychleji pryč. A zablokovat adresu.

Borek (Út, 2010-11-02 20:37):

Např. Gmail je RIA. Upravte si definici a porozhlédněte se v reálném světě, ne jen na serveru linuxsoft.cz.

Pavel Šimek (St, 2010-11-03 23:00):

RIA neznamená, že aplikace vynikají efekty, čili formou nad obsahem, jak se snažíte naznačit, ale že to jsou aplikace, jejichž UI je bez jakýchkoliv kompromisů a omezení – tzn. úplně stejné jako u desktopových aplikací. RIA technologie jsou například předpokladem existence chystaného Chrome OS od Googlu, kde žádné jiné aplikace než RIA nebudou.

srigi (Po, 2010-11-01 19:17):

Co sa tyka nastrojov, zda sa ze lady sa pohnutli:

Sice su to pomerne jednoucelove veci, ale na zaciatok to nie je zle. Myslim, ze toto ste Borku mali na mysli, ked sa hore kricalo, ze JS a CSS predsa nastroje ma. A v tomto s vami suhlasim – nastroj pre CSS/JS nie je IDE s ofarbovanim kodu a organizovanim projektu.

Borek (Po, 2010-11-01 19:29):

Ano, mluvil jsem o kvalitě a vyspělosti nástrojů, ne o jejich černobílé existenci / neexistenci. Navíc Adobe Edge vypadá, že je aspoň z části napsaný ve Flexu :)

Pavel Šimek (Po, 2010-11-01 23:08):

„…že je ActionScript 3 koncepčně 10 let starý a pro vývoj by se fakt hodila jeho nová generace…“

ActionScript 3 vznikl v červnu 2006, takže to máme necelých 5 let. Už nějakou dobu se mluví o AS4, ale myslím, že vývojářská komunita zas tak rychlé změny nechce.

Na MAXu byly představeny i jiné novinky než „hloupé 3D“, např. nový Flash Builder, který se zase o krok přibližuje Visual Studiu, a nový Flex Framework, optimalizovaný pro mobilní zařízení. Osobně jsem jako vývojář spokojen.

Borek (Út, 2010-11-02 05:42):

AS3 umí zhruba totéž co C# 1.0, proto ta koncepční zastaralost. O AS4 jsem nikoho z Adobe zatím v konkrétních obrysech mluvit neslyšel.

Vylepšení Flash Builderu a Flex frameworku se samozřejmě vítají, ale kolem Flexu stále chybí kupa zásadních věcí (lepší programovací jazyk, ekosystém komponent, skiny apod.) Vývoj jde dopředu, ale tempo by mohlo být rychlejší.

blizzboz (Út, 2010-11-02 00:33):

Toto je ďalšia indícia ktorá nasvedčuje tomu že MS pravdepodobne plánuje kúpiť Adobe, takže si robí miesto na Flash, mohli by do budúcna skombinovať to najlepšie z obidvoch technológií.

Jarda Jirava (Út, 2010-11-02 09:05):

Vypadá to, že Microsoft musel zareagovat na příliš kreativní novináře, kteří slavili úspěch s tím, že Silverlight je mrtev a čelní představiltelé Microsoftu tak museli přijít s vysvětlením

Nejdříve Steve Ballmer

http://www.mi­crosoft.com/…a­tement.mspx

a pak Bob Muglia

http://team.sil­verlight.net/…sil­verlight/

Ostatně nemusí platit, že když se o jedné technologii nemluví v keynote, že je hned tato technologie mrtvá ;-)

Borek (Út, 2010-11-02 20:34):

Jardo, četl jsem jen Mugliu, ale to je přesně ten typ reakce, který spíš mé obavy potvrzuje. Něco velmi podobného by se dalo napsat o WPF a ačkoliv lze donekonečna argumentovat, že to je pro MS „strategická“ technologie, do které „investuje“, všichni vidíme, že priority jsou někde úplně jinde (včera SL, zítra HTML5, kdoví co pozítří).

Možná to nemusí být špatně, pokud MS pro HTML5 udělá špičkové nástroje, ale těch problémů kolem oné platformy je tolik, že si to zatím v blízké budoucnosti nedokážu rozumně představit.

Jarda Jirava (St, 2010-11-03 11:25):

Já bych to dokonce zobecnil. Každá technologie jednou dosáhne vrcholu a začne upadat, to v jakém časovém horizontu se toto stane je otázka druhá a záleží nejen na tvůrcích, ale i vývojářích (příkladem budiž Foxka). Sám se rád nechám překvapit, zda někdo přijde s nástroji, které budou s HTML5 efektivní, jinak ten jazyk taktéž umře a to velice rychle, byť se teď jeví jako progresivní a ideální.

--J.

Honza (Po, 2012-08-20 09:44):

Zatím to na nějaký úpadek HTML5 nevypadá.

IT Ivo (Pá, 2012-10-05 10:03):

Uff, to je dlouhý článek s komentářem :-)

Komentáře jsou uzavřeny (blog je v read-only módu). Pokud mě chcete kontaktovat, můžete mailem.