Tag Archives: Notepad

Nädal 9. Vaba tarkvara kui oluline eeldus – FlashDevelop

FlashDevelop 4.2.3 - Logo

Image: Mika Palmu @ www.flashdevelop.org

Käesolevas postituses analüüsin MIT-litsentsil põhinevat vaba tarkvara (free as in „free speech“, not as in „free beer“) nimega FlashDevelop. Tegu on arenduskeskkonnaga, mille eesmärgiks on luua terviklik töövahend Flashi kõrval ilmavalgust näinud ActionScripti rakenduste programmeerimiseks.

Esimest korda tegin Flashiga tutvust u. 2003. aastal; algne kokkupuude oli tingitud minu tolleaegsest (peaaegu et fanatismini küündivast) huvist 2D animatsiooni ning kõige sellega seonduva vastu (ühe vana multika leidsin isegi veebist üles). Mängumaailma tormilise arengu taustal teisenes see huvi aga üsna ruttu pigem interaktiivsete lahenduste suunas, mille toel liikusin hiljem edasi juba bänner-reklaamide, kohanduvate disainimallide ning kõiksugu muude veebijullade valmistamisele.

Järgneva sisu paremaks mõtestamiseks toon lühikese ülevaate ActionScripti ajaloost. Nimelt otsustati 1998. aastal Flashi tuumiksüsteemi kõrvale luua uus skriptimiskeel, mis toetuks suures osas ECMAScripti spetsifikatsioonile ning lihtsustaks programmi abil interaktiivsete lahenduste valmistamist. Flashi autorisüsteemi arendajate üllatuseks hakkas aga keel üsna kiiresti oma elu elama, jõudes välja väga erinevatele platvormidele ning võrdlemisi unikaalsete kasutuskohtadeni (alustades väikestest mobiilirakendustest ning lõpetades Make-platvormil põhinevate mikrokontrollerite keskse programmeerimiskeelega). Kuna autorisüsteemi algupärase versiooni arendamisel ei oldud aga programmeerimisalaste tööriistade väljakujundamisele erilist tähelepanu pööratud, otsustati sama poliitikat jätkata ka uute ja küllaltki spetsiifiliste huvigruppide lisandumisel. Viimase tulemusena kujuneski olukord, kus Macromedia (tänaseks küll juba Adobe) poolt ei ole pakkuda ühtegi normaalset keskkonda ActionScripti rakenduste programmeerimiseks. Algses arendusplatvormis kasutusel olnud programmeerimisvahendid olid (ja on tänase päevani – Adobe Flash Professional CS6 seisuga) naeruväärselt kehvas olukorras, pakkudes arendajale peaaegu sama mitmekülgset tuge, kui „paljas“ (ingl. k. bare) Notepad. Oma Flashi rakenduste arendamisele kulutatud aja vältel kirusin seda probleemi peaaegu igapäevaselt; mullu tekkis aga vajadus end tolle maailmaga taaskord kurssi viia ning selgus, et aeg on vahepeal kõvasti edasi läinud – tärganud oli uus avatud lähtekoodiga IDE nimega FlashDevelop.

Esmamulje FlashDevelopist oli äärmiselt meeldiv – kaunite pastelsete toonidega süntaksi esiletõste, koodialased nõuanded (ingl. k. code completion) ning võimalus getterid ja setterid koos kõige muu pudi-padiga ühe nupuvajutuse abil valmis genereerida. Mis puudutab kasutajaliidese välimust, siis kõige enam meenutas see mulle Netbeansi arenduskeskkonda. Funktsionaalsuse osas jäi aga esimesena silma korralik AS2.0 pärandkoodi tugi, mis on küll oma tähtsust kiiresti kaotamas, kuid hetkel veel vägagi aktuaalne teema. (Nimelt pole suur osa mittetehnilise taustaga Flashi disaineritest ikka veel uue keeleversiooni (AS3.0) peale üle kolinud. Seetõttu kohtab taolist pärandkoodi reaalses elus üsna sageli, mistõttu pean oluliseks ka IDE jätkuvat tuge antud dialektile.) Heaks omaduseks on ka Eclipse’i-laadne pluginapõhine arhitektuur, mis tagab kogukonna maksimaalse kaasatuse ning võimaldab kõigil huvilistel tarkvara lihtsamini täiendada (st. ilma algset lähtekoodi näppimata). Lisaks sellele pakub keskkond algelist tuge XML-, HTML- ja CSS-dokumentide koostamisele, mis muudab ta mugavaks abivahendiks ka kiirete veebiediteeringute teostamisel.

Screenshot - FlashDevelop IDE 4.2.3

Image: Priidu Neemre @ www.nemp.planet.ee

Paljud arendajad peavad Macromedia ametliku platvormi ainsaks edukaks komponendiks selle silumisvahendit, mis lisati oma praegusel kujul Flashi 9.0 väljalaskes (~2006. aastal). See on ka üks põhilisi arengusuundi, mille osas FlashDevelopit hetkel täiustada püütakse – viimasel on olemas vaid üsna piiratud funktsionaalsusega debugger. Teiseks suuremaks puuduseks on nõrk versioonihaldusvahendite tugi, mis võib ka mõne triviaalsema toimingu muuta üsna ebameeldivaks seikluseks. Näiteks ei võimalda minu masinasse installeeritud versiooni (4.2.3, pärineb u. 2013. aasta algusest) SVN-i plugin isegi branch, merge ning switch operatsioonide täitmist. See tähendab, et iga vähegi keerukam versioonihaldusalane toiming eeldab juba mõne spetsiaalprogrammi (nt. SourceTree, TortoiseSVN vmt.) appivõtmist. Vastava mooduli tugevaks küljeks on aga see, et toetatud on kõik hetkel enamlevinud versioonihaldussüsteemid (SVN, Git ja Mercurial) – elementaarsete operatsioonide läbiviimiseks sobib ta seega pea igale „peavoolu“ arendusmeeskonnale. FlashDevelopi kolmas ja suurim puudus avaldus minu jaoks aga alles siis, kui otsustasin selle installeerida ka oma Linuxi arenduskeskkonda (nimelt kasutan vaheldumisi Fedorat ja Windows 7-t). Lähemal uurimisel selgus, et tegu on täielikult Windowsi keskse C# rakendusega ning et porditud versiooni valmimine lähiajal ei ole kuigi tõenäoline, kuna kasutatud on .NET raamistiku küllaltki uusi võimalusi.