Adobe Flex – mis, milleks ja palju maksab
09.05.2006 | LembitKui Macromedia mõned aastad tagasi Flex-platvormi üllitas, jäi selle toote olemus minule tükiks ajaks segaseks. Ärilahendus, platvorm, millel pakkuda advanced Flash-rakendusi – tore, kõlab uhkelt küll, aga kuidas seda süüakse? Ähmaselt võis aru saada, et tegu on serveripoolse rakendusega, tarkvaraga, mis töötab J2EE-serveri “peal” ning tegeleb dünaamilise Flashi genereerimisega. Vist… Selle ebaselguse pärast tahaks vägisi öelda, et tegu oli turunduslikult ebaõnnestunud launch‘iga, aga samas tuleb meenutada, et kogu Macromedia RIA-kontseptsioon (RIA: Rich Internet Application) laiemalt on olnud niivõrd uuenduslik nähtus, et seda polekski saanud kiirtoiduna tarbijale ette sööta.
Peamine põhjus, miks ma toona Flex’i olemusse ei vaevunud süvenema, oli aga see, et tegu oli selgelt suurfirmadele suunatud tootega, kalli serveripoolse lahendusega. Koguni sellisega, et konkreetset hinda polnud välja toodudki, pakkumise saamiseks paluti ühendust võtta müügiesindajaga… Julgen väita, et kogu see segadus kujundas kiiresti Flex’i ümber müstilise aura – see on siis SEE toode, Flash kuubis, millega saab teha oi-oi-oi-kui-vingeid asju. Eriti peeneid. Eriti interaktiivseid.
OK, nali naljaks, see on muide osaliselt isegi õige, aga mis see krdi Flex siis ikkagi on, vaat seda mina tükil ajal selgeks ei saanudki. Kuni ühel päeval umbes aasta tagasi tuli allhanke korras ühe Põhjamaade suurema veebiagentuuri kliendile hakata tegema Flash-lahenduse demo, mis oli plaanis hiljem realiseerida Flex’i baasil. Natuke halenaljakaks tegi projekti see, et kui mina olin vähemasti Flex’i kohta MM lehelt natuke lugenud, siis tellimuse esitanud agentuuri (>200 inimese ainuüksi peakontoris) arusaam piirdus tõesti vaid sellega, et “Flex on Flash kuubis”… Pärast mõningat tuhnimist MM veebis (asjalik info oli ju osavalt marketingi osakonna bla-bla vahele ära peidetud) olin ma varustatud järgmiste teadmistega:
- Flex on Java-serveri peal jooksev rakendus, mille ülesandeks on genereerida dünaamilisi Flash-muuvisid (SWF).
- Flex’i tuuma moodustavad erinevad hõlpsasti kohandatavad ja laiendatavad Flash-komponendid (UI, data).
- Flex kompileerib Flash-rakenduse XML- ja ActionScript-koodist saadud instruktsioonide põhjal. Täpsemalt on MM loonud oma XML-derivaadi MXML, mille ülesanne on peamiselt kirjeldada kasutajaliideseid.
Aastaga on aga muutunud palju. Esiteks on Adobe Flex’i ümber positsioneerinud. Eesmärgiks näib olevat viia see asi võimalikult kiiresti võimalikult laiade massideni. Teiseks on ka ilmselt oma marketingi-fopaast aru saadud, järjest enam luuakse erinevaid Flex-demosid ja Flash/Flex tiimide tegelased blogivad usinasti. Ning eelkõige just Flex’i populariseerimiseks arendajate hulgas kutsuti ellu Adobe Labs, kust on juba pea pool aastat tasuta saadaval Flex’i beeta, Flash Player 8.5 (nüüd 9) beeta jms pre-release-stuff.
Allright, selle mõistmiseks, et mis see Flex on, on nüüd võimalused märksa paremad. Aga kui palju maksab, vaat selle kohta ei leia me ka praegu Adobe’i lehelt konkreetset infot. Ning siin tuli meile lõpuks appi mr. Ben Forta, kes kummutab oma blogis 2 Flex’iga seotud müüti: et Flex on hirmus kallis ja et Flex on eelkõige server. Püüan mõned poindid vabas vormis välja tuua.
- Versiooni 1.x puhul oli Flex tõepoolest eelkõige server. Sa kirjutad MXML+AS -koodi, laed serverisse ja Flex koostöös Javaga kompileerib SWF-i.
- Versioonis 2 see muutub. Flex’i võimaluste kasutamiseks (komponendid, data binding) ei vaja sa tingimata Flex’i serverit (uue nimega Flex Data Services). Sa kirjutad oma MXML+AS -koodi ja kompileerid SWF-i ise. Ning see SWF on võimeline tänu uuele Flash Player 9-le jutustama serveriga üle HTTP-protokolli kasutades nii AMF-i (Flash Remoting) kui SOAP-i (Web Services).
- Adobe’i müüb sulle Flex’i nime all kaht toodet: Flex Builder on Eclipse-põhine IDE, mille street price saab olema alla $ 1000 per arendaja; Flex’i serveri (Flex Data Services) lõplik hind on veel teadmata, aga kindlasti saab olema saadaval entry-level tasuta versioon.
Seega on võimalik Flex’i rakendusi luua täiesti seaduslikult täiesti tasuta – eeldusel, et sa kasutad Flex Builder’i asemel mingit teist editori ja ei kasuta üldse serveripoolset softi või piirdud kõige lahjema FDS-iga, sest kompileerimiseks vajalik Flex 2 SDK oli ja on saadaval tasuta.
Ahjaa, et mis sai siis minu nn. Flex-projektist? Mina vähemasti Flex’ini ei jõudnudki – tegin demo Flash MX 2004-ga valmis, sain makstud ja agentuuri kõrgetasemeline delegatsioon läks pidulikult kliendile demo esitlema. Loodetavasti läks neil hästi, kardan aga, et kui nad Flex’i üleliia rõhutasid, võisid nad end avastada lõhkise küna eest – neil ei olnud palgal ühtki inimest, kes oleks suutnud seda rakendust kohe Flex’is teostama asuda… Samas, küllap leidsid nad nupukate inimestena muu lahenduse – näiteks tegi keegi selle saidi minu demo baasil valmis. Sest ainumas põhjus, miks neil tegelikult oli vaja seda va Flex’i selle projekti juures mainida, oli see, et uue ja tundmatu tehnoloogia-sõnakõlksu abil kliendilt suurem summa välja meelitada.

