Mit szeretek a Flash/Flex-ben és mit nem a HTML + tsi-ban

Régóta érik már bennem ez a blogbejegyzés, hát megejtem. Tudom, a Flash szar, a Flash szar, de hátha mégse annyira.

Hasonlítsuk össze a Flash/Flex-t (ezentúl Flash) a HTML + CSS + JS-sel (ezentúl HTML). Mindkettő alkalmas RIA létrehozására, mégse egyformák.

Flash nem fut rendesen mobil készülékeken. Ez hiba, nagy hiba. Ezen kívül:

- Futtató környezet:

Flash esetében van egy darab Flashplayer. Általában a régebbi verziókkal nem kell foglalkozni, frissíti magát. HTML esetében kismilló böngésző kismilló baja. Ez nem támogatja azt, az nem támogatja ezt. Kész szívás a fejlesztés.

- Debugolás:

A Flash IDE-k tartalmaznak beépített debuggert. Ez sajnos a HTML-re nem érvényes, Firebug, Dragonfly, Chormenak és IE-nek is van valami debuggere. De ahogy az ember iOS feljesztés esetén se a készüléken debuggol, úgy a webappokat se böngészőben, hanem az IDE-ben kellene.

- Felhasználói élmény:

Okés, a Flash az szar lassú. De találkoztam én már olyan JavaScripttel is (Opera + MacOSX alatt), ami sikeresen kiakasztotta a processzort. Van még mit javítani, ez tény. Viszont a Flash focus esetén megkapja a teljes kontrollt, HTML nem feltétlen. Mondjuk én általában a backspace-t használom a "Back" funkcióra, Flash esetén ki kell kattintani a Flashből, HTML esetén megy simán, de pl Google megoldásánál elkapja az eseményt és a search fieldben akar nekem törölni, holott nincs is fókuszban. Enyhén idegesítő.

- Fejlesztés:

Flash rendelkezik rendes IDE-vel, Flex úgyszintén. HTML nem. Van Dreamweaver, meg Notepad++, meg kismilló egyéb cucc, de rendes IDE nincs. Flash/Flex-et baromi egyszerű fejleszteni a sok és jó beépített osztálynak köszönhetően (bár van egy-két bug sajnos), JavaScripthez elengedhetetlen valami Cross-Browser Library, ha az ember nem akarja önmagát szivatni és újra és újra feltalálni a melegvizet.

A Flex direkt RIA-ra lett kitalálva, eseményvezérelt, objektumorientált, tökéletes. Kell egy kibővített funkcionalitású TextInput? Csak származtasd le és kész. Tisztább, szárazabb, biztonságosabb érzés.

Sajnálom, hogy az emberek megutálták a Flash/Flex-et. Sajnálom, hogy szar kódok születnek erre a platformra. Sajnos én is még az AS2-vel kezdtem el foglalkozni először, az tényleg egy eléggé tákolt scriptnyelv volt. De az AS3 már tényleg produktív dolgokra képes. Illetve lenne képes, ha nem azt hallaná az ember úton-útfélen, hogy a Flash így szar, úgy szar.

Tartom, hogy egy Webapp fejlesztése Flashben/Flexben lényegesen kevesebb idő, mint a szarakodás a böngészőkompatibilitással és azzal, hogy az ember limitálva van, mert ez ezt nem támogatja, a másik meg azt.

Töredelmesen megvallva nálam is le van tiltva a Flash. Mert megeszi a processzort. Mert az összes hülye reklám a hülye animátoraikkal - akik csak az Event.ENTER_FRAME-t ismerik - megetetik a processzort. De ezzel nincs gondom. Annak örülnék, ha a JS is ilyen egyszerűen és egyértelműen letiltható lenne.

