Odabir Java IDE-a

Ažurirano: prosinac 2018 .

Svakom programeru Java potreban je programski uređivač ili IDE koji može pomoći u grubljim dijelovima pisanja Jave i korištenju knjižnica klasa i okvira. Odluka o tome koji će vam uređivač ili IDE najbolje odgovarati ovisi o nekoliko stvari, uključujući prirodu projekata u razvoju, vašu ulogu u organizaciji, postupak koji koristi razvojni tim i vašu razinu i vještine programera. Dodatna razmatranja jesu li tim standardizirao alate i vaše osobne preferencije.

Tri IDE-a koja su najčešće odabrana za razvoj Java na poslužitelju su IntelliJ IDEA, Eclipse i NetBeans. To međutim nisu jedini izbor, a ovaj će pregled uključiti i neke lagane IDE-ove.

Za ovaj pregled napravio sam svježe instalacije IntelliJ IDEA Ultimate 2018.3, Eclipse IDE 2018‑09 za programere Java EE i Apache NetBeans (inkubiranje) IDE 9 na Macu. Također sam provjerio nekoliko Java projekata otvorenog koda kako bih mogao testirati sve IDE-ove na istim projektima.

O ovom ažuriranju

Ovaj IDE pregled prvi je put objavljen u rujnu 2016., a ažuriran je u prosincu 2018. U tim su se godinama jezik Java, API-ji, JVM ekosustav i neki okviri značajno razvili. Java EE 8 predstavio je ili ažurirao mnoge tehničke specifikacije Java, uključujući JSON-B (JavaScript Object Notation Binding), Java EE Security, Servlet 4.0 i JSF (JavaServer Faces) 2.3 za izgradnju korisničkih sučelja na strani poslužitelja. Java EE 8 ujedno je i posljednje izdanje Java-ove tvrtke iz Oraclea: Eclipse Foundation preuzeo je odgovornost za upravljanje tehnologijom, koju je preimenovao u Jakarta EE. U međuvremenu, JUnit je napredovao do verzije 5, prekidajući integracije; IDEA i Eclipse imaju izvornu podršku za JUnit 5, ali NetBeans od ovog trenutka nema.

Sve ove promjene trebale bi biti dio vaše procjene IDE-a, bilo za opću upotrebu ili za određeni projekt.

NetBeans 10 dodaje podršku za JUnit 5 i JDK 11

Objavljen u siječnju 2019., NetBeans 10 dodaje podršku za JDK 11 i JUnit 5.

Osnove: Što vam treba od Java IDE-a

Nadali biste se da vaš IDE podržava Javu 8 i / ili 11 (LTS verzije), Scala, Groovy, Kotlin i bilo koji drugi JVM jezik koji redovito koristite. Također biste željeli da podržava glavne aplikacijske poslužitelje i najpopularnije mrežne okvire, uključujući Spring MVC, JSF, Struts, GWT, Play, Grails i Vaadin. Vaš IDE trebao bi biti kompatibilan sa svim sustavima za izgradnju i kontrolu verzija koje koristi vaš razvojni tim; primjeri uključuju Apache Ant s Ivy, Maven i Gradle, zajedno s Git, SVN, CVS, Mercurial i Bazaar. Za dodatni kredit, vaš IDE trebao bi biti u mogućnosti rukovati slojevima klijenta i baze podataka vašeg stoga, podržavajući ugrađene JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate i Java Persistence API.

Napokon, nadali biste se da vam Java IDE omogućuje uređivanje, izgradnju, uklanjanje pogrešaka i testiranje vaših sustava s lakoćom i gracioznošću. Idealno bi bilo imati ne samo inteligentno dovršavanje koda, već i refaktoriranje i mjerne podatke koda. Ako ste u trgovini koja se bavi testiranim razvojem, želite podršku za svoje okvire za testiranje i stubing. Ako vaša grupa koristi sustav ulaznica i CI / CD, najbolje je ako se vaš IDE može povezati s njima. Ako trebate rasporediti i otkloniti pogreške na spremnicima i oblacima, vaš IDE trebao bi vam pomoći u tome.

Imajući na umu taj temelj, razmotrimo kandidate.

IntelliJ IDEA

IntelliJ IDEA, vodeći Java IDE i po značajkama i po cijeni, dolazi u dva izdanja: besplatnom izdanju Zajednice i plaćenom izdanju Ultimate, koje ima dodatne značajke.

Izdanje Community namijenjeno je razvoju JVM-a i Androida. Podržava Java, Kotlin, Groovy i Scala; Android; Maven, Gradle i SBT; i Git, SVN, Mercurial, CVS i TFS.

Ultimate izdanje, namijenjeno razvoju weba i poduzeća, podržava Perforce uz druge sustave za kontrolu verzija; podržava JavaScript i TypeScript; podržava Java EE, Spring, GWT, Vaadin, Play, Grails i druge okvire; i uključuje alate baze podataka i SQL podršku.

