Programozás mindenkinek

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
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
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
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 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ó.

Kodu
Kodu

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
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
Vizuális szerkesztő nyílt forráskódból – KompoZer

Amaya – ha a KompoZer nem jött be
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
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
Eclipse

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 2013
Visual Studio 2013

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

Azóta történt

Előzmények