Száz szónak is egy a vége: A Flash/Flex az egy kíválóan programozható platfom, ami sokat adhatna élményben a usereknek (minimális módosítással ugyanaz a WebApp, MobilApp és a DesktopApp kódja? Semmiség, szeretünk kétszer dolgozni, mondaná a HTML5 hívő) és a fejlesztőknek is.

Hozzászólások

"Száz szónak is egy a vége: A Flash/Flex az egy kíválóan programozható platfom, ami sokat adhatna élményben a usereknek (minimális módosítással ugyanaz a WebApp, MobilApp és a DesktopApp kódja? Semmiség, szeretünk kétszer dolgozni, mondaná a HTML5 hívő) és a fejlesztőknek is."

A szomorú az, hogy ezt a problémát úgy próbálják megoldani, hogy a html-t emelik desktop szintre. Lásd pl. google os. Persze ehhez a "régi" html* kevés, ezért a html-t, css-t, javascriptet bővítik egyre több és több szolgáltatással, amit persze a böngészőknek is követniük kell, így azok bloatware-ré, instabillá, és egyre kevésbé biztonságosabbá válnak. Már szinte látom magam előtt, ahogy pár év múlva valaki feltalálja a light html-t, ami valami olyasmi lesz, mint a wml volt a html-hez képest.

*: html4/xhtml2, css2 (javascript verziót nem tudom)

--
Don't be an Ubuntard!

A html-t és a HTTP-t nem erre találták ki. Az alap funkció szépen megy is. Ahhoz, hogy megnézz egy honlapot és információt kapj vissza egyáltalán nem szükséges a csili-vili 3D megjelenés. A szöveg formázására jó a HTML. (Én még nem találkoztam olyan böngészővel, ami ne ismerte vola a b tag-et...)

Én mondjuk nem értem, miért a javascript, html, css -el foglalkoznak még. Miért nem mondják azt, hogy a kliensen a böngészőben mondjuk python kód futtatható, amihez van mondjuk Qt/GTK lib. (Természetesen a python mondjuk chroot-olva egy üres, temporális mappába.)

szerk.: az XUL nem lenne jó ilyen célra?

Szomorú az, hogy már megint ott tart a vita, hogy HTML vagy Flash, ahelyett, hogy körbenézne néhány web2-n nevelkedett lény, hogy olyan szinten langyosvíz-feltalálás megy a régi desktop fejlesztéshez képest, hogy fáj nézni. Hát még dolgozni velük.

----------------
Lvl86 Troll

Töredelmesen megvallva nálam is le van tiltva a Flash.

Your argument is invalid.

En tovabb olvastam azt a mondatot, mint te. Nem azert tiltja le a flash-t, mert szarnak tartja a platformot, hanem a reklamok keszitoi egyszeruen unoptimalizalt kodot hanynak ki a webre. Mivel nem valaszthato, hogy unoptimalizalt kodot nem szeretnenk futtatni, ezert kenytelen a komplett flash-t tiltani. Ennyi.

Szar kodot minden platformon lehet irni, az egyetlen kulonbseg, hogy a hulye reklamokat keretlenul kapod az arcodba.

Szerintem amugy kulturaltabb megoldas az adblocker, de ez meg mar az en privat velemenyem.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Régóta érik már bennem ez a blogbejegyzés, hát megejtem. Tudom, a Flash szar, a Flash szar, de hátha mégse annyira.

Tízmilló légy nem tévedhet :)

Hasonlítsuk össze a Flash/Flex-t (ezentúl Flash) a HTML + CSS + JS-sel (ezentúl HTML). Mindkettő alkalmas RIA létrehozására, mégse egyformák.

RIA? mármint rich internet application? azaz "flashes fos"? mert a rich ezt jelenti weben... márbocs.

Flash nem fut rendesen mobil készülékeken. Ez hiba, nagy hiba. Ezen kívül:

Már ahol van egyáltalán (goto Apple termékei)

- Futtató környezet:

