Bevezető
Az alkotás vágya egészen új – virtuális teret – nyert a számítógépek elterjedésével. Kezdetben csak a régi, 8 bites mikrogépek BASIC-jén élhettük ki alkotó kedvünket. Az ügyesebbek persze szerezhettek fordítóprogramokat és az igazán elszántak belevághattak a gépi kódú programozásba is, hogy jobban kihasználhassák a kor gépeinek visszafogott lehetőségeit. A PC és a fejlettebb nyelvek elterjedésével, majd a Windows (és más grafikus kezelőfelületű rendszerek) térnyerésével a lehetőségek is jócskán bővültek, azonban az évtizedek során sokáig változatlan maradt a munka módszere. A felületes szemlélő számára a programozó töpreng, konzultál, rajzolgat a noteszébe, de a legtöbb időt azzal tölti, hogy végtelen szövegtengereket gépel be, aztán ezeket pofozgatja, míg a végeredmény elő nem áll. Akármilyen sokat fejlődött is a tervezési módszertan, a fejlesztőfelületek csak lassan mozdultak el vizuális irányba.
Szövegtengerből egér akadálypálya
Ismerős még valakinek a DOS-hoz mellékelt GW BASIC, majd a Quick BASIC? Esetleg a Turbo Pascal és a Turbo C? Alapvető különbségek voltak a ma már retrónak számító rendszerek között, de közös volt bennük, hogy a program szövegsorokból állt össze – ahogy ez így van a legtöbb modern fejlesztőrendszer esetében. A szövegszerkesztés, „matatás” kínjain sokat segítettek az integrált fejlesztőkörnyezetek, de sokat kellett várnunk arra, hogy az ablakos kezelőfelületet ne kódsorokból kelljen kiraknunk. Még az első windowsos fejlesztőrendszerek sem igazán támogatták a vizuális felülettervező módszereket, programsorokban paraméterezve kellett létrehozni az ablakokat és komponenseket, így a felület elkészítése még mindig nehézkesen, papíron vagy fejben történt.
Visual Basic for MS-DOS
Az első széles körben ismert és használt vizuális felülettervezővel rendelkező rendszer a Microsoft Visual Basic volt, ami 1991-ben indult hódító útjára. Egyszerűen megtanulható nyelv volt és nagyban építkezett a korábbi BASIC nyelvekre, így a mikrogépeken edződött közönség könnyen szívébe zárta. A kezelőfelületeket egérrel, alapvetően kattintásokkal és vontatással állíthattuk össze, az eseményvezérlő modulokat automatikusan elkészítette, fejlécezte az integrált fejlesztőkörnyezet (IDE), mely a rendszer fejlődésével egyre hatékonyabban támogatta a munkát, például automatikus kódkiegészítéssel, „kitalálva”, hogy mit szeretnénk írni. Persze a rendszer nem volt (strukturálisan sem) hibátlan, de használható annál inkább, hagyományait megújult alapokon viszi tovább ma is a Visual Basic .Net, mely a Visual Studio termékcsalád része. (A Microsoft ma már csak a rajongók kedvéért viszi tovább a nyelvi struktúrájában a kor követelményeihez igen nehezen igazítható Basic modult.) Jó alapul szolgálhatott (valószínűleg) másoknak is, így hasznos szolgáltatásai és vizuális szerkesztője visszaköszönt az 1995-ben megjelent Borland Delphi 1.0-ban és máig népszerű utódaiban (ma már Embarcadero néven működik a cég). Persze azóta nem találni olyan sikeres rendszert, melyhez ne lenne vizuális kezelőfelület összeállítására alkalmas modul, ami jelentősen gyorsítja egy alkalmazás fejlesztését, de azért a kód írását ezekkel sem lehet kiküszöbölni.
Vizuális vagy elvont?
A Visual BASIC óta sok verejték lefolyt a fejlesztők homlokán és nem hiába, a fejlesztőkörnyezetek egyre jobbak, modernebb nyelv-verziók és platformok jelennek meg. Csakhogy a vizualitás sem mentesíti a programozót – a hagyományos esetekben – az absztrakciótól. A munka során a valós világ elemeit, folyamatait elvont megfelelőikkel (objektumok, folyamatok, döntési sémák, adatstruktúrák) kell helyettesíteni úgy, hogy a végén egy megfelelően működő alkalmazás álljon össze. Ha adatbázis-kezeléssel kapcsolatos a folyamat, akkor tudnunk kell, hogy mik azok a normál formák, adattípusok, adattároló- és lekérdező nyelvek, kiszolgálók. De ha játékot szeretnénk írni, akkor sincs egyszerűbb dolgunk és mindenképpen meg kell ismernünk a változók, tömbök, listák, objektumok természetét – ezek ugyanis a programok felépítésének standard eszközei, legalábbis a hagyományosnak mondható programfejlesztő eszközök esetében (még ha azok igen jól használható felülettervezővel, grafikus adatbázis kapcsolat szerkesztővel és intelligens kódkiegészítéssel, hibakereséssel dolgoznak is). Azok, akik hajlandóak a programozás rögösebb útját járni és szívesen felújítanák a BASIC, Fortran, Pascal vagy épp Z80 assembly kóddal kapcsolatban megszerzett programozói készségüket, ma rengeteg eszköz közül válogathatnak, melyekből alább találnak is egy nyálcsorgató ajánlót, csak aztán győzzék szabadidővel.
Ha nem szeretnénk belemerülni a zárójelek és pontosvesszők világába, hanem inkább a bölcsész vagy menedzser oldaláról szeretnénk egy kis szeletet a programozás világából, akkor is vannak lehetőségeink.
Terminátor, készíts egy rántottát!
Teljesen laikusként először talán nem egyértelmű, hogy mit kell ennyit molyolni a programozással, hiszen két mondatban el lehet mondani, hogy milyen alkalmazást szeretnénk. Akkor válik lassan világossá, hogy mi mindent tartunk magától értetődőnek, egyértelműnek, ha a mondandónkat pontokra, elemekre próbáljuk bontani, felsoroljuk, mit kell tárolni, kirajzolni, bekérni, feldolgozni. Talán egyszer a – nem is túl távoli – jövőben a háztartási gépek is értenek majd a szóból és nem kell nekik lépésenként elmagyarázni, hogy mit tegyenek, elég lesz rendelni egy takarítást vagy egy ebédet. Persze igazi megoldást a mesterséges intelligenciával felszerelt virtuális személyek jelenthetnének, akiknek egy megbeszélésen elmagyarázhatnánk, hogy mire gondolunk, bevezethetnénk új fogalmakat, koncepciókat és néhány konzultáció után összeállna a „program”. (Valahogy úgy, mint ahogy jelenleg a megrendelő a rendszerszervezővel/projektmenedzserrel és a programozóval konzultál.) Addig is, míg ez megvalósul, kénytelenek leszünk beérni a vizuális programozási eszközökkel, melyek – túllépve a felülettervezésen – az adatstruktúrák ábrázolását és/vagy a program lényegének leírását tekintve is szakítanak a gyakorlatilag egydimenziós, szöveg alapú kódbevitellel. Átütő sikerről még nem tudunk beszámolni a vizuális fejlesztőrendszerek terén – és egyelőre az sem egyöntetű, hogy pontosan mit értsünk ezek alatt –, mindenesetre kerestünk-kutattunk és sikerült találnunk jó néhány olyan eszközt, melyek a billentyűzet minimális használatával teszik lehetővé használható szoftverek készítését.
Beszélgetés az ügynökkel
A fentebb említett beszélgetős megközelítést (conversational programming) alkalmazza az AgentSheets fejlesztőrendszer. A conversational programming annyit tesz, hogy a fejlesztőkörnyezet folyamatosan próbálgatja a készülő programot és visszajelzéseket, előrejelzéseket ad. Egymással együttműködő objektumokból (agents, azaz ügynökökből) épülnek fel az alkalmazások (taktilis programozás), a feltéteket és akciókat állítgatva folyamatosan próbálgathatjuk a működést és a program kimenetelét, vizuális visszajelzést kapunk a hibákról és lehetőségekről is. Kisebb játékokat és szimulációs projekteket érdemes létrehozni a szoftverrel, mely Java appletet készít a végeredményből. Az AgentSheets nem ingyenes és elég szűk, háromnapos próbaidőszakot szabtak hozzá, ennek leteltével 120 dollárt kell leszurkolni a programért. Talán programozók számára megbotránkoztatóan fura az AgentSheet, épp a dolgok természetes megközelítése miatt, ugyanakkor kifejezetten ajánljuk azoknak, akik nem értenek a hagyományos programozáshoz és nem is akarnak (vagy mernek) belevágni. A telepítőkészlet rendelkezésre áll Windows és Mac rendszerekhez, és némi angol nyelvismeretre mindenképpen szükség van.
Kódsorok helyett kártyák és folyamatos futtatás jellemzi az AgentSheets fejlesztőrendszert
AgentSheets
Platform: Windows, Mac OS
Ár: 120 USD
Erőssége: teljesen újszerű megközelítés a programozásban
Gyengéje: csak három napig működő próbaverzió
Ajánlható: akár szélsőségesen humán beállítottságúaknak is, csak tudjanak angolul
Mobilra és blokkokra hangolva
Nem új, de ma is élő és ingyenes kezdeményezés a Google App Inventor, melyet pár éve az MIT (Massachusetts Institute of Technology) kezébe adott a cég. A Google-fiókkal használható webes felületen megtervezhetjük Android alkalmazásunk képernyőit, elhelyezhetjük a különféle vizuális komponenseket (pl. szövegdobozok, gombok), és projektjeinket az MIT szerverére menthetjük. A Blocks Editorban definiálhatók a kódblokkok, puzzle-stílusú elemekből rakhatók ki a kívánt lépések, elágazásokat, döntések és ismétlődő, ciklikus tevékenységek. Java-alapú projekt lesz a végeredmény és letölthető a számítógépre, valamint áttölthető androidos telefonunkra. A fejlesztőrendszer még ma is béta állapotú, az utolsó módosítást 2013 októberében ejtették meg rajta. Egyelőre nagy, robusztus dolgokat nem lehet benne összerakni és nem finomhangolható a komponensek megjelenése sem, de egyszerűbb alkalmazásokat azért összelapátolhatunk vele.
Sok mindent összedobhatunk az MIT App Inventorral programkód szerkesztése nélkül
MIT App Inventor
Platform: Android
Ár: ingyenes
Erőssége: ár, kódmentes munka, viszonylag egyszerű logika
Gyengéje: még mindig béta
Ajánlható: akár kezdőknek, ismerkedésre
Játékírásra fel!
Ha valaki arról ábrándozna, hogy játékszoftvereket készít, sőt, azon belül a játékkonzolok világát célozná meg, annak is akad mit tanulmányoznia. A 2D hobbi játéktervezés az a terület, ahol valóban hamar eligazodhatunk programozási ismeretek nélkül is. Itt is nagyon jól jön egy kis alapvető angol nyelvismeret, de még ebből sem lesz sokra szükség. Annál inkább hasznát vesszük a jó grafikai érzék mellett a kitartásnak, játékérzéknek, hogy a végeredmény elkészüljön és kellően lebilincselő is legyen.
A GameMaker igen régi név ebben a játékfaragós hobbi iparágban és Lite, ingyenes változatával Windows alatt futtatható hagyományos (kétdimenziós) játékokat készíthetünk. Szobákat (játéktereket, pályákat) rendezhetünk be, minden elem viselkedését megadhatjuk, feltételekhez köthetjük (gombnyomás, egérmozdulatok, ütközések). Kódra abszolút nem lesz szükség, folyamatábra jelleggel állíthatóak össze a döntési sémák. Nem nehéz ráérezni a dolgok mikéntjére, de az oktatóanyag is sokat segít, több műfajban is tartalmaz konkrét példákat. A szokásos útvesztős és platformjátékokat igen könnyen megvalósíthatjuk ezzel az eszközzel. Nem csak kipróbálhatjuk a fejlesztőeszközt, hanem működő, használható játékokat hozhatunk létre vele és ugyanazzal a módszerrel dolgozhatunk az ingyenes kiadásban is, mint a fizetősben.
A GameMaker fizetős változatával elvileg nem gond egy új Angry Birds sem
A YoyoGames moduláris upgrade lehetőségeket kínál. 50 dollárért teljes verzióra térhetünk át számos extrával, köztük élsimítással, többjátékos móddal, JavaScript könyvtárak támogatásával, intelligens útkereső algoritmusokkal, töltőképernyővel. A 99 dolláros GameMaker: Studióhoz jár a Box2D fizikai motor, így az Angry Birds klónok egyszerű gyártására is lehetőség nyílik. OS X, Android, iOS és HTML5 alkalmazást is generálhatunk projektünkből, de az opcionális kimeneti modulok elég drágák, a legtöbb 199 dollárért vásárolható meg.
GameMaker: Studio
Platform: Windows
Ár: ingyenes
Erőssége: ár, kódmentes munka, egyszerű használat, kiváló upgrade lehetőségek
Gyengéje: csak klasszikus játékokstílusokhoz használható
Ajánlható: akiknek az ötlet már megvan, csak az eszköz hiányzik
Ha játék, akkor 3D!
Több 3D-s játékmotor is elérhető, akkor is, ha eltekintünk a professzionális, drága platformoktól. Az ingyenesek között a leginkább figyelemre méltó a Kodu, mely a Microsoft gyermeke és lehetőséget ad arra, hogy egy árva kódsor megfogalmazása nélkül hozzunk össze bájos 3D-s játékokat. Magunk gyúrhatjuk a terepet, van néhány készen kapott figura, amit áttervezhetünk és színezhetünk, és persze megszabhatjuk, hogy miként viselkedjen. A program a valóságoshoz hasonló virtuális teret kínál, melynek elemei elég élethűen viselkednek, jó móka lehet akár alsó tagozatos gyermekeknek is a kipróbálása. Nem tudunk olyan professzionális játékról, ami ezzel készült, de az oktatóprojektként szolgáló, halra lövöldözős kis alkalmazást valóban percek alatt össze lehet rántani benne. A kész program Windows vagy Xbox platformon futtatható.
Game Kodu
Ár: ingyenes
Erőssége: ár, kódmentes munka, 3D, pofonegyszerű használat
Gyengéje: nagyon egyedit nehéz lenne létrehozni benne
Ajánlható: gyerekeknek
Tombolj konzolon!
Még ígéretesebb lehet a Project Spark, mely egyenesen az Xbox címek fejlesztéséhez kínál programfejlesztési eszközt, akár olyanok számára is, akik életükben egy sor kódot sem írtak. A Project Spark bétatesztelői közé már júniusi bejelentése óta fel lehetett iratkozni, de csak most indult el igazán a rendszer, mely a termék várhatóan jövő évi megjelenéséig ingyenes használható lesz (a tesztelők számára). Használatához először is Windows 8-ra (nem RT!) lesz szükség, nomeg kreativitásra és kitartó munkára. A beharangozók közösségi fejlesztői teret ígérnek, ahol kipróbálhatjuk mások alkotásait és sajátunkat is közszemlére tehetjük. A szereplőket, pályákat háromdimenziós virtuális szobrászkodással (sculpting) hozhatjuk létre, majd életet lehelhetünk beléjük a viselkedési minták hozzárendelésével. Az előzmények alapján feltételeznénk, hogy a Koduból merítettek ötleteket a Microsoftnál az új projekthez, de hogy pontosan miként, azt egyelőre nem tudjuk. Mindenesetre a képernyőképek nagyon ígéretesek.
Project Spark
Ingyenes eszközök újrakezdőknek és profiknak
Ma már szinte minden területen találunk ingyenes fejlesztőeszközöket, a legtöbbet talán weboldalkészítéssel kapcsolatban. Közülük egy eléggé kedvelt nyílt forrás kódú darab a Mozilla által támogatott KompoZer, mely vizuális szerkesztési lehetőséget (is) biztosít és segít a stíluslapok kezelésében is. Nem egy Dreamweawer, de nem rossz. Ha valami hasonlóra vágynánk más stílusban, akkor az Amaya szerkesztőt érdemes még kipróbálni.
Vizuális szerkesztő nyílt forráskódból – KompoZer
Amaya – ha a KompoZer nem jött be
KompoZer
Ár: ingyenes
Erőssége: ár, WYSIWYG, CSS kezelés
Gyengéje: -
Ajánlható: alkalmi HTML oldalakhoz
DOS rajongóknak, ASCII-vitézeknek továbbra is ott a múlt öröksége, a jó öreg Turbo Pascal. Ma már ingyenesen használható vagy bevethető helyette a Free Pascal, mely ma is élő projekt és újabb platformokra is lehet vele dolgozni, konkrétan Intel x86, AMD64/x86-64, PowerPC, PowerPC64, SPARC és ARM vasakra is készíthetünk vele kódot.
Nagy klasszikus a Turbo Pascal 7.0
Free Pascal
Ár: ingyenes
Erőssége: ár, modern Pascal megvalósítás, multiplatform
Gyengéje: konzolos alkalmazások
Ajánlható: Pascal újrakezdőknek
Aki szeretett volna annak idején Delphi fejlesztőrendszert venni, az most mindenképpen próbálja ki a Lazarust, mely gyakorlatilag egy ingyenes Delphi-klón (persze jócskán lemaradva az Embarcadero termékek mögött). Készítői a Free Pascal alapjaira építkezve újraépítették a vizuális komponens könyvtár jelentős részét, ezek szabadon használhatók minden platformon (Linux, OS X, Android, Windows Mobile, UNIX, iOS, Raspberry PI). Akár régi, PowerPC-alapú Mac-re is rendelkezésre áll a fejlesztőrendszer, mellyel igen változatos alkalmazásokat készítettek már. Érdemes megnézni a Lazarus weboldalán a dicsőséglistát, úgy tűnik, hogy semmi sem lehetetlen. Többségében ingyenes szoftverek fejlesztéséhez szolgál kiváló eszközül, de készítenek vele kereskedelmi alkalmazásokat is.
Lazarus
Ár: ingyenes
Erőssége: ár, ingyenes Delphi, modern fejlesztőrendszer, abszolút multiplatform
Gyengéje: -
Ajánlható: C, C++ vagy Pascal után/helyett
Ha olyan nyelvet, platformot tanulnánk, amit a későbbiekben kereseti forrásként is szeretnénk kiaknázni, akkor nagyban ajánlható a Java és az Eclipse. Senki sem ígéri, hogy egyszerű nyelv (illetve platform) a Java, de rengeteg robusztus, nagyvállalati alkalmazás használja, mindent építettek már rá beágyazott vezérlésektől webszerveren futó portálplatformig.
Eclipse
Ár: ingyenes
Erőssége: ár, igen modern platform és jó fejlesztőkörnyezet
Gyengéje: ez már egyáltalán nem kezdőknek való
Ajánlható: elszántaknak
Nem Java, hanem .Net alapokra épít a Microsoft fejlesztőkörnyezete, a Visual Studio, mely nem olcsó, de létezik ingyenes kiadása is. Az egyik legkiválóbb és (legalábbis alapszinten) legkönnyebben tanulható hagyományos, vizuális felülettervezővel is rendelkező fejlesztőkörnyezet.
Visual Studio
Ár: ingyenes (az Express kiadás)
Erőssége: ár, modern Pascal megvalósítás, multiplatform
Gyengéje: erősen kötődik a Windowshoz
Ajánlható: közepesen elszántaknak