Integreret udviklingsmiljø - Integrated development environment

Anjuta er en IDE til C og C ++ programmering i GNOME -skrivebordsmiljøet.

En integreret udviklingsmiljø ( IDE ) er et software-program , der giver omfattende faciliteter til edb-programmører til softwareudvikling . En IDE består normalt af mindst en kildekode -editor , build -automatiseringsværktøjer og en debugger . Nogle IDE'er, f.eks. NetBeans og Eclipse , indeholder den nødvendige kompilator , tolk eller begge dele; andre, såsom SharpDevelop og Lazarus , gør det ikke.

Grænsen mellem en IDE og andre dele af det bredere softwareudviklingsmiljø er ikke veldefineret; nogle gange er et versionskontrolsystem eller forskellige værktøjer til at forenkle konstruktionen af ​​en grafisk brugergrænseflade (GUI) integreret. Mange moderne IDE'er har også en klassebrowser , en objektbrowser og et klassehierarkidiagram til brug i objektorienteret softwareudvikling .

Oversigt

Vim med integreret autofuldførelse og fnug gennem et eksternt plugin

Integrerede udviklingsmiljøer er designet til at maksimere programmørens produktivitet ved at levere stramme komponenter med lignende brugergrænseflader . IDE'er præsenterer et enkelt program, hvor al udvikling foregår. Dette program indeholder typisk mange funktioner til redigering, ændring, kompilering, implementering og fejlfinding af software. Dette står i kontrast til softwareudvikling ved hjælp af ikke -relaterede værktøjer, såsom vi , GDB , GCC eller fabrikat .

Et mål med IDE er at reducere den konfiguration, der er nødvendig for at sammensætte flere udviklingsværktøjer, i stedet giver det det samme sæt funktioner som en sammenhængende enhed. Reduktion af opsætningstiden kan øge udviklernes produktivitet, især i tilfælde, hvor det er hurtigere at lære at bruge IDE end manuelt at integrere og lære alle de individuelle værktøjer. Strammere integration af alle udviklingsopgaver har potentiale til at forbedre den samlede produktivitet ud over at hjælpe med opsætningsopgaver. For eksempel kan kode fortolkes kontinuerligt, mens den redigeres, hvilket giver øjeblikkelig feedback, når syntaksfejl indføres, hvilket giver udviklere mulighed for at fejlsøge kode meget hurtigere og lettere med en IDE.

Nogle IDE'er er dedikeret til et bestemt programmeringssprog , som tillader en feature sæt, der bedst matcher de programmeringsparadigmer af sproget. Der er imidlertid mange flersprogede IDE'er.

Mens de fleste moderne IDE'er er grafiske, var tekstbaserede IDE'er som Turbo Pascal i populær brug før tilgængeligheden af ​​vinduessystemer som Microsoft Windows og X Window System (X11). De bruger normalt funktionstaster eller genvejstaster til at udføre ofte anvendte kommandoer eller makroer.

Historie

GNU Emacs , en udvidelig editor, der almindeligvis bruges som en IDE på Unix-lignende systemer

IDE'er blev oprindeligt mulige, når de udviklede sig via en konsol eller terminal . Tidlige systemer kunne ikke understøtte en, da programmer blev udarbejdet ved hjælp af flowcharts, indtastning af programmer med hulkort (eller papirbånd osv.), Før de blev sendt til en kompilator . Dartmouth BASIC var det første sprog, der blev oprettet med en IDE (og var også det første, der blev designet til brug, mens du sad foran en konsol eller terminal). Dens IDE (en del af Dartmouth Time Sharing System ) var kommandobaseret og lignede derfor ikke meget de menu-drevne, grafiske IDE'er, der var populære efter fremkomsten af ​​det grafiske brugergrænseflade . Det integrerede imidlertid redigering, filhåndtering, kompilering, fejlfinding og udførelse på en måde, der er i overensstemmelse med en moderne IDE.

Maestro I er et produkt fra Softlab München og var verdens første integrerede udviklingsmiljø for software. Maestro I blev installeret til 22.000 programmører verden over. Indtil 1989 eksisterede 6000 installationer i Forbundsrepublikken Tyskland . Maestro var uden tvivl verdens førende på dette område i løbet af 1970'erne og 1980'erne. I dag kan en af ​​de sidste Maestro I findes i Museum of Information Technology i Arlington i Texas.

En af de første IDE'er med et plug-in koncept var Softbench . I 1995 kommenterede Computerwoche , at udviklere ikke havde taget godt imod brugen af ​​en IDE, da det ville hæmme deres kreativitet.

Fra januar 2021 er de tre IDE'er, hvis downloadsider oftest søges efter, Visual Studio , Eclipse og Android Studio .

Emner

Fremhævelse af syntaks

IDE -editoren giver normalt syntaksfremhævelse , den kan vise både strukturer, sprogord og syntaksfejl med visuelt forskellige farver og skrifttypeeffekter.

Kodeudfyldelse

Kodeudfyldelse er en vigtig IDE -funktion, der skal fremskynde programmeringen. Moderne IDE'er har endda intelligent kodeudfyldelse .

Refaktorering

Avancerede IDE'er understøtter automatisk refaktorering .

Versionskontrol

En IDE forventes at levere integreret versionskontrol for at interagere med kildelagre.

Debugging

IDE'er bruges også til fejlfinding, ved hjælp af en integreret debugger , med understøttelse af indstilling af breakpoints i editoren, visuel gengivelse af trin osv.

Kodesøgning

IDE'er kan yde avanceret support til kodesøgning: for at finde klasse- og funktionserklæringer, anvendelser, variabel og feltlæs/skriv osv. IDE'er kan bruge forskellige slags brugergrænseflader til kodesøgning, f.eks. Formbaserede widgets og naturlige- sprogbaserede grænseflader.

