Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Informatika oktatása / Szoftverválasztás /2.3. A fejlesztői környezetek értékelése

Szoftverválasztás

2. Programozási nyelvek értékelése

2.3. A fejlesztői környezetek értékelése

A programozási nyelvek után megvizsgáljuk, milyen szempontok alapján mérhetők a fejlesztői környezetek, amelyeken keresztül bontakozhatnak ki a nyelvek érdemei, és – esetleges – gyengeségei.

2.3.1. Funkcionalitás

A fejlesztői környezetek szokásos funkciói: programszerkesztés, fordítás (compiling+building), futtatás, nyomkövetés, esetleg beépített tesztelési lehetőség, refaktorizáció vagy segítség a dokumentáció generálásában.

Megjegyzés

A refaktorizáció alatt a program kódjának átszervezését értjük; például egy több modulból álló projekt esetében egy azonosító megváltoztatását a teljes forráskódban, vagy egy kódrészlet eljárássá alakítását.

2.3.1.1. Forráskód szerkesztés – felület – „statikus támogatás”

Az első részfeladat rábízható a legegyszerűbb szövegszerkesztőkre is. Mára már számos programszerkesztésre specializálódott szoftver került a piacra, amelyek rendelkeznek a legalapvetőbb szolgáltatásokkal: strukturált tagolás, programozási nyelv-függő ún. kódkiemelés (code highlighting). Ilyenek például: BSEdit, Notepad++.

Komplett fejlesztői környezetek közül néhányat kiragadunk, hozzájuk rendelve azon programozási nyelveket, amelyek szerkesztéséhez ajánlják: Geany – Pascal, PHP, Java, Python...; NetBeans – Java, PHP; Visual Studio-C++, C#,BASIC...; Code::Blocks – C, C++, MATHLAB;... Elvárható szolgáltatásaik a fentebbi minimumokon túl az automatikus szintaxis buborékok (hint vagy intellisense) megjelenítés, illetve az ún. kódkiegészítés (code completion), amelyek gyorsabbá és biztonságosabbá tehetik a kódolást. Egyes fejlesztői környezetekben az intellisense a felhasználó által leggyakrabban használt lehetőségeket kínálják fel elsőként.

Megjegyzés

Hint alatt mi egy statikus szintaxis buborékot értünk, intellisense alatt pedig egy jóval többet tudót.

Az oktathatóság szempontjából különösen nagy jelentőséggel bír a súgók léte, milyensége. Nagy nehézséget jelent, ha a súgás kimerül egy internetcímre való utalásban. Így volt a FreePascal, és a Lazarus „piacra kerülés” korai szakaszában. Komoly problémát jelenthet, ha a tanuló – főleg a fiatalabb korosztály – a súgót nem éri el a saját anyanyelvén.

A menüvezérelt súgó kívánja meg a legtöbb „humán beruházást”: hosszas keresést, rossz esetben nyelvi nehézségeket okoz (idegen nyelvű, félig lefordított, érthetetlenül fordított szövegek miatt); garantált a kudarcélmény. A speciális billentyűvel vezérelt menüs szoftverek sokszor rendelkeznek a helyzetérzékenységgel, azaz olajozzák a problémamegoldást.

Léteznek olyan rendszerek, amelyek természetes nyelvi változatok (menük, súgók) létrejöttének elébe mennek azzal, hogy publikálják az átírás módszerét. Jó példa erre a Notepad++ kódszerkesztő.

A kódírást segíti a leggyakrabban használt kódrészletek (code snippets) újrahasznosításának lehetősége:

Code snippets a VS-benCode snippets a VS-ben

Itt is a Visual Studio-t hozva fel példának, a kódrészleteket a ToolBox-ra húzhatjuk és később innen egy mozdulattal a kódba húzhatjuk ezeket, mintha vezérlőket használnánk. Nagyon hasznos szolgáltatás lehet, ha a fel nem ismert típusok vagy névterek esetében a fejlesztői környezet kérésre megkeresi és „használatba veszi” a névteret, illetve deklarálja a megfelelő típust, ahogy a Visual Studio teszi.

Névtér használatba vétele VS-ben.Névtér használatba vétele VS-ben

Szintén a kódolásban segít, ha könyvjelzőket tehetünk egy-egy kódsorhoz, vagy ha feladatlistákat hozhatunk létre, pl. a Visual Studio-ban vagy a Code::Blocks-ban speciális megjegyzésekkel (ToDo) megjelölhetjük azokat a helyeket, ahová vissza akarunk térni.

ToDo használata a VS-ben.ToDo használata a VS-ben

A Visual Studio vagy az Eclipse mindezeken túl a refaktorálásban is segítséget nyújt.