Ideja je da komercijalno (Ultimate) izdanje zasluži svoje mjesto na radnoj površini profesionalca, opravdavajući plaćenu pretplatu povećanom produktivnošću programera. Ako zarađujete 50 000 - 100 000 USD godišnje kao Java programer, neće vam trebati puno povećanja produktivnosti da biste dobili brzi povrat ulaganja u pretplatu na poslovnu IDEA od 500 USD godišnje. U sljedećim godinama cijena pada za tvrtke, mnogo je niža za startupe i pojedince, a besplatna je za studente, nastavnike, "Java prvake" i programere otvorenog koda.

IntelliJ predstavlja IDEA radi dubokog uvida u vaš kôd, ergonomije programera, ugrađenih alata za programere i iskustva s poliglot programiranjem. Idemo detaljno vidjeti i vidjeti što ove značajke znače i kako vam mogu pomoći.

Martin Heller

Dubok uvid u vaš kod

Sintaksno bojanje i jednostavno dovršavanje koda dati su za Java uređivače. IDEA nadilazi to i pruža "pametno dovršavanje", što znači da može otvoriti popis najrelevantnijih simbola primjenjivih u trenutnom kontekstu. Njih je rangirano prema vašoj osobnoj učestalosti upotrebe. "Završetak lanca" ide dublje i prikazuje popis primjenjivih simbola  dostupnih putem metoda ili gettera  u trenutnom kontekstu. IDEA također dopunjava statičke članove ili konstante, automatski dodajući sve potrebne izjave o uvozu. U svim dovršenjima koda, IDEA pokušava pogoditi vrstu simbola vremena izvođenja, precizirati svoje izbore prema tome i po potrebi dodati odljeve klasa.

Java kôd često sadrži druge jezike kao nizove. IDEA može ubrizgati fragmente SQL, XPath, HTML, CSS i / ili JavaScript koda u Java String literale. Što se toga tiče, može refaktorirati kôd na više jezika; na primjer, ako preimenujete klasu u JPA izrazu, IDEA će ažurirati odgovarajuću klasu entiteta i JPA izraze.

Kada refaktorirate komad koda, jedna od stvari koju obično želite učiniti je i refaktoriziranje svih duplikata tog koda. IDEA Ultimate može otkriti duplikate i slične fragmente te primijeniti refaktoriranje i na njih.

IntelliJ IDEA analizira vaš kôd kada se učita i kada upišete. Nudi inspekcije kako bi ukazao na moguće probleme i, ako želite, popis brzih rješenja za otkriveni problem.

Ergonomija programera

IntelliJ je dizajnirao IDEA imajući na umu razvojni tok programera - zvan  "biti u zoni". Prozor alata Project prikazan s lijeve strane na slici 1 nestaje iz pogleda jednostavnim klikom miša, tako da se možete koncentrirati na uređivač koda. Sve što želite raditi tijekom uređivanja ima prečicu na tipkovnici, uključujući prikazivanje definicija simbola u skočnom prozoru. Iako za učenje prečaca treba vremena i vježbanja, na kraju postaju druga priroda. Čak i ne znajući prečace, programer može naučiti koristiti IDEA lako i brzo.

Dizajn programa za uklanjanje pogrešaka IDEA posebno je lijep. Vrijednosti varijabli prikazuju se izravno u prozoru uređivača, pored odgovarajućeg izvornog koda. Kada se promijeni stanje varijable, mijenja se i njena istaknuta boja.

Ugrađeni alati za programere

IntelliJ IDEA nudi objedinjeno sučelje za većinu glavnih sustava za upravljanje verzijama, uključujući Git, SVN, Mercurial, CVS, Perforce i TFS. Možete upravljati svim promjenama izravno u IDE-u. Dok sam testirao IDEA-u, poželio sam da se posljednja promjena u bloku izvornog koda u prozoru uređivača prikaže kao napomena (kao što se to događa u Visual Studiju). Ispostavilo se da za to postoji dodatak.

IDEA također integrira alate za izgradnju, testne trkače i alate za pokrivanje, kao i ugrađeni prozor terminala. IntelliJ nema vlastiti profiler, ali putem dodataka podržava nekoliko nezavisnih profila. Tu spadaju YourKit, koji je stvorio bivši vodeći programer IntelliJ-a, i VisualVM, što je prepakirana verzija NetBeans profila.

Otklanjanje pogrešaka u Javi može biti bolno kad se u razredima za koje nemate izvorni kod događaju misteriozne stvari. IDEA dolazi s dekompilatorom za te slučajeve.

Programiranje Java poslužitelja često uključuje rad s bazama podataka, tako da IDEA Ultimate uključuje alate baza podataka SQL i NoSQL. Ako trebate više, namjenski SQL IDE (DataGrip) dostupan je kao dio pretplate na sve proizvode koja je samo malo skuplja od pretplate na IDEA Ultimate.

IntelliJ IDEA podržava sve glavne poslužitelje aplikacija JVM i može se rasporediti na poslužitelje i ispraviti pogreške, popravljajući glavnu bolnu točku za programere Enterprise Java. IDEA također podržava Docker kroz dodatak koji dodaje prozor alata Docker. (Kad smo već kod dodataka, IntelliJ ih ima puno.)

