Integrált fejlesztői környezet

A Wikipédiából, a szabad enciklopédiából
(Integrated Development Environment szócikkből átirányítva)
Az Anjuta egy IDE C és C++ programozáshoz a GNOME asztali környezetben.

Az integrált fejlesztői környezet (integrated development environment, IDE) egy olyan szoftveralkalmazás, amely átfogó létesítményeket biztosít a számítógépes programozók számára a szoftverfejlesztéshez. Az IDE általában legalább egy forráskódszerkesztőből, automatizálási eszközökből és hibakeresőből áll. Egyes IDE-k, mint például a NetBeans és az Eclipse, tartalmazzák a szükséges fordítót, értelmezőt vagy mindkettőt; mások, mint például a SharpDevelop és a Lazarus, nem. Az integrált fejlesztői környezetnek alapvető szerepe van a gyors alkalmazásfejlesztésben.

Az IDE és a szélesebb szoftverfejlesztési környezet más részei közötti határ nincs jól meghatározva; néha egy verzióvezérlő rendszer vagy különböző eszközök, amelyek leegyszerűsítik a grafikus felhasználói felület (GUI) felépítését, integrálva vannak. Sok modern IDE tartalmaz egy osztályböngészőt, egy objektumböngészőt és egy osztályhierarchia-diagramot az objektumorientált szoftverfejlesztéshez.

Áttekintés[szerkesztés]

Vim integrált automatikus kiegészítés és külső plugin

Az integrált fejlesztői környezeteket úgy tervezték, hogy maximalizálják a programozók munkatermelékenységét azáltal, hogy szorosan összefonódó alkatrészeket biztosítanak hasonló felhasználói felületekkel. Az IDE-k egyetlen olyan programot mutatnak be, amelyben minden fejlesztés befejeződik. Ez a program általában számos szolgáltatást nyújt a szoftverek szerkesztéséhez, módosításához, összeállításához, telepítéséhez és hibakereséséhez. Ez ellentétben áll a nem kapcsolódó eszközökkel , például vi, GCC vagy gyártatással történő szoftverfejlesztéssel.

Az IDE egyik célja, hogy csökkentse a több fejlesztői segédprogram összeállításához szükséges konfigurációt, ehelyett ugyanazokat a képességeket biztosítja, mint egy összetartó egység. A beállítási idő csökkentése növelheti a fejlesztők termelékenységét, különösen azokban az esetekben, amikor az IDE használatának elsajátítása gyorsabb, mint az összes egyedi eszköz manuális integrálása és elsajátítása. Az összes fejlesztési feladat szorosabb integrációja javíthatja az általános termelékenységet a beállítási feladatok elvégzésén túl. Például a kód folyamatosan elemezhető szerkesztés közben, azonnali visszajelzést nyújtva a szintaktikai hibák bevezetésekor, így lehetővé téve a fejlesztők számára, hogy sokkal gyorsabban és könnyebben debugolják a kódot egy IDE-vel.

Egyes IDE-k egy adott programozási nyelvnek vannak szentelve, amely lehetővé teszi a nyelv programozási paradigmáinak leginkább megfelelő jellemzőkészletét. Azonban sok többnyelvű IDE is létezik.

Míg a legtöbb modern IDE grafikus, addig a szöveg-alapú IDE mint a Turbo Pascal népszerű használatnak örvendett, az ablakos rendszerek előtt, úgy mint a Microsoft Windows és az X Window System (X11). Ezek gyakran használnak funkció- vagy gyorsbillentyűket a gyakran használt parancsok vagy makrók végrehajtásához.

Előzmények[szerkesztés]

GNU Emacs, egy bővíthető szerkesztő, amit gyakran használnak IDE-ként a unix-szerű rendszerek

Az IDE kezdetben akkor vált lehetségessé, amikor konzolon vagy terminálon keresztül fejlesztették ki. A korai rendszerek nem tudták támogatni az egyiket, mivel a programokat folyamatábrák segítségével készítették el, beléptek a programokba lyukkártyákkal (vagy papírszalaggal stb.), mielőtt beküldték volna őket egy fordítónak. A Dartmouth BASIC volt az első nyelv, amelyet IDE-vel hoztak létre (és az első volt, amelyet konzollal vagy terminállal való használatra terveztek). Az IDE (Dartmouth Time Sharing System része) parancs-alapú volt, és ezért nem úgy néz ki, mint a menü-vezérelt, népszerű grafikus IDE-k megjelenése után a grafikus felhasználói felület. A modern IDE-vel összhangban egyesítette a szerkesztést, fájlkezelést, összeállítást, hibakeresést és végrehajtást.