Flash esetében van egy darab Flashplayer. Általában a régebbi verziókkal nem kell foglalkozni, frissíti magát. HTML esetében kismilló böngésző kismilló baja. Ez nem támogatja azt, az nem támogatja ezt. Kész szívás a fejlesztés.

Mármint van egy darab bloatware dll, ami ismeretlen funkciókat valósít meg, az swf-ek kezelésén kívül.
HTML esetében a kismillió böngésző HTML esetén ugyanazt a szabványt kezeli (kivéve IE<7). Minden támogat mindent. Illetve példával cáfolj. Safari pl nem ismeri az emph-et? A firefox a text justify-t?

- Debugolás:

A Flash IDE-k tartalmaznak beépített debuggert. Ez sajnos a HTML-re nem érvényes, Firebug, Dragonfly, Chormenak és IE-nek is van valami debuggere. De ahogy az ember iOS feljesztés esetén se a készüléken debuggol, úgy a webappokat se böngészőben, hanem az IDE-ben kellene.

egy jelölőnyelvet mire fel debuggolnál? az sql selectjeidet is ide-ben irod es debuggolod?
A "valami debugger" meg annyira valami, hogy hasonlora csinaljak oket, hogy ne kelljen ujratanulni a felületet...

Még egyszer: egy html-t mire fel debuggolsz? mit debugolsz rajta? az indentálást?

- Felhasználói élmény:

Okés, a Flash az szar lassú. De találkoztam én már olyan JavaScripttel is (Opera + MacOSX alatt), ami sikeresen kiakasztotta a processzort. Van még mit javítani, ez tény. Viszont a Flash focus esetén megkapja a teljes kontrollt, HTML nem feltétlen. Mondjuk én általában a backspace-t használom a "Back" funkcióra, Flash esetén ki kell kattintani a Flashből, HTML esetén megy simán, de pl Google megoldásánál elkapja az eseményt és a search fieldben akar nekem törölni, holott nincs is fókuszban. Enyhén idegesítő.

Az megvan, hogy a "mind" (== 99%) és a "találkoztam már" (== meséltek egyről) nem ugyanaz...

Az, hogy a flash elfogja a fókuszt, az a legnagyobb buziság amit kitalálhattak. Ha felugrik valami flashes popup, nem tudom alt+f4-ezni gyorsan, mert a fókusz a vakunál van, nem az ablaknál.

- Fejlesztés:

Flash rendelkezik rendes IDE-vel, Flex úgyszintén. HTML nem. Van Dreamweaver, meg Notepad++, meg kismilló egyéb cucc, de rendes IDE nincs. Flash/Flex-et baromi egyszerű fejleszteni a sok és jó beépített osztálynak köszönhetően (bár van egy-két bug sajnos), JavaScripthez elengedhetetlen valami Cross-Browser Library, ha az ember nem akarja önmagát szivatni és újra és újra feltalálni a melegvizet.

Plz define "rendes".

Dreamweaver mitől nem rendes? notepad++ miért nem jó egy jelölőnyelvnek? kevered a szezont a faszállító autóval...

A flash, a bloatware dll-be beépített osztályai miért jobbak a javascript libek js-ben megirt osztalyainal? (amik raadasul jellemzoen modularisak, csak azt linkeled, ami kell)

A Flex direkt RIA-ra lett kitalálva, eseményvezérelt, objektumorientált, tökéletes. Kell egy kibővített funkcionalitású TextInput? Csak származtasd le és kész. Tisztább, szárazabb, biztonságosabb érzés.

tökéletes? mivan?

Sajnálom, hogy az emberek megutálták a Flash/Flex-et. Sajnálom, hogy szar kódok születnek erre a platformra. Sajnos én is még az AS2-vel kezdtem el foglalkozni először, az tényleg egy eléggé tákolt scriptnyelv volt. De az AS3 már tényleg produktív dolgokra képes. Illetve lenne képes, ha nem azt hallaná az ember úton-útfélen, hogy a Flash így szar, úgy szar.