Visuel programmering

Visuel programmering er et brugsscenario, hvor en IDE generelt er påkrævet. Visual Basic giver brugerne mulighed for at oprette nye applikationer ved at flytte programmering, byggesten eller kodeknudepunkter for at oprette flowdiagrammer eller strukturdiagrammer, der derefter udarbejdes eller fortolkes. Disse rutediagrammer er ofte baseret på Unified Modeling Language .

Denne grænseflade er blevet populær med Lego Mindstorms -systemet og gennemgås aktivt af en række virksomheder, der ønsker at udnytte kraften i brugerdefinerede browsere som dem, der findes hos Mozilla . KTechlab understøtter flowcode og er en populær open source IDE og simulator til udvikling af software til mikrokontrollere. Visuel programmering er også ansvarlig for kraften i distribueret programmering (jf. LabVIEW og EICASLAB software). Et tidligt visuelt programmeringssystem, Max , blev modelleret efter analogt synthesizer- design og er siden 1980'erne blevet brugt til at udvikle musikpræstationssoftware i realtid. Et andet tidligt eksempel var Prograph , et dataflowbaseret system, der oprindeligt blev udviklet til Macintosh . Det grafiske programmeringsmiljø "Grape" bruges til at programmere qfix -robotsæt .

Denne tilgang bruges også i specialsoftware som Openlab , hvor slutbrugerne ønsker fleksibiliteten i et fuldt programmeringssprog, uden den traditionelle indlæringskurve er forbundet med et.

Sprogstøtte

Nogle IDE'er understøtter flere sprog, f.eks. GNU Emacs baseret på C og Emacs Lisp og IntelliJ IDEA , Eclipse , MyEclipse eller NetBeans , alle baseret på Java eller MonoDevelop , baseret på C# eller PlayCode.

Support til alternative sprog leveres ofte af plugins , så de kan installeres på samme IDE på samme tid. For eksempel er Flycheck en moderne on-the-fly- syntaksudvidelse til GNU Emacs 24 med understøttelse af 39 sprog. Eclipse og Netbeans har plugins til C / C ++ , Ada , GNAT (f.eks. AdaGIDE ), Perl , Python , Ruby og PHP , som vælges mellem automatisk baseret på filtypenavn, miljø eller projektindstillinger.

Holdninger på tværs af forskellige computerplatforme

Unix- programmører kan kombinere POSIX- værktøjer på kommandolinjen til et komplet udviklingsmiljø, der er i stand til at udvikle store programmer som Linux-kernen og dens miljø. I denne forstand fungerer hele Unix -systemet som en IDE. Den gratis software GNU -værktøjer ( GNU Compiler Collection (GCC), GNU Debugger (GDB) og GNU make ) er tilgængelige på mange platforme, herunder Windows. Den gennemgående Unix-filosofi om "alt er en tekststrøm" gør det muligt for udviklere, der foretrækker kommandolinjeorienterede værktøjer, at bruge redaktører med understøttelse af mange af de standard Unix- og GNU-værktøjer, der bygger en IDE med programmer som Emacs eller Vim . Data Display Debugger er beregnet til at være en avanceret grafisk frontend for mange tekstbaserede standardfunktioner til fejlfinding . Nogle programmører foretrækker at administrere makefiler og deres derivater frem for lignende kodeopbygningsværktøjer, der er inkluderet i en fuld IDE. For eksempel bruger de fleste bidragydere til PostgreSQL -databasen make og GDB direkte til at udvikle nye funktioner. Selv når man bygger PostgreSQL til Microsoft Windows ved hjælp af Visual C ++ , bruges Perl -scripts som en erstatning for fabrikat frem for at stole på nogen IDE -funktioner. Nogle Linux IDE'er som Geany forsøger at levere en grafisk frontend til traditionelle byggeoperationer.

På de forskellige Microsoft Windows- platforme bruges kommandolinjeværktøjer til udvikling sjældent. Derfor er der mange kommercielle og ikke-kommercielle produkter. Men hver har et andet design, der normalt skaber uforeneligheder. De fleste større compiler-leverandører til Windows leverer stadig gratis kopier af deres kommandolinjeværktøjer, herunder Microsoft ( Visual C ++ , Platform SDK , .NET Framework SDK, nmake- værktøj).

IDE'er har altid været populære på Apple Macintoshs klassiske Mac OS og macOS , der går tilbage til Macintosh Programmerers Workshop , Turbo Pascal , THINK Pascal og THINK C- miljøer i midten af ​​1980'erne. I øjeblikket kan macOS-programmører vælge mellem native IDE'er som Xcode og open source-værktøjer som Eclipse og Netbeans . ActiveState Komodo er en proprietær flersproget IDE understøttet på macOS.

Kunstig intelligens

Nogle funktioner i IDE'er kan drage fordel af fremskridt inden for AI . Især kan man indsamle oplysninger fra IDE -handlinger på tværs af udviklere for at udvide IDE -funktioner. For eksempel resulterer en datadrevet tilgang til kodeudfyldelse i intelligent kodeudfyldelse .

Webintegreret udviklingsmiljø

Et webintegreret udviklingsmiljø (Web IDE), også kendt som en Online IDE eller Cloud IDE , er en browserbaseret IDE, der muliggør softwareudvikling eller webudvikling. Der kan tilgås en web -IDE fra en webbrowser, der muliggør et bærbart arbejdsmiljø. En web -IDE indeholder normalt ikke alle de samme funktioner som en traditionel eller desktop -IDE, selvom alle de grundlæggende IDE -funktioner, f.eks. Syntaksfremhævning, typisk er til stede.

Se også

Referencer