Programozás grafikus felülettel, 4GL környezetben asztali alkalmazásokhoz:

* Delphi, C++Builder: honlap (Embarcadero Technologies, korábban Borland Software Corporation)
* Lazarus: honlap
* Visual Studio: honlap

A 4GL fogalma

A 4GL betûszó, a 4th Generation Language (negyedik generációs programnyelv) szavak rövidítését jelenti. Az elnevezésben ugyan a programozási nyelv kifejezés szerepel, ez azonban megtévesztõ a 4GL eszközök ugyanis valójában nem programozási nyelvek. A negyedik generáció kifejezés pusztán arra utal, hogy az ilyen eszközökkel készített alkalmazások fejlesztése területén jelentõs (generációs) változás következett be.

Programozási nyelvek generációi

A programozási nyelveket történeti fejlõdésük során sokféleképpen lehet osztályozni, csoportosítani. A programnyelvek idõbeli változásának egy-egy fontosabb állomását a programozási nyelvek generációjának nevezzük. A programozási nyelvek elsõ generációja a legalacsonyabb szintû programnyelv, a gépi (bináris) kód. Ez az a nyelv, amelyet számítógép-processzor közvetlenül megért. A gépi kódot tulajdonképpen nem is lehet igazi programnyelvnek tekinteni, hiszen erre a klasszikus értelemben vett programnyelvi elemek (utasítások, vezérlõszerkezetek, kifejezések) nem jellemzõek. A programnyelvek második generációja az alacsony szintû (gép közeli) nyelvek. Ezeknél a nyelvknél megmarad a számítógép erõforrásainak (hardver, operációs rendszer) maradéktalan kihasználhatósága, a memóriacímek, a regiszterek, a verem és a megszakítások közvetlen elérhetõsége, programozhatósága. Az alacsony szintû nyelveknél (pl. az assemblynél) minden gépi utasításnak megfelel egy nyelvi utasítás (egy nyelvi utasítás azonban állhat több gépi utasításból is.) Megjelennek az adatok és az adatok helyfoglalását, a programkód memóriába helyezését definiáló utasítások. A memóriacímek azonosítóval való ellátásra is van lehetõségünk. Az adatok kezdõcímét elnevezhetjük, ebbõl alakul ki késõbb a változó fogalma, az utasítások címeinek elnevezésbõl pedig a címke fogalma. A programnyelvek harmadik generációját (3GL) magas szintû programozási nyelveknek nevezzük. Ezeket a nyelveket (pl.: cobol, pascal, basic, c) gyakran a 3GL jelöléssel szokás ellátni (3rd Generation Language). A programnyelvek e generációjánál a változófogalom pontosabb megjelenése az egyik legfontosabb tulajdonság. A változó azonosítója nem memória-kezdõcímet, hanem egész tartományt jelöl. A változófogalomból kialakul a típusfogalom, és lehetõség van arra, hogy a programozó saját típusokat is létrehozzon. Kialakulnak a strukturált programnyelvek, megjelennek az elágazások, a ciklusok, az eljárások és függvények. Az eljárásoknak lehetnek név illetve cím szerint átadott paraméterei is. A harmadik generációs programnyelveket feladatorientált nyelveknek is nevezzük, mivel felépítésükbõl fakadóan a programfejlesztõ számára egy program adott részfeladatainak megoldására szolgáló struktúrákat (eljárások) kínálnak. A programnyelvek következõ generációját nevezték el 4GL-nek, mivel az ezekkel az eszközökkel történõ programfejlesztés merõben más technikákat és módszereket kívánt a fejlesztõktõl, mint a magas szintû programozási nyelvek.

A 4GL eszközök tulajdonságai

A 4GL eszközök magas szintû programozási nyelvre épülõ komplex, objektumorientált programfejlesztõi rendszerek. A 4GL rendszerek a hagyományos programozási nyelvektõl eltérõen nem igénylik az összes elemi -különösképp a felhasználói felületekre vonatkozó- tevékenységek részes implementációját. A programozó készen kap olyan elemeket, objektumokat, amelyekkel ezeket a gyakran idõrabló feladatokat gyorsan és hatékonyan képes megoldani. Így például nem szükséges a felhasználói felületet a részletek szintén utasításonként programozni, elegendõ csak a képernyõn megjelenõ elemeket megadni, és a fejlesztõrendszer ez alapján már automatikusan generálni tudja az ûrlap (ablak) egy alapértelmezés szerinti felépítését. Ezzel a módszerrel a 4GL eszközökkel történõ fejlesztés során a programozó magasabb szintû absztrakcióval készítheti a programjait. Erre az úgynevezett komponens alapú fejlesztési módszer teremti meg a lehetõséget. A komponensek olyan elõre gyártott építõelemek, melyeket a fejlesztõkörnyezet tartalmaz. A programozó ezekbõl a vizuális tervezõfelületen összeállíthatja a programja vázát, felhasználói felületét. Ezen a szinten a programkód is automatikusan generálódik, tehát a fejlesztõ idejének nagyobb hányadát fordíthatja a speciális algoritmusok (alkalmazás logika) elkészítésére. Manapság a nagyobb rendszereket szinte kizárólag ilyen 4GL környezetben fejlesztik és kisebb alkalmazásoknál is egyre jobban teret hódít ezek használata. A különbözõ 4GL rendszerek eltérhetnek egymástól az egyes funkciók tekintetében és azok lehetõségeiben is. Nincs egységes követelmény arra nézve, hogy mit és milyen szinten kell tartalmaznia egy 4GL rendszernek, meg lehet azonban határozni olyan jellemzõket, amelyek általánosan minden 4GL eszközre vonatkoznak.