A Maestro I, a Softlab München terméke a világ első integrált szoftverfejlesztési környezete volt 1975-ben. A Maestro I-et 22 000 programozó számára telepítették világszerte. 1989-ig 6000 létesítmény létezett a Németországi Szövetségi Köztársaságban. A legnagyobb felhasználó, a Bank of America 24 csoportnál 576 munkahelyen alkalmazta. A Maestro I az 1970-es és 1980-as években vitathatatlanul világelső volt ezen a területen. Ma az egyik utolsó Maestro I az Information Technology Arlington múzeumban található meg.

Magyar származású szakemberek az 1980-as években vezető szerepet játszottak a továbbfejlesztésében és az oktatásában is (Gerhardt Géza, az 1970-es évek elején az MTA SZTAKI munkatársa, később a Softlab kommunikációs fejlesztési vezetője; Györy Márta az oktatásban).[forrás?]

Az egyik első IDE egy plug-in koncepció a Softbench. 1995-ben a Computerwoche megjegyezte, hogy az IDE használatát a fejlesztők nem fogadták jól, mivel az a kreativitásukat is elkerítené.

2019 decemberében a három leggyakrabban keresett, és letöltött IDE az Eclipse, Android Studio és Visual Studio.

Témakörök[szerkesztés]

Szintaxis kiemelése[szerkesztés]

Az IDE-szerkesztő általában szintaktikai kiemelést biztosít, és mind a struktúrákat, mind a nyelvi kulcsszavakat, mind a vizuálisan különböző színekkel és betűtípus-hatásokkal rendelkező szintaktikai hibákat képes megjeleníteni.

Kód kiegészítés[szerkesztés]

A kódkiegészítés fontos IDE funkció, amelynek célja a programozás felgyorsítása. Modern IDE-knek már van intelligens kód befejezése.

Refaktorálás[szerkesztés]

A speciális IDE-k támogatják az automatikus refaktorálást.

Verziókövetés[szerkesztés]

Az IDE várhatóan integrált verziókövetést biztosít a forrás repositori-kal való interakció érdekében.

Hibakeresés[szerkesztés]

Az IDEs-t hibakeresésre is használják, integrált hibakeresőt használva, támogatva a töréspontok beállítását a szerkesztőben, a lépések vizuális renderelését.

Kódkeresés[szerkesztés]

Az IDE speciális támogatást nyújthat a kódkereséshez: osztály- és funkció deklarációk, használatok, változók és mező olvasási/-írási stb. Az IDE különböző típusú felhasználói felületet használhat a kód kereséshez, például űrlap-alapú modulokat és természetes nyelvű interfészeket.

Vizuális programozás[szerkesztés]

A vizuális programozás olyan használati forgatókönyv, amelyben általában IDE-re van szükség. A Visual Basic lehetővé teszi a felhasználók számára, hogy új alkalmazásokat hozzanak létre programozás, építőelemek vagy kód csomópontok áthelyezésével, hogy folyamatábrákat vagy szerkezet diagramokkat hozzon létre, amelyeket aztán lefordítanak vagy értelmeznek. Ezek a folyamatábrák gyakran az egységes modellezési nyelven (UML) alapulnak.

Ezt a felület már népszerűsítette a Lego Mindstorms rendszer, és néhány cég aktívan vizsgálja annak érdekében, hogy hasznot húzhasson az egyedi böngészők erejéből, úgy mint a Mozilla. A KTechlab támogatja a flowcode-ot, egy népszerű opensource IDE és egy Szimulátor ami szoftver fejlesztésére alkalmas mikrovezérlőkhöz. A vizuális programozás felelős az elosztott programozás teljesítményéért is. Egy korai vizuális program rendszer a Max, egy analóg szintetizátor alapján lett megtervezve, és az '80-as évek óta használják valós idejű szoftveres zene előállítására. Egy másik példa a Prograph volt, egy adatfolyam alapú rendszer, eredetileg a Machintosra tervezve.

Ezt a megközelítést olyan speciális szoftverekben is alkalmazzák, mint az Openlab, ahol a végfelhasználók a teljes programozási nyelv rugalmasságát szeretnék anélkül, hogy a hagyományos tanulási görbével egybe tartozna.

Nyelvi támogatás[szerkesztés]

Egyes IDE-k több nyelvet is támogatnak, úgy mint ahogy a Emacs a C és Emacs Lisp-en alapul, valamint ahogy az IntelliJ IDEA , Eclipse, MyEclipse vagy NetBeans nyelvek, amelyek mind Java-ra, vagy MonoDevelop-ra alapszanak, amik C#, vagy PlayCode alapján vannak.

Az alternatív nyelvek támogatását gyakran bővítmények (plugin-ok) biztosítják, amik lehetővé téve számukra, hogy egyszerre ugyanazon IDE-ben legyenek telepítve. Például a Flycheck a GNU Emacs 24-nek 39 nyelvét támogatja, modern menet közben (on-the-fly) szintaxist ellenőrző bővítményével. Az Eclipse-nek és a NetBeans-nek vannak bővítményei C/C++, Ada, GNAT (például AdaGIDE), Perl, Python, Ruby, és PHP programozási nyelvekhez, amiket automatikusan kiválaszt a fájlkiterjesztés, a környezet vagy a projekt beállításai alapján.