Szar platform --> szar kód --> szar alkalmazás, ez az ok-okozati irány. végtelen canvas? NYILVÁN eldobalom a nem hasznalt ojjektumokat viewporton kivulre...

Tartom, hogy egy Webapp fejlesztése Flashben/Flexben lényegesen kevesebb idő, mint a szarakodás a böngészőkompatibilitással és azzal, hogy az ember limitálva van, mert ez ezt nem támogatja, a másik meg azt.

Full Flash-es oldalt nem nézek meg. Mert flash-ben van. ctrl+f nem működik, tehát szar.

Milyen szarakodás a böngészőkompatibilitással?!?! legfeljebb css hack a transzparens png-hez, ie7 óta nem kell mélyebben gányolni. Szerintem te elakadtál 2001-ben.

Töredelmesen megvallva nálam is le van tiltva a Flash. Mert megeszi a processzort. Mert az összes hülye reklám a hülye animátoraikkal - akik csak az Event.ENTER_FRAME-t ismerik - megetetik a processzort. De ezzel nincs gondom. Annak örülnék, ha a JS is ilyen egyszerűen és egyértelműen letiltható lenne.

Ezt a bekezdést nem kellett volna leírnod, ugyanis ezzel negáltál mindent, amit leírtál.

NoScript plugin?

Száz szónak is egy a vége: A Flash/Flex az egy kíválóan programozható platfom, ami sokat adhatna élményben a usereknek (minimális módosítással ugyanaz a WebApp, MobilApp és a DesktopApp kódja? Semmiség, szeretünk kétszer dolgozni, mondaná a HTML5 hívő) és a fejlesztőknek is.

Kétszer dolgozni? mivan? Fejtsd ki, kérlek. Érdekes, de az én html design-om kijelzőfüggetlen, így jól néz ki kicsiben és nagyban is. Az, hogy az általad ismert html hekkerek bénák, arról nehogymár a Firefox tehessen...

Félreértés van. Ahogy írtam, a HTML alatt a fenti blogbejegyzésben a HTML + CSS + JS triumvirátust értem.

"HTML esetében a kismillió böngésző HTML esetén ugyanazt a szabványt kezeli"

http://www.quirksmode.org/dom/events/index.html

"egy jelölőnyelvet mire fel debuggolnál?"

HTML + CSS + JS debugolásáról van szó.

"Dreamweaver mitől nem rendes? notepad++ miért nem jó egy jelölőnyelvnek?"

Dreamweaver egész jó (persze, mert Adobe termék :P), de azért ott se nagyon tudok debuggerről (ld. fentebb). Ha tényleg kompatibilisek lennének a böngészők, akkor egy BoxModel-hez, egy JavaScripthez lehetne debuggert írni (mikor, miért, mi változtott, stb). Az Alertezés nem normális debugolás. Pont az bizonyítja, hogy a böngészők nem kompatibilisek, hogy mindegyikhez külön debugger jár. Ha mindegyik böngésző kompatibilis lenne, nagyjából okafogyottá válna a sitebuilder munkakör.

"végtelen canvas? NYILVÁN eldobalom a nem hasznalt ojjektumokat viewporton kivulre..."

Tény. De nézzük C szemszögből: nincs tömbindex ellenőrzés? NYILVÁN túlcímezhetjük a tömböt. Mert az úgy jó.

"ctrl+f nem működik, tehát szar."

Tény. Viszont csak azért nem működik, mert az app fejlesztője szerint felesleges.

"Ezt a bekezdést nem kellett volna leírnod, ugyanis ezzel negáltál mindent, amit leírtál."

Gondolom, ha a C mellett érvelnék és felhoznám a Windows 98-at, mint negatív példa, akkor szerinted a C is szar lenne.

"Kétszer dolgozni? mivan? Fejtsd ki, kérlek."