Futtatható állomány generálása: sok olyan eszköz van, amely a 4GL rendszerek általános követelményeinek megfelel ugyan, ezért aztán ilyen eszközöknek is tekinthetnénk ezeket, azonban a futtatható állomány (.EXE) generálásra nem képes. Például az MS Acces is sok jellemzöjével azonos a 4GL eszközökkel, a fejlesztõrendszertõl függetlenül futtatható állomány fordítására azonban nem képes, ezért nem nevezhetjük "igazi" 4GL fejlesztõrendszernek
Gyors fejlesztési lehetõségek: a 4GL rendszerek gyors programfejlesztést tesznek lehetõvé, a programok fejlesztése nagyrészt megvalósítható a megjelenítési, eseménykezelési paraméterek megadásával. Nincs tehát szükség a kulcsszavak ismeretére, leírására, csak a paraméterérték megadására.
Objektumorientáltság: a 4GL eszközök szinte kivétel nélkül objektumorientáltak, vagyis objektumok felhasználásával lehet az alkalmazásainkat elkészíteni.
Grafikus felhasználói felület: a mai igényeknek megfelelõen az alkalmazói programokat grafikus felületen kell mûködniük. A 4GL eszközökben felhasználhatjuk az operációs rendszer által nyújtott grafikus erõforrásokat, és készíthetünk újakat is. A felületek megtervezésére külön eszközt biztosítanak a fejlesztõrendszerek, melyek segítségével egyszerûen készíthetünk felhasználói felületeket.
Korszerû programozástechnikai eszközök, technológiák használata: a 4GL rendszerek igyekeznek a legújabb programozástechnikai eredményeket is magukba foglalni, használni.
Szabványosság és rugalmasság: a 4GL komponensei a szabványos megoldásokra alapoznak, mivel ezzel a függetlenség is jobban biztosítható. A változtatások megvalósítása a szükséges paraméterek átírásával gyorsan megoldható.
Teljesség: a 4GL nyelvek már minden olyan opciót magukba foglalnak, melyek az igények széles körét kielégítik.
Moduláris programfelépítés: Az alkalmazások modulárisan felépíthetõek, ezáltal a változások esetében nem szükséges a teljes program átírása, elegendõ pusztán az adott modul megváltoztatása.
Csoportmunka-támogatás: adminisztrativ eszközök biztosítása a csoportmunka, a munkamegosztás követelményeinek biztosítására.
Segédprogramok: a 4GL eszközök általában nem egy fejlesztõrendszert tartalmaznak csupán, hanem ehhez kapcsolódva igen sok kiegészítõ segédalkalmazás is a fejlesztõk rendelkezésére áll. Ezek a programok általában a grafikus felületek elkészítésében, a rendszeresemények felügyeletére, az adatbázis-kezelés támogatására és sok minden egyéb kisebb, de lényeges feladat elvégzésére szolgálnak.

A 4GL eszközök felhasználási területei - akárcsak a 3. generációs programnyelveké több csoportra oszthatók.

Az elsõ csoportba tartoznak az olyan általános 4GL eszközök, mint pl. a Delphi vagy a Visual Basic, amelyek általános programozási feladatok megoldására szolgálnak. Némely szolgáltatásunk - mint például a Delphi esetében az adatbázis-kezelés - olyan fejlett is lehet, hogy sokszor az adott funkciójuknak megfelelõ "beskatulyázást" is kaphatnak. Például a köztudatban a fent említett Delphit sokan adatbázis-kezelõként kategorizálják, megfeledkezve arról, hogy tulajdonképpen ez egy általános, nagyon sok egyéb célra is használható 4GL eszköz.
A második csoportba az adatbázis-kezelõ 4GL eszközök tartoznak.Ilyen például a Visual FoxPro, Oracle Power Forms, Magic. Ezek a rendszerek általános feladatok megoldására nem igazán használhatók, az adatbázis-kezelõ alkalmazások fejlesztésének azonban hatékony eszközei.
A harmadik csoportba a 4GL eszközök tartoznak, amelyek valamilyen speciális feladat megoldására adnak kész eszközöket. Ilyen speciális feladat lehet például az internet alapú alkalmazás- fejlesztés, melynek ugyancsak lehetnek 4GL alapú fejlesztõrendszerei (pl.: MS InterDev).

A 4GL rendszerek elõnyei ellenére még bizonyos szempontok hátráltatják gyorsabb elterjedésüket:

sokkal erõforrás-igényesebb, mint a hagyományos (3GL) rendszerek,
a hagyományos megoldások már beváltak, jobban ismertek mind fejlesztõi, mind felhasználói oldalról,
komplexitásuk miatt áttekinthetõségük meglehetõsen nehéz programozói feladat,
nincs mindig szükség a 4GL nyújtotta elõnyökre,
lényegesen drágább, mint a hagyományos eszközök,
a felhasználók lassabban térnek át újabb eszközökre.

A felsorolt hátrányok ellenére napjainkban egyértelmûvé vált, hogy a korszerû alkalmazásfejlesztés egyetlen eszközként csak a 4GL eszközök vehetõk számításba.

Ellenõrzõ kérdések és feladatok
1. Mutassa be a programnyelvek generációját! Röviden jellemezze az egyes generációkat!
2. Ismertesse a 4GL fogalmát!
3. Mutassa be, hogy milyen lényeges elemében térnek el a 4GL eszközök a magas szintû (3GL) programnyelvektõl!
4. Milyen követelményeknek kell megfelelnie egy 4GL rendszernek?
5. Hogyan lehet csoportosítani a 4GL eszközöket?
6. Ismertesse a 4GL eszközök használatának elõnyeit!
7. Mutassa be, milyen tényezõk hátráltatják a 4GL eszköz elterjedését!

forrás: Itt