Hozzáállás a különböző számítástechnikai platformokon[szerkesztés]

Többnyire grafikus felhasználói felületen futó és ilyen felületekre fejlesztő programokat értenek integrált fejlesztői környezet alatt, de sokak szerint a Unix-szerű operációs rendszerek alapértelmezett felhasználói felülete, a Unix-héj, vagy az elterjedt GNU Emacs szövegszerkesztő integrált fejlesztői környezetnek tekinthető a parancssoros felhasználói felületen.

A Unix programozók kombinálni tudják a parancssori (CLI), és POSIX eszközöket egy teljes fejlesztői környezetben, amely képes olyan nagy programok fejlesztésére, mint a Linux kernel és annak környezete. Ebben az értelemben az egész Unix rendszer IDE-ként működik. A szabad szoftveres GNU eszközök (GNU Compiler Collection (GCC), GNU Debugger (GDB) és GNU make) számos platformon elérhetők, beleértve a Windowst is. A "minden egy szövegfolyam" elterjedt Unix filozófiája lehetővé teszi a parancssor-orientált eszközöket előnyben részesítő fejlesztők számára, hogy olyan szerkesztőket használjanak, amik támogatást nyújtanak sok szabványos Unix és GNU építő eszközökhöz, és IDE-t építsenek olyan programokkal, mint az Emacs vagy a Vim. Az Adat megjelenítési hibakeresőt arra szánták, hogy egy fejlett grafikus külső (front end) legyen sok szövegalapú hibakereső szabványos eszközhöz. Egyes programozók jobban szeretik a makefiles-okat és azok származékait kezelni a hasonló kód építő eszközökkel, amik a teljes IDE-ben vannak. Például a PostgreSQL adatbázis legtöbb közreműködője közvetlenül a make-t és a GDB-t használja az új fejlesztésekhez. Még akkor is, ha a PostgreSQL-t épít Microsoft Windows-t használva Visual C++, és Perl szkripteket használ a make helyett, mintsem bármelyik IDE fejlesztéseire támaszkodna. Egyes Linux IDE-k, úgy mint a Geany, megpróbálnak grafikus külsőt (front end) biztosítani a hagyományos build műveletekhez.

A különböző Microsoft Windows platformokon ritkán használnak parancssori eszközöket fejlesztésre. Ennek megfelelően számos kereskedelmi és nem kereskedelmi termék létezik. Azonban mindegyiknek eltérő a kivitelezése, ez általános inkompatibilitást okozva. A legfőbb fordítóprogram árusító Windows-os felületekre továbbra is ingyenes másolatot biztosít a parancssori eszközeikről, beleértve a Microsoft-ot (Visual C++, Platform SDK, .NET Framework SDK, nmake segédprogram).

Az IDE-k mindig is népszerűek voltak az Apple Macintosh-nál klasszikus Mac OS és macOS köreiben, ami időben vissza nyúlik, a macintosh programozó műhely, Turbo Pascal, THINK Pascal és a THINK C környezetben az 1980-as évek közepéig. Jelenleg macOS programozók választhatnak natív IDE-k közül, mint az Xcode és a nyílt forráskódú eszközök, mint az Eclipse és a Netbeans. Az ActiveState-nek Komodo dinamikus progranyelvének egy saját többnyelvű IDE-e, amit támogat a macOS.

Mesterséges intelligencia[szerkesztés]

Az IDE-k egyes funkciói hasznosak a mesterséges intelligenciában. Különösen az IDE-műveletekből gyűjthetünk információkat a fejlesztőktől az IDE funkciók bővítése érdekében. Például a kódkiegészítés adatalapú megközelítése az intelligens kódkiegészítésben hoz eredményt.

Egységes webfejlesztői környezet[szerkesztés]

A webes integrált fejlesztési környezet (Web IDE), más néven online IDE vagy Cloud IDE, egy böngésző alapú IDE, amely lehetővé teszi a szoftverfejlesztést vagy webfejlesztést. Az internetes IDE egy webböngészőből, például a Google Chrome-ból vagy a Mozilla Firefoxból érhető el, lehetővé téve a hordozható munkakörnyezetet. A webes IDE általában nem tartalmazza ugyanazokat a funkciókat, mint a hagyományos, vagy az asztali IDE, bár az összes alapvető IDE funkció tulajdonság, mint például a szintaxis kiemelése, általában jelen van.

Példák[szerkesztés]

Sok IDE egy vagy néhány rokon programozási nyelvet kezel, gyakran saját fordítóprogrammal, sőt programnyelvvel is rendelkezik.