Integrerad utvecklingsmiljö - Integrated development environment

Anjuta är en IDE för C- och C ++ - programmering i GNOME -skrivbordsmiljön.

En integrerad utvecklingsmiljö ( IDE ) är en programvara som tillhandahåller omfattande faciliteter till datorprogrammerare för mjukvaruutveckling . En IDE består normalt av åtminstone en källkodredigerare , byggautomatiseringsverktyg och en felsökning . Vissa IDE: er, till exempel NetBeans och Eclipse , innehåller nödvändig kompilator , tolk eller båda; andra, som SharpDevelop och Lazarus , gör det inte.

Gränsen mellan en IDE och andra delar av den bredare mjukvaruutvecklingsmiljön är inte väldefinierad; ibland är ett versionskontrollsystem eller olika verktyg för att förenkla konstruktionen av ett grafiskt användargränssnitt (GUI) integrerat. Många moderna IDE har också en klasswebbläsare , en objektbläddrare och ett klasshierarkidiagram för användning i objektorienterad programutveckling .

Översikt

Vim med integrerad automatisk komplettering och luddning via en extern plugin

Integrerade utvecklingsmiljöer är utformade för att maximera programmerarens produktivitet genom att tillhandahålla sammanhängande komponenter med liknande användargränssnitt . IDE presenterar ett enda program där all utveckling sker. Detta program har vanligtvis många funktioner för att skapa, ändra, kompilera, distribuera och felsöka programvara. Detta står i kontrast till mjukvaruutveckling med hjälp av icke -relaterade verktyg, som vi , GDB , GCC eller fabrikat .

Ett syfte med IDE är att minska konfigurationen som krävs för att kombinera flera utvecklingsverktyg, istället ger den samma uppsättning funktioner som en sammanhängande enhet. Att minska installationstiden kan öka utvecklarens produktivitet, särskilt i de fall där man lär sig att använda IDE är snabbare än att manuellt integrera och lära sig alla enskilda verktyg. Stramare integration av alla utvecklingsuppgifter har potential att förbättra den totala produktiviteten utöver att bara hjälpa till med installationsuppgifter. Till exempel kan kod analyseras kontinuerligt medan den redigeras, vilket ger omedelbar feedback när syntaxfel introduceras, vilket gör att utvecklare kan felsöka kod mycket snabbare och lättare med en IDE.

Vissa IDE är tillägnade ett specifikt programmeringsspråk , vilket möjliggör en funktionsuppsättning som närmast matchar språkets programmeringsparadigm . Det finns dock många flerspråkiga IDE: er.

Medan de flesta moderna IDE: er är grafiska, var textbaserade IDE: er som Turbo Pascal i populär användning före tillgängligheten av fönstersystem som Microsoft Windows och X Window System (X11). De använder vanligtvis funktionstangenter eller snabbtangenter för att utföra ofta använda kommandon eller makron.

Historia

GNU Emacs , en utökningsbar editor som vanligtvis används som IDE på Unix-liknande system

IDE blev initialt möjliga när de utvecklades via en konsol eller terminal . Tidiga system kunde inte stödja ett, eftersom program utarbetades med hjälp av flödesscheman, inmatning av program med stansade kort (eller papperstejp, etc.) innan de skickades till en kompilator . Dartmouth BASIC var det första språket som skapades med en IDE (och var också det första som designades för användning medan du satt framför en konsol eller terminal). Dess IDE (del av Dartmouth Time Sharing System ) var kommandobaserat och såg därför inte mycket ut som de menydrivna, grafiska IDE: erna som var populära efter det grafiska användargränssnittet . Men det integrerade redigering, filhantering, kompilering, felsökning och körning på ett sätt som överensstämmer med en modern IDE.

Maestro I är en produkt från Softlab München och var världens första integrerade utvecklingsmiljö för programvara. Maestro I installerades för 22 000 programmerare över hela världen. Fram till 1989 fanns 6000 installationer i Förbundsrepubliken Tyskland . Maestro var utan tvekan världsledande på detta område under 1970- och 1980 -talen. Idag finns en av de sista Maestro I i Museum of Information Technology i Arlington i Texas.

En av de första IDE: erna med ett plug-in-koncept var Softbench . 1995 kommenterade Computerwoche att användningen av en IDE inte blev väl mottagen av utvecklare eftersom det skulle stärka deras kreativitet.

Från och med januari 2021 är de tre IDE: er vars nedladdningssidor oftast söks efter Visual Studio , Eclipse och Android Studio .

Ämnen

Syntaxmarkering

IDE -redaktören tillhandahåller vanligtvis syntaxmarkering , den kan visa både strukturer, språkord och syntaxfel med visuellt distinkta färger och teckensnittseffekter.

Kodfyllnad

Kodfyllnad är en viktig IDE -funktion, avsedd att påskynda programmeringen. Moderna IDE har till och med intelligent kodfyllnad .

Refactoring

Avancerade IDE ger stöd för automatiserad refactoring .

Versionskontroll

En IDE förväntas tillhandahålla integrerad versionskontroll för att interagera med källförvar.

Felsökning

IDE används också för felsökning, med hjälp av en integrerad felsökning , med stöd för att ställa in brytpunkter i redigeraren, visuell återgivning av steg, etc.

Kodsökning

IDE: er kan erbjuda avancerat stöd för kodsökning: för att hitta klass- och funktionsdeklarationer, användningsområden, variabel och fältläsning/skrivning etc. IDE: er kan använda olika typer av användargränssnitt för kodsökning, till exempel formulärbaserade widgets och naturliga språkbaserade gränssnitt.

