re: apappÚgy látom HTML 5 erősen túl van értékelve, s azok jó része, akik valamiféle fantasztikus és világmegváltó újdonságot látnak benne, ami ráadásul leradírozza a Flasht és társait a térképről, igazából nincsenek tisztában se azzal, hogy a HTML 5 mire jó és mit tud, se azzal, hogy a Flash mire jó és mit tud. Pár gondolat ezzel kapcsolatban:
1) "A HTML 5 <video> eleme legyilkolja a Flasht": Ez két szempontból is sántít. Egyrészt a Flash nem csak a videóról szól, másrészt a videó területén sem egyértelmű a helyzet. Jó dolog, ha egyszerűen lehet egy HTML dokumentumba videót illeszteni, bár szerintem ez eddig sem volt bonyolult. A HTML 5-ös videóval viszont tökön szúrták magukat a böngészőgyártók azzal, hogy képtelenek voltak egységes videóformátum(ok)at megállapítani. Persze eddig is többféle videóformátum volt és van forgalomban a neten, FLV, F4V, MPEG, WMV, MOV, stb. Mindenki kiválaszthatta, hogy melyik szimpatikus neki. Egyúttal azt is kiválasztotta ezzel, hogy mi fogja azt a videót lejátszani. Voltak olyan választási lehetőségek, amelyeknél biztos lehettem benne, hogy a videómat mi és hogyan játssza le (pl. az FLV, F4V vagy h.264-es MOV videómhoz én adtam a Flash videólejátszót), s tudtam, hogy az jó lesz mindenhol, ahol van Flash (kb. 98%). Ehhez képest a HTML 5-ös videóval böngészőfüggővé válok (most tekintsünk el attól, hogy mi van ha egyáltalán nem ismeri a HTML 5-öt a böngésző), ha h.264-et használok, akkor Safarival és Chrome-mal lesz jó, ha OGG-ot, akkor FireFoxszal (IE-vel meg már ki tudja melyik). Nem csak hogy csinálhatok kétféle változatot a videókból (ami mindenképpen szívás, idő, tárhely, stb.), de még a böngésző típusára is figyelnem kell, hogy váltogassak a kettő (vagy később három, négy?) között. Aztán a másik probléma az, hogy nem fogom tudni hogy is néz ki a videólejátszó és mit tud kezdeni vele a látogató, hisz a böngészőtől függ, hogy ő milyet ad, s nem én döntöm el. Persze a video elem paraméterezhető, de nagyon minimális mértékben. Ha valami többet akarok a minimumnál, pár jó kis szolgáltatást, egy kicsit furmányosabb dolgot akkor állhatok neki JavaScriptben barkácsolni és tuningolni a böngésző videólejátszóját, ami nagyon kétlem, hogy böngészőfüggetlenül menni fog.
2) "A HTML 5 <canvas> eleme legyilkolja a Flasht": Na, ez egy másik vicc. Össze sem hasonlítható a canvas tudása a Flashsel. Persze, lehet vele rajzolgatni vonalakat, görbéket, téglalapokat meg köröket és ez tök jó, meg végül is ezekből mindent össze lehet állítani, de a grafika és animáció azért nem erről szól. A canvast természetesen JavaScripttel lehet működésre bírni - erről még alább írok, így nem térek ki magára a nyelvre. Inkább csak a canvas rajzolási lehetőségeit nézzük: lehet vele színes vonalakat és ábrákat rajzolni programmal, aztán annyi. Beágyazott, importált vektoros vagy bittérképes grafikák sehol, rajzoljak meg minden JavaScripttel. Ez miért is jó? Persze, képeket megjeleníthetek HTML 5-tel másképp is, de ezt hogy fogom összehozni a canvas-szel? Maradnak a színes vonalas jellegű ábrák. De miért legyen ez elég nekem? Visszatértünk az őskorba? A Flash a hasonló jellegű programból rajzolást a 6-os verzióban vezette be 8 éve, 2002-ben (a Java appletek még korábban). Azóta folyamatosan bővültek a lehetőségek, a bittérképes képek kezelésétől kezdve a szűrők használatán át a Pixel Bender shaderekig. Most pedig menjünk visszafelé az időben, felejtsük el ezeket és térjünk vissza a színesceruzákhoz? Minek? Csak mert valakik fekete-fehérben látják a világot (na persze ezek egy része csak úgy csinál, valójában inkább üzleti érdekei fűződnek a dologhoz, lásd Apple) vagy képtelenek elviselni, hogy valami nem az ő személyes játékszerük? Jobb lesz attól nekünk, hogy megfelelünk vmi nemes szabványnak (eleve necces, hogy mi is a szabvány), de kidobjuk az eddigi lehetőségeinket az ablakon? A fürdővízzel együtt nem csak a gyereket, de még a kádat is borítsuk ki? Megnéztem az oldalt, amit apapp belinkelt - szép színes köröcskék pörögnek-forognak. A CPU terhelés a megnyitás előtti 1%-ról azonnal 50% fölé ugrott és végig ott is maradt, pedig csak köröcskék mozognak a képernyőn. Ha megnyitottam ezt az oldalt két külön ablakban, behalt az egész, élvezhetetlenül szaggatott. Ez lenne amire annyira várt mindenki? Az persze nagyon jó, hogy a HTML lehetőségei bővülnek és fejlődnek, s már azzal is lehet változatosabb megjelenést és felhasználói élményt elérni, de ez csak egy plusz lehetőség a piacon (a többi szereplővel összehasonlítva meg ugye nagyon is szerény), amit ám válasszon, akinek jól esik. Nem baj, ha egyszerűbb animációk és grafikák létrehozásához nem kell Flasht vagy Silverlightot használni, de ez utóbbiak nem arról szólnak, hogy rajzolok két piros vonalat és odébbmozgatok egy képet vagy szöveget. Ilyenekre eddig is használtak javaScriptet, ezután is használjanak is csak nyugodtan, de ez nem ugyanaz a kaliber. Igen, lehet hogy a HTML + JavaScript lehetőségek fejlődésével sok ilyen alapvető animációt és hasonlót használó oldal nem (csak) Flashben fog készülni, ezzel nincs is baj. De butaság ez alapján a Flash kiszorulásáról prédikálni - aki ilyet mond nincs tisztában a lehetőségekkel, azzal, hogy ez csak a Flash (Silverlight, Java) képességeinek felszínét karcolgatja.
3) A video elemhez hasonlókat lehetne írni az audio elemről is, így ezt most kihagyom.
4) Programozás és a HTML 5: A HTML 5 nem progrmnyelv, de ezzel sajnos úgy látom nem mindenki van tisztában. A HTML 5 továbbra is egy dokumentumleíró-nyelv, amit lehet JavaScripttel piszkálgatni. És itt a JavaScript elég fontos pont, bár a piszkálgatás sem utolsó. Ez utóbbin értem pl. egy oldal megjelenésének DOM alapon történő változtatását, amit én személy szerint elég bozasztőnak találok. Arra tökéletes és nagyon is jó, hogy tartalmi változásokat hajtsunk végre, de a megjelenés befolyásolására tökéletesen alkalmatlan. Ez persze következik a HTML-ből magából, aminek célja az absztrakció, az hogy a tartalmat elválassza annak konkrét megjelenítésétől. Ebből következően a megjelenítés büngészőfüggő, csak a böngésző tudja mit és hogyan csinál. Ez addig jó, amíg ezt meghagyjuk a böngésző hatáskörében, de amint bele akarunk szólni (pl. animálni a tartalom egyes részeit, stb.) nagyon nehézkessé válik a dolog. A megjelenés ilyen jellegű változatásánál nagyon fontos, hogy mindent kézben tudjunk tartani, hogy pixelre pontosan tudjuk mi hol van, mekkora, stb. Ez viszont hiányzik, pont azért, mert nem írtuk le a tartalomban (a HTMl erről szól), de még a stíluslapokkal is erősen korlátozottan tehetjük ezt meg. Innentől szenvedés az egész - lehet kuruzsolni, sok munkát befektetve különféle böngészőkre optimalizálni, de ezt én feleselges idő-, munka- és pénzkidobásnak látom. A programozhatóság más része maga a JavaScript mint nyelv. A JavaScript egy egyszerű scriptnyelv, komoly programok írására kevéssé alkalmas. Gyengén típusos, interpretált (mi lesz a sebességgel?), OO képességei hiányosak - se nem modern, se nem hatékony. Persze barkácsolásra tökéletes, egy gomb animáció létrehozására is, meg vmi pörgő-forgó micsodáéra is, de kb. ennyi. Ehhez képest az ActionScript 3 maga a Kánaán, nem is szólva a C#-ről. Lehet persze hatékony eszközök nélkül is szép végeredményt elérni, de sokkal nehezebben. Én eddig is csodáltam, hogy mi mindent képesek kihozni a JavaScriptből, de egyúttal nagyon sajnálom is ezen csodák készítőit, mert amit létrehoztak, más eszközökkel töredék annyi energiabefektetéssel megoldhatták volna. Spagettiből is fantasztikusan erős hídmaketteket lehet építeni és nagy teljesítmény ilyet csinálni, de valahogy a Duna-hidakat mégsem ebből kellene felhúzni. A böngészők eltérőségének és magának a JavaScriptnek a hiányosságait felismerték meg eddig is, ezért egyre több JS könyvtár van a piacon, ami igyekszik egy magasabb szintű absztrakciós réteg bevezetésével ezeket elfedni (jQuery, stb.), de ez ettől még mindig ugyanaz a gyurma, csak kicsit kifényesítve (a Mythbustersből már tudjuk, hogy az ürüléket is ki lehet fényesíteni, de attól azért csak ürülék marad). Ezek az absztrakciós rétegek ugyanakkor képtelenek a nyelvi hiányosságokat pótolni, amiket a komolyabb programok készítéséhez szükséges komolyabb programozók igénelnének a munkájukhoz. Annak idején az ActionScript is hasonló nyelvi hiányosságoktól szenvedett, s ezért húzták fölé az ActionScript 2-t, ami tkp. csak egy preprocesszor volt, de mégis a nyelvi lehetőségek ibővítésének oldaláról tudta megközelíteni a fejlődést (bár belül ez is csak ugyanaz a gyurma volt). JS-nél erre esély sincs. Persze lobogtatják a JavaScript 2-t, ami ugyanarra a szabványra épülne, mint az AS 3 (csak ez utóbbi nem várta meg a sok éves huzavona végét a szabvány véglegesítésével és saját bővítéseket is létrehozott), de hol van? Sehol.
5) A HTML 5-ben újdonságként megjelent dolgok olyan valamik, amik már sok éve a mindennapi valóságot jelentik az interneten. A HTML 5-nek sikerült ehhez valamelyest felnőnie annyi évi szabványosítási huzavona után. Elért oda, ahol a többiek már 5-8 éve tartottak - gratulálok, ettől lenne olyan fantasztikus? Most aztán a w3C munkatempóját ismerve ez így is marad vagy 10 évig, miközben a többiek folyamatosan jöhetnek ki az újdonságokkal. A HTML 5 most még szinte eléri az elvárható minimumot, de pillanatok alatt el fog avulni és lejjebb csúszik, s jöhet megint a szenvedés, a várakozás a "megváltó" HTML 6-ra. A HTML-t meg kell hagyni arra, amire kitalálták és amire jó: szöveges dokumentumok leírására, s nem bonyolult alkalmazások megerőszakolására. Még itt is vannak persze hiányosságai (pl. a fontkezelésben egyelőre nem látom a végső megoldást), de erre legalább használható. Persze örülnék neki, ha el tudnánk szakadni a teljes HTML alapúságtól, attól, hogy minden honlapnak kell HTML részének lennie (egy teljesen Flash vagy Silverlight oldalnál ez minek), s más formájú tartalmak önállóan is megjelenhetnének a neten.