Computerworld News Service: Alle gode programmører har et dybt og indgående kendskab til deres udviklingsmiljøer, hvad enten der er tale om komplette integrerede udviklingsmiljøer (integrated development environment - IDE) som de, der gennemgås herunder, eller om der blot er tale om editorer såsom emacs eller vi/vim.
Man skulle tro, en sådan fortrolighed gør, at der skal meget til, før udviklere skifter udviklingsmiljø, men flere spørgeundersøgelser viser, at mange udviklere faktisk flytter til et nyt IDE med få års mellemrum.
Denne migration kan nogle gange være resultatet af krav fra arbejdspladsen, eller årsagen kan være, at lysten simpelthen har meldt sig til en ny måde at arbejde på.
Denne artikel er den første i en længere serie, der kan være en hjælp i en sådan migrationsproces ved at undersøge forskellene mellem de førende Java-udviklingsmiljøer:
Eclipse, JetBrains IntelliJ IDEA, NetBeans og Oracle JDeveloper.
Alla er gode værktøjer
Udviklingsmiljøerne i denne anmeldelse afspejler den usædvanlige righoldighed og modenhed, som Java-værktøjer besidder. De har alle fremragende understøttelse af kodning og udvikling; de har også en stærk understøttelse af automatisk omstrukturering af kode, syntakskontrol og fejlfinding.
Disse udviklingsmiljøer er generelt hurtige og formår at håndtere store kodebaser uden væsentlige vanskeligheder. De fleste af dem gør det muligt at udrulle projekter til servere direkte fra udviklingsmiljøet samt foretage fejlfinding via fjernadgang fra udviklingssystemet.
Det har i løbet af de sidste fem år løbende ændret sig, hvilke egenskaber, der gør, at netop disse produkter udmærker sig.
Mens det tidligere var den lange række funktioner til Java-udvikling, der skilte disse værktøjer ud fra mængden, så er de afgørende forskelle i dag brugervenligheden, kvaliteten af dokumentation og hjælpesystemer samt viften af plugins.
Forskellige styrker og svagheder
Udviklingsmiljøer er i stigende grad ved at blive til baggrundstæpper for plugins fra eksterne leverandører. Særligt Eclipse Foundation har længe været fortaler for denne plugin-tilgang.
Det kommer tydeligt til udtryk i Eclipse IDE, der understøtter flest teknologier af interesse for Java-udviklere, som det ses i tabellen herunder.
Men dette fokus på tilføjelser har sin pris: Det koster i brugervenlighed, hvilket jeg forklarer senere under gennemgangen af Eclipse.
NetBeans og IntelliJ IDEA er bedre til at balancere antallet af plugins og brugervenligheden.
De har begge en god vifte af plugins men har holdt et skarpt fokus på brugeroplevelsen. Derfor scorer de højere i min bedømmelse.
JDeveloper er ligeledes let at bruge men har et forsvindende lille plugin-community.
Derudover er dette udviklingsmiljø tæt kædet sammen med Oracles software, hvilket gør det til et uattraktivt valg for organisationer, der er afhængig af software fra flere forskellige leverandører.
Var det ikke for denne begrænsning, som desværre er gennemgående tilstede i produktet, så ville JDeveloper sandsynligvis have et større økosystem af plugins og ville være en stærkere konkurrent til de andre udviklingsmiljøer i denne anmeldelse.
Understøttelse af andre sprog
En af fordelene ved tilgangen til udviklingsmiljøet som baggrundstæppe for en samling plugins er en bedre understøttelse af andre sprog.
Denne form for udviklingsmiljø understøtter typisk sprog, der almindeligvis bruges sammen med Java-applikationer såsom JSF, HTML, CSS, XML og så videre.
Nogle understøtter JVM-scripting-sprog såsom Groovy og JRuby, sprog der ligger uden for Java-domænet såsom C/C++ og PHP samt modellering såsom med UML.
Den følgende tabel viser de større sprog, der understøttes af standardversionerne af de her anmeldte udviklingsmiljøer, eller som er udviklet af og gjort tilgængelig af hovedleverandøren eller hovedprojektet.
Understøttelse af udviklingssprog i Java-udviklingsmiljøerne:
Den næste tabel viser, at alle de anmeldte udviklingsmiljøer leverer en fremragende understøttelse af Java SE og af udvikling til enterprise.
Deres understøttelse af Android og udvikling i Java ME til håndholdte enheder eller indlejrede systemer varierer bredt, når man udelukkende ser på produkterne, som de udgives af deres leverandør eller organisation fraregnet eventuelt tilgængelige plugins fra tredjeparter. (Inkluderer vi tredjepartsprodukter, forbedres understøttelsen af Java ME i Eclipse.)
Understøttelse af udviklingsplatforme i Java-udviklingsmiljøerne:
I de kommende dage vil jeg gennemgå produkterne med særligt fokus på brugervenlighed og understøttelse af programmeringssprog og udviklingsplatforme.
Det er min vurdering, at dette er de to hovedfaktorer, der er afgørende for brugernes produktivitet og tilfredshed. Næsten lige så vigtigt er viften af plugins. Bedømmelserne afspejler disse præmisser.
Jeg har inkluderet hver af disse faktorers vægtning, således at det let kan lade sig gøre at omvægte faktorerne og komme frem til sin egen bedømmelse, hvis man er uenig i min vurdering af disse faktorers indbyrdes vigtighed.
Følg med i de kommende dage på Computerworld, hvor de fire Java-værktøjer gennemgås i detaljer.
Oversat af Thomas Bøndergaard