Programiranje poliglota

IDEA je proširila pomoć u kodiranju za Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS i druge okvire. Nisu sve ovo Java okviri. Uz Java, IDEA razumije i mnoge druge jezike, uključujući Groovy, Kotlin, Scala, JavaScript, TypeScript i SQL. Ako vam treba više, trenutno postoje stotine dodataka za jezik IntelliJ, uključujući dodatke za R, Elm, Go, Rust i D.

Eclipse IDE

Eclipse, dugo najpopularniji Java IDE, besplatan je i otvorenog koda i napisan je uglavnom na Javi, iako njegova arhitektura dodataka omogućuje proširenje Eclipsea na druge jezike. Eclipse je nastao 2001. godine kao IBM projekt za zamjenu IBM-ove obitelji IDE-ova zasnovanih na Smalltalku prijenosnim IDE-om utemeljenim na Javi. Cilj projekta bio je pomračiti Microsoft Visual Studio, pa otuda i ime.

Javina prenosivost pomaže Eclipseu da bude višeplatformanski: Eclipse radi na Linuxu, Mac OS X, Solarisu i Windowsu. Java Standard Widget Toolkit (SWT) barem je djelomično odgovoran za Eclipseov izgled i osjećaj, dobro i loše. Isto tako, Eclipse svoj učinak (ili, neki kažu, nedostatak) duguje JVM-u. Eclipse ima reputaciju laganog rada, što se vraća na stariji hardver i starije JVM-ove. Međutim, i danas se može osjećati sporo, posebno kada se u pozadini ažurira s instaliranim mnogim dodacima.

Dio općih troškova koji se događaju u Eclipseu je njegov ugrađeni inkrementalni kompajler koji se pokreće kad god učita datoteku i kad god ažurirate svoj kôd. Ovo je u stvari vrlo dobra stvar i pruža indikatore pogrešaka dok tipkate.

Neovisno o sustavu gradnje, projekt Eclipse Java također održava model svog sadržaja, koji uključuje informacije o hijerarhiji tipova, referencama i deklaracijama Java elemenata. Ovo je također dobra stvar i omogućuje nekoliko pomoćnika za uređivanje i navigaciju, kao i pregledni prikaz.

Trenutačna verzija Eclipsea je 2018‑09. Instalirao sam Eclipse IDE za programere Java EE, ali postoje mnogi drugi instalacijski paketi, uključujući opciju instaliranja minimalnog Eclipse SDK-a i dodavanja dodataka samo po potrebi. Posljednja opcija nije za one koji osjećaju slabost, međutim: nije teško uvesti sukobe između dodataka koji zapravo nisu  rekli  da su nekompatibilni.

Martin Heller

Podrška proširivih alata

Ekosustav dodataka jedna je od prednosti Eclipsea, ali i izvor povremenih frustracija. Tržište Eclipse trenutno sadrži preko 1.600 rješenja, a dodaci koje daje zajednica mogu ili ne moraju raditi kako su oglašeni. Ipak, dodaci Eclipse uključuju podršku za preko 100 programskih jezika i gotovo 200 okvira za razvoj aplikacija.

Podržana je i većina Java poslužitelja: ako definirate novu vezu poslužitelja iz Eclipsea, doći ćete do popisa mapa dobavljača, ispod kojeg ćete pronaći oko 30 aplikacijskih poslužitelja, uključujući devet verzija Apache Tomcat. Komercijalni dobavljači obično kombiniraju svoju ponudu: na primjer, postoji samo jedna stavka pod Red Hat JBoss Middleware, koja uključuje WildFly i EAP Server Tools, kao i JBoss AS.

Uređivanje, pregledavanje, refaktoriranje i ispravljanje pogrešaka

Prvo iskustvo programera s Eclipseom može biti zbunjujuće, čak i zbunjujuće. To je zato što je vaš prvi zadatak prilagoditi se Eclipseovoj konceptualnoj arhitekturi radnih prostora, perspektiva i pogleda, čije funkcije određuju dodaci koje ste instalirali. Na primjer, za razvoj Java poslužitelja vjerojatno ćete koristiti perspektive pregledavanja Java, Java EE i Java; prikaz istraživača paketa; perspektiva otklanjanja pogrešaka; timska sinkronizirajuća perspektiva; web alati; perspektiva razvoja baze podataka; i perspektiva za otklanjanje pogrešaka baze podataka. U praksi će svi oni početi imati smisla kad otvorite stavove koji su vam potrebni.

Često postoji više načina za izvršavanje zadanog zadatka u Eclipseu. Na primjer, možete pregledavati kod pomoću istraživača projekata i / ili perspektive pregledavanja Java; koju ćete odabrati stvar je ukusa i iskustva.

Java podrška za pretraživanje omogućuje vam pronalaženje deklaracija, referenci i pojava Java paketa, vrsta, metoda i polja. Brzi pristup možete koristiti i za pretraživanje, a pomoću brzih prikaza možete otvoriti stvari poput obrisa predavanja.