Visuell programmering

Visuell programmering är ett användningsscenario där en IDE generellt krävs. Visual Basic tillåter användare att skapa nya applikationer genom att flytta programmering, byggstenar eller kodnoder för att skapa flödesscheman eller strukturdiagram som sedan sammanställs eller tolkas. Dessa flödesscheman är ofta baserade på Unified Modeling Language .

Detta gränssnitt har populariserats med Lego Mindstorms -systemet och granskas aktivt av ett antal företag som vill utnyttja kraften hos anpassade webbläsare som de som finns hos Mozilla . KTechlab stöder flödeskod och är en populär öppen källkod IDE och simulator för att utveckla programvara för mikrokontroller. Visuell programmering är också ansvarig för kraften i distribuerad programmering (se LabVIEW och EICASLAB -programvara). Ett tidigt visuellt programmeringssystem, Max , modellerades efter analog syntesdesign och har sedan 1980-talet använts för att utveckla musikprestanda i realtid. Ett annat tidigt exempel var Prograph , ett dataflödesbaserat system som ursprungligen utvecklades för Macintosh . Den grafiska programmeringsmiljön "Grape" används för att programmera qfix -robotpaket .

Detta tillvägagångssätt används också i specialistprogramvara som Openlab , där slutanvändarna vill ha flexibiliteten för ett fullständigt programmeringsspråk, utan att den traditionella inlärningskurvan är associerad med ett.

Språkstöd

Vissa IDE stöder flera språk, till exempel GNU Emacs baserade på C och Emacs Lisp och IntelliJ IDEA , Eclipse , MyEclipse eller NetBeans , alla baserade på Java eller MonoDevelop , baserat på C# eller PlayCode.

Stöd för alternativa språk tillhandahålls ofta av plugins , så att de kan installeras på samma IDE samtidigt. Till exempel Flycheck är ett modernt on-the-fly syntaxkontroll förlängning för GNU Emacs 24 med stöd för 39 språk. Eclipse och Netbeans har plugins för C / C ++ , Ada , GNAT (till exempel AdaGIDE ), Perl , Python , Ruby och PHP , som väljs mellan automatiskt baserat på filtillägg, miljö eller projektinställningar.

Attityder på olika datorplattformar

Unix- programmerare kan kombinera POSIX- verktyg på kommandoraden till en komplett utvecklingsmiljö som kan utveckla stora program som Linux-kärnan och dess miljö. I den meningen fungerar hela Unix -systemet som en IDE. Gratisprogramvaran GNU -verktyg ( GNU Compiler Collection (GCC), GNU Debugger (GDB) och GNU make ) finns på många plattformar, inklusive Windows. Den genomgripande Unix-filosofin med "allt är en textström" gör det möjligt för utvecklare som föredrar kommandoradsorienterade verktyg att använda redaktörer med stöd för många av Unix- och GNU-standardverktygen, och bygga en IDE med program som Emacs eller Vim . Data Display debugger är avsedd att vara en avancerad grafisk front-end för många textbaserad debugger standardverktyg. Vissa programmerare föredrar att hantera makefiler och deras derivat framför liknande kodbyggnadsverktyg som ingår i en fullständig IDE. Till exempel använder de flesta bidragsgivarna till PostgreSQL -databasen make och GDB direkt för att utveckla nya funktioner. Även när man bygger PostgreSQL för Microsoft Windows med Visual C ++ används Perl -skript som ersättning för fabrikat snarare än att förlita sig på IDE -funktioner. Vissa Linux IDE som Geany försöker tillhandahålla en grafisk frontend till traditionella byggoperationer.

På de olika Microsoft Windows- plattformarna används kommandoradsverktyg för utveckling sällan. Följaktligen finns det många kommersiella och icke-kommersiella produkter. Men alla har en annan design som vanligtvis skapar oförenligheter. De flesta större kompilatorleverantörer för Windows tillhandahåller fortfarande gratis kopior av sina kommandoradsverktyg, inklusive Microsoft ( Visual C ++ , Platform SDK , .NET Framework SDK, nmake- verktyg).

IDE har alltid varit populärt på Apple Macintoshs klassiska Mac OS och macOS , som går tillbaka till Macintosh Programmerers Workshop , Turbo Pascal , THINK Pascal och THINK C- miljöer i mitten av 1980-talet. För närvarande kan macOS-programmerare välja mellan inbyggda IDE som Xcode och verktyg med öppen källkod som Eclipse och Netbeans . ActiveState Komodo är en proprietär flerspråkig IDE som stöds på macOS.

Artificiell intelligens

Vissa funktioner hos IDE kan dra nytta av framsteg inom AI . I synnerhet kan man samla in information från IDE -åtgärder mellan utvecklare för att förstärka IDE -funktioner. Till exempel resulterar ett datadrivet tillvägagångssätt för kodfärdigställande i intelligent kodfyllnad .

Webintegrerad utvecklingsmiljö

En webbintegrerad utvecklingsmiljö (Web IDE), även känd som Online IDE eller Cloud IDE , är en webbläsarbaserad IDE som möjliggör mjukvaruutveckling eller webbutveckling. En webb -IDE kan nås från en webbläsare som möjliggör en bärbar arbetsmiljö. En webb -IDE innehåller vanligtvis inte alla samma funktioner som en traditionell eller stationär IDE, även om alla grundläggande IDE -funktioner, såsom syntaxmarkering, vanligtvis finns.

Se även

Referenser