Komoly figyelmeztetés azonban mind az ELAN, mind az LCN Logo „erőszakos” programszerkesztője. Ez annál is inkább elgondolkodtató, mivel mindkettő dicséretes módszertani okból tette. Az ELAN-probléma: a felülről lefelé programtervezést a kódolás szintjére úgy viszi tovább, hogy a programozó mindig csak egyetlen finomítást láthat maga előtt. Ez a „csőlátás” nem mindig előnyös.

Az LCN Logo a tagolással kényszeríti a szerkezetek alárendeltségi viszonyainak kifejezését, akárcsak a Python, csakhogy a szerkesztő ezt hihetetlenül ügyetlenül teszi: ha a programozó véletlenül kilép a megfelelő szintről, javítási céllal hihetetlen körülményesen tud csak visszakecmeregni.

Egy pillanatfelvétel az LCN Logo IDE-ről.Egy pillanatfelvétel az LCN Logo IDE-ről

Dicséretes szolgáltatása pl. a Code::Blocks-nak a forráskód egy adott „stílusúvá” (bekezdés-struktúrájúvá) átszervezés.

Egyes fejlesztői környezetek, így a Visual Studio Ultimate is (egy kiegészítés telepítésével Architecture and Modeling Tools) képes bizonyos szinten az UML terv alapján automatikus kódgenerálást is végrehajtani. A programkészítés szerves része a dokumentáció készítése, bizonyos fejlesztői környezetek ebben is segítséget nyújtanak pl. a Delphi IDE vagy az Eclipse a javadoc segédprogram felhasználásával.

2.3.1.2. Futás, nyomkövetés – „dinamikus támogatás”

A fejlesztői környezetek nagy többsége a fordítást és a nyomkövetést (ha egyáltalán ez utóbbit szolgáltatja) külső programokra bízza. Biztos, hogy előnyösebb az a fejlesztői környezet, amelyben beállítható, hogy mely külső program végezze ezeket a funkciókat.

A Geany nem kínál nyomkövetési szolgáltatásokat, a Code::Blocks, a NetBeans GUI, a Turbo IDE igen, a Visual Studio még a különböző nyelveken készült projektek között váltva is képes erre.

A több-ablakos megjelenítésű nyomkövetési rendszerre mutat példát a következő ábra, mégpedig a konzolos világból. Erre természetesen a fejlettebb GUI-s társai is képesek. A futó program ilyen sokoldalú elemzésével lényegesen pontosabb képet nyerhetünk a programról, mint egy egyszerű futtatással. A nyomkövetésnek, különösen több-ablakosnak az oktatás kezdeti stádiumában éppúgy, mint később, komoly hasznát vehetjük, tehát didaktikai jelentőséggel bír. Kezdetben a program működésének kézzelfoghatóvá tételét biztosíthatja.

Turbo/FreePascal IDE egyszerre mutatja a „futó utasítást”, a változókat,
a hívás alatt álló eljárásokat, az output képernyőt.Turbo/FreePascal IDE -- egy program "sokoldalú" megközelítése

Fordítási kalibrálhatóságának is jelentősége lehet. A biztonságos vagy hatékony kód generálása közötti választást akár globálisan (a program egészére), akár lokálisan (egy-egy kóddarabra fókuszálva) fölkínálja-e. Ez egy fontos kérdés, hiszen a biztonságos kód maximálisan szükséges a fejlesztés közben, amíg a hatékonyság a végeredményül született kódnak jó tulajdonsága.

Alapvető elvárás, hogy hibafelderítő mechanizmusok (indextúllépés, típussértés) legyenek beépíthetők, illetve kikapcsolhatók.

A feltételes fordítás lehetősége a haladóbb programozás oktatásnál programozottan finomabb kontrollt biztosíthat egy olyan programozási nyelv+fejlesztői környezet esetében is, amely nem ad lehetőséget futás közben programállapot ellenőrzésére (előfeltételek, invariáns állítások teljesülése), hiba esetén kivétel dobására. Ilyenre mutat példát a [SzP4] dokumentum.

A böngészőben futó (szkript) nyelvek helyzeti előnyben vannak a többiekkel szemben azáltal, hogy mindig „kéznél” van a futtató környezet. Ha ezzel megelégszünk, gyakran le kell mondanunk a nyomkövetés hasznos funkciójáról. Bizonyos böngészők esetében beépülő, szkript kontrollt lehetővé tevő pluginek állnak rendelkezésünkre (Firefox – Web Developer’s Toolbox; Explorer – IE Developer Toolbar; Chrome, Safari – Developer Tools).

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A tananyag az ELTESCORM keretrendszerrel készült