09.05.2006 kell 12:54
Minagi sellist jama näinud, kus tellijale müüakse maha kõiksugu vahvaid ja moodsaid lühendeid. Parim oli tolle müügi juures see, et keegi ei analüüsinud enne lahenduse mõttekust. Sedakorda siis kirjutati UI, mille lõpliku pildi väljastamisel tegid tööd serveris asuv PHP skript, mis pumpas andmed XML-i, serveris asuvad XSL-failid, mis sisaldasid nii XSL-i, kui ka JavaScripti ja kasutaja brauser, mis selle jubeduse siis lõpuks kokku keevitas. Lõpptulemus, ükskõik kui väga ka sellest s..tast saia ei püüdnud teha, oli üks - kliendi jaoks küllaltki ebamugav liides, mille järel pidi ootama pea igal sammul. Samuti ebamugav arendaja jaoks, kuna alates algusest oli UI osa kirjutatud suht kaootiliselt ja laiavalguvalt. Oma elu hakkasid peatselt elama ka XSL-id. Ei taha siinkohal väita, et antud tehnoloogiad oleks halvad ja mõttetud, oh ei. Neid saab väga edukalt kasutada. Aga enne tellija lollitamist suure kisa ja innovatsiooniga oleks tulnud võtta pits ja aru pidada. Samas… mida meie, tehnikud, ka müügist teame