Flex esetében a Webapp (Flash player pluinnal) és a Desktop / mobilapp (AIR-rel) nagyrészt ugyanazt a kódbázist használja. Tehát míg egy HTML5 (+ Desktop kliens) + mobilapp fejlesztése tulajdonképpen két darab frontend fejlesztését jelenti, addig a Flex esetében ugyanaz a kód minimális változtatásokal felhasználható minden platformra.

- ja, citrom+banan+krumpli vs hajsuto a fodrasz szempontjabol? bocs.

- ha alkalmazast akarok irni, akkor alkalmazast csinalok valamely erre alkalmas kornyezetben (Qt/gtk/visual studio/anyakinja). Ha weblapot, akkor meg megint nem flasht fogok hasznalni, mint nem odavalo elemet.

De hogy js IDE-t is irjak: Netbeans (illetve Aptana, de az nem hasznalom, lustasagbol, es visual web developer, ha asp buzi lennek), mivel a blogiro hianyolta a js IDE-ket.

- Szoval, nem tudsz olyan weboldalt mutatni, ahol a HTML + CSS + JS triot egyutt hasznaljak? Ohh... wait...
- Akkor most lepjel ki az alomvilagbol, es nezz korul a valosagban. Ma mar a trendek arrafele mennek, hogy van a HTML meg a JS, rakjunk ossze veluk alkalmazasokat. Peldaul Facebook, Twitter, YouTube, G+, stb. Mert ezek a weboldalak mar kinottek a szokasos weboldal kategoriakat, sokkal interaktivabbak, sokkal valtozekonyabbak mint a klasszikus weblap.

Az IDE-kkel kapcsolatban: en ertem, hogy mi Hevi gondja. Altalanossagban, ha egy appot tesztelsz, akkor valamilyen modon tudsz az apphoz csatlakozni, es menet kozben breakpointok segitsegevel visszaterni az IDE-be, es kiiratni az app memoriateruleten levo adatok egy reszet vagy egeszet. Ez a bongeszoknel nem mukodik, elsosorban a mai fejlett sandboxing technologiaknak koszonhetoen. Teljesertekuen legfeljebb a szerveroldal debugolhato, a kliensoldal alig, vagy egyaltalan nem.

Szerencsere felmegoldasok, azok vannak. A bongeszoben altalaban tudsz debugolni - ahany bongeszo, annyifelekeppen. Ez - bar elorelepes - semikeppen sem a legjobb megoldas.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Szerintem a postod valojaban nem a Flash vs html-rol szol, hanem a rendes, normalis es igenyes alkalmazasfejlesztes es a legnagyobb hack es takonytenger (html+javascript+css) kozotti kulonbsegrol... es ezert like :)
--
cythoon

Egy apró különbség, kifejezetten felhasználói szemmel: Ha egy html5-ben /html/js/css gányolmány elkezdi felzabálni a cpu-t, akkor egy megoldás van: böngészötökönbökés. Ha a flash tesz ilyet (ez a ritkább nálam...), akkor abba a böngésző nem döglik bele, elég a flash-t kilőni.

nalam (chrome over xp), ha valahol egy flash lehal, akkor task managerbol kell leolnom minden chrome processzt, ha egy js akad ki, akkor az adott tab egyszercsak atvalt "a manóba" szerű szövegre.
S miota 11-es flashre frissitettem, ez van ff es ie eseten is, s annyira nem egyedi jelenseg, hogy az egesz emelet ettol visit meloban.

szoval frissits latest flash-re, hogy aterezd :)

"Viszont a Flash focus esetén megkapja a teljes kontrollt, HTML nem feltétlen. Mondjuk én általában a backspace-t használom a "Back" funkcióra, Flash esetén ki kell kattintani a Flashből"
Ez szerintem többször hátrány mint előny. Oké, mondjuk egy flash játéknál jó, de az marhára tud idegesíteni, hogy ki kell belőle kattintani, hogy az F6 a címsorba vigyen, hogy a ctrl-F-fel keressek, stb. Viszont lehetetlen az egyik monitoromon flash videót nézni, közben a másikon mást csinálni, mert a hülye flash rögtön visszamegy a böngészőbe.
Másik nagy hiba, hogy a böngészőbe épített dolgok nem működnek a flash-en (keresés, copy-paste)

melyik olcsóbb? a 119 dolláros adobe flash builder, ami erősen javallott flash alkalmazás készítéséhez, vagy a notepad++/vi/emacs a php-hez?
és melyik gyorsabb? a félmegás swf, ami kommunikálgat haza, vagy a 30K-s html+js, ami ajaxozik haza?

kezdünk beleesni abba, hogy a developer a csicsa alapján dönti el (flash builder szebb mint az mcedit tehát a flash jobb), hogy a usernek mi a jó...

Miután effektíve elenyésző innováció történik a programnyelvek terén, szemben a toolok terén, így a hangsúly egyre inkább ott van, hogy jójó, de van hozzá támogatás XYZ-hez?

Persze, meg lehet oldani dolgokat low-level szinten, de egy idő után az ember elkezdi értékelni, hogy a forráskód nem különálló fájlok halmaza, hanem van egy cucc, ami összefüggően kezeli, segít a kód megírásában/karbantartásában (auto-complete, templates, reafactoring, stb) és még egy valag támogatást nyújt.

Pl. nincs az az isten, hogy pl. WinForms vagy Delphi formokat elkezdjek kódból létrehozni nulláról, ha az IDE ad hozzá támogatást.

----------------
Lvl86 Troll

Adobe Flash Builder, ha jól látom 700 USD. 69 az Upgrade.

Ha a produktivitást nézem, akkor a Flex olcsóbb, mint a HTML + JS.

Még ha a csicsa döntene, de nem ez a helyzet sajnos.

http://www.adobe.com/devnet/flex/testdrive/articles/1_build_a_flex_app…
http://www.adobe.com/devnet/flex/testdrivemobile/articles/mtd_1_1.html

Na akkor nehany alapvetes:

1) A HTML/CSS/JS egy altalanos platform, a flash/flex nem az.
2) Ha flexezni akarsz js-alapokon, var az Ext.JS, egesz szep IDE tamogatassal.
3) A flash mogott a futtatomotor az, ami a firefox 3.x javascript engine-jenek az alapja (Adobe Tamarin). Innentol kezdve kozolni hogy a js lassabb mint a flash, hat ez vicces, azonos VM.
4) Az, hogy az actionscriptnek mi koze az ecmascript 4-hez, mar nem is taglalom.

Alapvetoen az van, hogy bar a flex ketsegtelenul alkalmasabb alkalmazasfejlesztesre, megiscsak egy platformfuggo binaris, aminek veges platformon van ki tudja meddig tamogatottsaga, mig a javascript egy szabvany, amibol 20 ev mulva is lehet a forraskodok alapjan mukodokepes kornyezetet kesziteni.

Na megnéztem ezt az Ext.JS-t, mert bár régebben hallottam már róla, eddig nem foglalkoztatott.

Amúgy ki tudok akadni a JavaScript szintaxisától is, vagyis ettől a függvény paramétereként nyitunk mégegy függvényt, aminek a paramétere egy másik függvény, ami paraméterként egy objektumot vár, pfejj. Illetve lehet, hogy csak én nem vagyok hozzászokva, de komolyabb alkalmazásokhoz nekem ez a fajta szintaxis nagyon áttekinthetetlennek tűnik.

Egyébként szerintem nem mondtam, hogy lassabb a JS.

ECMAScriptet se hoztam elő.

Egyébként lehet, hogy az Adobe-nak tényleg meg kéne nyitnia a Flash platformot, fene tudja, hogy miért nem teszik.