JavaRush /Java Blog /Random-TL /Eclipse, NetBeans o IntelliJ IDEA? Pagpili ng isang IDE p...
Bender
Antas
Маунтин-Вью

Eclipse, NetBeans o IntelliJ IDEA? Pagpili ng isang IDE para sa pag-unlad ng Java

Nai-publish sa grupo
Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 1Ipinakita namin sa iyong pansin ang isang adaptasyon ng isang artikulo ni Martin Heller, programmer at editor ng mapagkukunan ng JavaWorld. Marahil ay narinig mo na ang tungkol sa tatlong nangungunang pinakasikat na IDE para sa pagpapaunlad ng Java. 90 porsiyento ng mga pang-industriyang programmer ay gumagamit ng alinman sa Eclipse, NetBeans o IntelliJ IDEA, at bawat isa sa mga IDE na ito ay may sariling mga pakinabang at disadvantages. Sa artikulong ito susubukan naming ilarawan ang mga ito upang maunawaan mo kung alin ang tama para sa iyo. Bagaman, siyempre, mas mahusay na subukan ang lahat ng tatlo sa trabaho at alamin kung ano ang pinakamahusay para sa iyo. Walang review ang maaaring palitan ito.

Ano ang kapaligiran sa pag-unlad?

Ang napakaikling sagot ay ang isang development environment ay isang program o maramihang mga program na ginagamit mo upang lumikha ng mga program. Kasama talaga sa prosesong ito ang pagsusulat ng code, pag-debug nito, paglulunsad nito, at pagsasama nito sa mga version control system. Kung ang mga naunang developer ay madalas na gumagamit ng isang simpleng text editor (minsan kahit walang syntax highlighting), gaya ng Notepad at ang command line, ngayon ay madalas silang gumagamit ng mga all-in-one na processor, integrated development environment o IDE.

Ano ang isang IDE?

Integrated development environment o sa English Integrated development environment - IDE - ay isang program na naglalaman ng mga tool para sa software development. Karaniwan, ang isang modernong kapaligiran sa pag-unlad ay kinabibilangan ng:
  • Text editor na may pag-highlight ng code;
  • compiler o interpreter;
  • Class Browser, Object Inspector, at Class Hierarchy Diagram;
  • mga tool sa automation ng pagpupulong;
  • debugger;
  • mga tool para sa pagsasama sa mga version control system (Git);
  • mga tool upang gawing simple ang disenyo ng isang graphical na user interface.
Nakatrabaho ko na ang mga IDE na ito dati, ngunit para sa pag-aaral na ito na-install ko ang IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE, at NetBeans 8.1 Java EE sa isang MacBook Pro na laptop. Sinubukan ko ang IDE sa ilang open source na proyekto ng Java.

Ano ang Aasahan mula sa isang IDE

Ang isang modernong IDE para sa isang "malusog na developer ng Java" ay dapat na sumusuporta sa Java 8, Scala, Groovy, pati na rin ang iba pang mga Java virtual machine na wika na regular niyang ginagamit. Ang suporta para sa mga pangunahing server ng application at ang pinakasikat na web framework, kabilang ang Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails at Vaadin, ay magiging kapaki-pakinabang din. Ang IDE ay dapat na tugma sa anumang bersyon ng control system na binuo, tulad ng Ant, Maven o Gradle, kasama ng Git, SVN, CVS, Mercurial o Bazaar. Bukod pa rito, para sa kapaligiran ng pag-unlad mahalaga na makapagtrabaho sa mga database at sa layer ng kliyente ng iyong stack, upang magkaroon ng suporta para sa built-in na JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate, pati na rin ang Java Persistence API. Sa wakas, makatuwirang umasa na ang IDE ay magbibigay-daan sa iyo na mag-edit, lumikha, mag-debug at subukan ang mga system nang walang hindi kinakailangang stress. Sa isip, sinusuportahan ng development environment hindi lamang ang intelligent code completion, kundi pati na rin ang intelligent refactoring at code metrics. Sa maraming kaso, magiging kapaki-pakinabang ang pagsuporta sa mga framework at stub ng pagsubok. Kung gumagamit ang iyong team ng ticket system at CI/CD, kailangan mo ang IDE para makakonekta sa kanila. At magpasya kung kailangan mo ng deployment at pag-debug sa mga container at cloud. Inilista lang namin ang mga pangunahing inaasahan (marahil ay mayroon kang idaragdag), at ngayon tingnan natin ang aming mga kakumpitensya.

IntelliJ IDEA

Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 2Sa mga tuntunin ng mga tampok at presyo, ang IntelliJ IDEA ay may dalawang bersyon: ang libreng edisyon ng Komunidad, at ang bayad na Ultimate na edisyon na may pinalawig na pagpapagana. Ang edisyon ng komunidad ay idinisenyo para sa pagbuo ng JVM at Android. Ang libreng bersyon ay sumusuporta sa Java, Kotlin, Groovy at Scala; Android; Maven, Gradle at SBT; gumagana sa mga version control system na Git, SVN, Mercurial at CVS. Ang pinakahuling edisyon ay angkop para sa web at enterprise development. Ang bersyon na ito ng IDE ay gumagana hindi lamang sa Git, SVN, Mercurial at CVS, kundi pati na rin sa Perforce, ClearCase at TFS; dito maaari kang sumulat sa JavaScript at TypeScript; Naturally, mayroong suporta para sa Java EE, Spring, GWT, Vaadin, Play, Grails at ilang iba pang mga frameworks. At, siyempre, hindi namin magagawa nang walang SQL at mga tool para sa pagtatrabaho sa mga database. Ang ideya na gumagabay sa mga developer ng IDE na ito kapag bumubuo ng isang patakaran sa pagpepresyo ay ang komersyal na bersyon nito (Ultimate) ay papalitan nito sa mga computer ng mga propesyonal, dahil sa kung saan tataas ang kanilang produktibidad. Kung ang isang Java programmer ay kumikita ng $50,000 taun-taon (o higit pa), ang return on investment na ginastos sa bayad na IDE IntelliJ IDEA ($500 para sa taunang subscription) ay mangyayari nang napakabilis dahil sa kahit na bahagyang pagbilis ng kanyang trabaho. Sa mga susunod na taon, ang presyo para sa mga negosyo ay bumababa, para sa mga startup at freelancer ito ay makabuluhang mas mababa, at para sa mga mag-aaral, guro, Java champion at open source developer ito ay ganap na libre. Ang IntelliJ IDEA ay humahanga sa malalim nitong pag-unawa sa code, matalinong ergonomya, built-in na feature sa pag-develop, at suporta sa maraming wika. Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 3
Figure 1. Ipinapakita ng IntelliJ IDEA ang bilang ng mga babala at hula batay sa istatistikal na pagsusuri ng Java code. Maaari mong pag-aralan ang mga pagpapalagay nang mas detalyado sa pamamagitan ng pag-click sa mga ito, tulad ng ipinapakita sa larawan; sa maraming pagkakataon makakatanggap ka ng isang listahan na may mga pagpipilian at mga opsyon sa pagwawasto.

Malalim na pag-unawa sa code

Ang pag-highlight ng syntax at simpleng pagkumpleto ng code ay karaniwan para sa anumang modernong mga editor ng Java. Ang IDEA ay higit pa sa pamamagitan ng pag-aalok ng "smart autocompletion." Ang terminong ito ay nangangahulugan na ang development environment ay nagpapakita ng isang listahan ng mga pinakanauugnay na simbolo na naaangkop sa isang partikular na konteksto. Ang listahan ng mga simbolo ay nakasalalay hindi lamang sa konteksto tulad nito, ang "pangkalahatang tinatanggap", ngunit sa istilo ng programming ng developer, kung gaano kadalas niya ginagamit ang ilang mga operator. Ang "Chain Completion" ay nagpapakita pa ng isang listahan ng mga naaangkop na simbolo na pinapayagan sa pamamagitan ng mga pamamaraan o getter sa kasalukuyang konteksto. Bukod pa rito, para sa mga static na miyembro o constant, awtomatikong idinaragdag ng IDEA ang anumang kinakailangang pahayag sa pag-import. Sa lahat ng kaso ng autocompletion, sinusubukan ng IDEA na hulaan ang uri ng simbolo sa runtime, pinuhin ang pagpili nito, at maglapat pa ng uri ng cast kung kinakailangan. Ang Java code ay kadalasang may kasamang mga snippet mula sa ibang mga wika bilang mga string. Maaaring mag-inject ng SQL, XPath, HTML, CSS, o JavaScript code ang IDEA sa mga literal na string ng Java. Sa ganitong kahulugan, maaaring refactor ng IDE ang code sa maraming wika. Halimbawa, kung papalitan mo ng pangalan ang isang klase sa isang JPA mapping, ia-update ng IDEA ang kaukulang JPA entity at expression class. Kapag nire-refactor ang isang piraso ng code, ang developer ay may isang (medyo natural) na pagnanais: na ang lahat ng mga duplicate ng code na ito ay ma-refactor din. Nakahanap ang IDEA Ultimate ng mga duplicate at katulad na mga fragment at inilalapat din ang refactoring sa mga ito. Pina-parse ng IntelliJ IDEA ang code sa pag-load at direkta habang ipinasok mo ito. Itinuturo nito ang mga pinaghihinalaang problema (tulad ng sa aming larawan sa itaas) at opsyonal na nag-aalok ng listahan ng malamang na mabilis na pag-aayos sa mga problemang natagpuan.

Ergonomya

Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 4Ang IntelliJ IDEA ay idinisenyo upang hindi matumba ang isang developer sa isang tuluy-tuloy na pagiging produktibo kapag siya ay nasa loob na nito. Ang window ng Project, na ipinapakita sa unang larawan sa kaliwa, ay nawawala sa isang simpleng pag-click ng mouse upang ang programmer ay makapag-focus sa window ng editor ng code. Para sa lahat ng pagkilos na kailangan habang nagsusulat ng code, may mga pangunahing kumbinasyon para sa mabilis na pagtawag sa kanila, kabilang ang pagtukoy ng mga simbolo sa mga pop-up window. Sa una, ang lahat ng mga kumbinasyong ito ay mahirap tandaan, ngunit unti-unti kang nasasanay sa mga ito at ginagamit lamang ang mga ito. Gayunpaman, kahit na ang programmer ay hindi gumagamit ng mga keyboard shortcut, tulad ng ipinapakita sa pagsasanay, nasanay siyang magtrabaho sa IDEA nang madali at mabilis. Gusto kong pansinin lalo na ang debugger ng IDEA: ang mga variable na halaga ay direktang ipinapakita sa window ng editor, sa tabi ng kaukulang source code. Kapag nagbago ang estado ng isang variable, nagbabago rin ang kulay ng highlight.

Mga built-in na tool

Nagbibigay ang IntelliJ IDEA ng isang interface upang makipag-ugnayan sa karamihan ng mga system ng kontrol ng bersyon, kabilang ang Git, SVN, Mercurial, CVS, Perforce, at TFS. Maaari mong pamahalaan ang mga pagbabago nang direkta sa IDE, na kung saan ay napaka-maginhawa. Noong sinusubukan ko ang IDEA, nagkaroon ako ng pagnanais na ipakita ang pinakabagong pagbabago sa source code sa window ng editor bilang isang anotasyon (tulad ng nangyayari, halimbawa, sa Visual Studio). Sa lumalabas, may espesyal na plugin ang IDEA para dito. Ang IDEA ay mayroon ding mga tool sa pagbuo, isang test runtime, mga tool sa saklaw, at isang built-in na terminal window. Ang IntelliJ ay walang sariling profiler, ngunit ang mga third-party ay maaaring konektado dito gamit ang mga plugin. Halimbawa, ang YourKit, na ginawa ng isang dating lead developer ng JetBrains, o VisualVM (na isang repackaged na bersyon ng NetBeans profiler). Ang pag-debug sa Java ay maaaring maging isang sakit kapag ang lahat ng uri ng mga mahiwagang bagay ay nangyayari sa mga klase na wala kang pinagmulan. Kasama sa IDEA ang isang decompiler para sa mga ganitong kaso. Ang server-side programming sa Java ay nangangailangan ng madalas na pakikipag-ugnayan sa mga database, kaya ang IDEA Ultimate programmer ay pahalagahan ang kaginhawahan ng mga tool para sa pagtatrabaho sa SQL at mga database. Ngunit kung ang kanilang mga kakayahan ay hindi sapat para sa isang tao, maaari kang bumili ng bersyon ng IDEA Ultimate na may built-in na SQL IDE (DataGrip). Gayunpaman, ito ay bahagyang mas mahal kaysa sa regular na subscription ng IDEA Ultimate. Sinusuportahan ng IntelliJ IDEA ang lahat ng pangunahing server ng aplikasyon ng JVM, at pinapayagan kang mag-deploy at mag-debug sa mga server na ito, na nag-aalis ng mga paghihirap na pamilyar sa lahat ng Java Enterprise programmer. Sinusuportahan din ng IDEA ang Docker (sa pamamagitan ng isang plugin na nagdaragdag ng isang espesyal na Docker tool window sa development environment. Siya nga pala, ang IDEA ay may isang toneladang plugin.  

Isang tunay na polyglot

Pinalawak ng IDEA ang suporta sa code para sa Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS at iba pang mga frameworks. Marahil ay napansin mo na hindi lahat ng mga ito ay tiyak sa Java. "Naiintindihan" ng IDEA ang iba pang mga wika nang direkta mula sa kahon - Groovy, Kotlin, Scala, JavaScript, TypeScript at SQL. Kung hindi mo makita ang wikang hinahanap mo sa listahang ito, kasalukuyang mayroong 19 IntelliJ language plugin, partikular na sumusuporta sa R, Elm, at D.

Eclipse IDE

Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 5 Mga 10 taon na ang nakalilipas, nang tanungin ang tungkol sa pinakamahusay na IDE, isang developer ng Java ang sumagot ng kumpiyansa: Eclipse. Sa loob ng maraming taon, ang development environment na ito ay may kumpiyansa na hawak ang palad sa mga Java IDE. Ang kapaligiran na ito ay ganap na libre, open source, pangunahin na isinulat sa Java. Gayunpaman, ang modular na arkitektura nito ay nagpapahintulot sa Eclipse na magamit sa ibang mga wika. Ang proyekto ng Eclipse, na pinasimulan ng IBM, ay lumitaw noong 2001. Nais nilang palitan ang pamilya ng IBM Visual Age ng mga development environment batay sa Smalltalk. Buweno, ang pangunahing layunin, gaya ng ipinahihiwatig ng pangalan, ay upang madaig ang Microsoft Visual Studio (ang ibig sabihin ng eclipse sa Ingles ay eclipse). Ang portability ng Java ay tumutulong sa Eclipse na maging isang cross-platform na kapaligiran: tumatakbo ang IDE na ito sa Linux, Mac OS X, Solaris, at Windows. Para sa mas mabuti o mas masahol pa, ang Java Standard Widget Toolkit (SWT) ay hindi bababa sa bahagyang responsable para sa hitsura at pakiramdam ng Eclipse. Utang ng Eclipse ang pagganap nito (o, gaya ng sinasabi ng ilang may mabuting hangarin, kawalan nito) sa JVM. Mabagal na gumagana ang Eclipse, dahil nakaugat ito sa medyo lumang hardware at sinaunang bersyon ng JVM. Kahit ngayon ay tila mabagal, lalo na kung nakakabit ka ng maraming plugin dito. Ang ilan sa resource overhead ng Eclipse ay maaaring maiugnay sa built-in na incremental compiler nito, na tumatakbo sa tuwing naglo-load ang isang file o na-update ang code. Ito ay isang kapaki-pakinabang na bagay; nakakakuha ito ng mga error kapag naglalagay ng teksto. Anuman ang build, ang Eclipse project ay nagpapanatili ng isang modelo ng nilalaman na naglalaman ng impormasyon tungkol sa hierarchy ng mga uri, sanggunian, at deklarasyon ng mga elemento ng Java. Ang kasalukuyang bersyon ng Eclipse ay tinatawag na Neon (4.6.0). Nag-install ako ng Eclipse Java EE IDE para sa mga web developer (hindi lang ito ang opsyon, maaari kang pumili ng iba pa). Naglalaman ito ng kaunting Eclipse SDK at nagdaragdag ng mga plugin kapag hinihiling. Sa pamamagitan ng paraan, ang pagtatrabaho sa mga plugin sa IDE na ito ay hindi para sa mahina ng puso. Ang mga third-party na plugin ay madalas na sumasalungat sa isa't isa, kahit na ang kanilang mga opisyal na detalye ay walang sinasabi tungkol dito. Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 6
Figure 2. Mula kaliwa hanggang kanan, mayroong apat na Eclipse toolbar: Package Explorer, Java Editor, Java Class Structure, at Task List. Ang proyektong na-load sa Eclipse sa larawang ito ay ang JUnit test framework. Ang mga panel ay madaling mapalitan.

Suporta sa plugin

Ang plugin ecosystem ng Eclipse ay parehong lakas ng IDE at isa sa mga pangunahing problema nito. Ito ay dahil sa hindi pagkakatugma ng mga plugin na kung minsan ay nag-crash ang buong assemblies, at ang mga programmer ay kailangang magsimulang magtrabaho muli. Kasalukuyang mayroong higit sa 1,700 mga plugin na isinulat para sa Eclipse, opisyal at hindi opisyal, na maaaring gumana nang mahusay o hindi. Ang mga plugin ng Eclipse ay sumusuporta sa higit sa 100 mga programming language at halos 200 na mga framework sa pagbuo ng application. Karamihan sa mga server ng Java ay sinusuportahan din: kung magtatalaga ka ng isang bagong koneksyon sa server mula sa Eclipse, dadalhin ka sa isang listahan ng mga folder ng vendor kung saan makakahanap ka ng humigit-kumulang 30 mga server ng application. Magkakaroon ng hanggang siyam na mga variant ng Apache Tomcat lamang. Karaniwang pinagsama ng mga komersyal na vendor ang kanilang mga solusyon: halimbawa, mayroon lamang isang item na Red Hat JBoss Middleware, at sa loob ay makikita mo ang mga tool ng WildFly at EAP server, pati na rin ang JBoss AS.

Pag-edit, refactoring at pag-debug

Ang iyong unang karanasan sa Eclipse ay maaaring nakakalito at nakakalito pa nga. Ang unang hakbang ay i-set up ang Eclipse at masanay sa konseptong arkitektura nito ng mga workspace, view, at view. Ang lahat ng ito ay tinutukoy ng mga plugin na iyong na-install. Para sa server-side na pag-develop ng Java, malamang na gagamitin mo ang Java, Java EE, at Java na mga view sa pagba-browse, Package Explorer view, debugging view, web tools command synchronization view, database development view, at database debugging view . Sa pagsasagawa, lahat ay may katuturan kapag binuksan mo ang mga bintana na kailangan mo. Ang Eclipse ay halos palaging nag-aalok ng ilang mga paraan upang malutas ang isang partikular na problema. Halimbawa, maaari mong tingnan ang code gamit ang pananaw sa pagba-browse ng Java. Ang pipiliin ay isang bagay ng panlasa at pagpili. Ang isang espesyal na paghahanap sa Java ay nagbibigay-daan sa iyo na makahanap ng mga deklarasyon, mga sanggunian at mga pangyayari ng mga Java package, mga uri, pamamaraan, mga patlang. Maaari ka ring gumamit ng mabilis na pag-access sa paghahanap at pag-preview. Maaaring mabuo ang mga karaniwang pattern ng code mula sa mga template ng code. Sinusuportahan ng Java Refactoring sa Eclipse ang 23 na operasyon, mula sa karaniwang pagpapalit ng pangalan hanggang sa hindi gaanong halata na mga pagbabagong-anyo (tulad ng sa aklat ni Martin Fowler). Sinusuportahan ng Eclipse ang parehong lokal at malayuang pag-debug, kung gumagamit ka ng JVM na sumusuporta sa malayuang pag-debug. Ang pag-debug ay medyo karaniwan: tutukuyin mo ang mga breakpoint at pagkatapos ay titingnan ang mga variable sa tab na debug. Siyempre, maaari mong hakbangin ang iyong code at suriin ang mga expression. Ang Eclipse ay may malawak na database ng dokumentasyon ng iba't ibang edad, halaga, at pagiging kapaki-pakinabang. Sa kasamaang palad, ang paghahanap ng larawan sa mga tagubilin na hindi tumutugma sa kasalukuyang bersyon, halimbawa, na may hindi napapanahong interface at layout ng pindutan, ay isang pangkaraniwang pangyayari para sa IDE na ito. Sa kasamaang palad, ang problema ng mga huling pag-update ng dokumentasyon ay napaka-pangkaraniwan para sa anumang mga proyekto ng source code.

NetBeans

Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 7Nagsimula ang NetBeans bilang isang proyekto ng mag-aaral sa unibersidad sa Prague noong 1996. Noong 1997, ang IDE ay naging isang komersyal na produkto, at noong 1999 ito ay binili ng Sun Microsystems (ang mga magulang ng Java) at ang sumunod na taon ay nagpakita ng isang open source release. Ang kasalukuyang bersyon 8.1 ay tumatakbo sa mga makinang nagpapatakbo ng Windows, Mac OS X, Linux at Solaris. Well, ang portable package ay maaaring patakbuhin sa anumang sistema kung saan mayroong Java machine. Nag-download ako ng Java EE bundle para sa aking sarili, isa ito sa anim na posibleng download packages. Sinusuportahan ng bundle na ito ang JavaScript at HTML, GlassFish at Tomcat, ngunit hindi sinusuportahan ang PHP, C/C++/Fortran, Groovy at Grails: maaari silang makuha sa package na "All Inclusive" (o "Lahat" lang). Gayunpaman, kung nais ko, maaari akong mag-download ng suporta para sa mga wika sa itaas anumang oras sa pamamagitan ng pagpili ng naaangkop na plugin (o anumang iba pa). Mas kaunti ang mga ito sa NetBeans kaysa sa Eclipse, ngunit kadalasan ay hindi sila nagkakasalungatan sa isa't isa. Sa taglagas na ito, nagpasya ang Oracle (na nakakuha ng NetBeans pagkatapos makuha ang Sun Microsystems) na ilipat ang development environment na ito sa ilalim ng pakpak ng Apache Software Foundation, kasama ang lahat ng karapatan, source code, trademark, domain na "netbeans.org" at ilang iba pang imprastraktura mga elemento. Samakatuwid, ang hinaharap ng proyekto ay malabo pa rin, bagama't ang sistema dati ay may ilang partikular na kaugnay na mga pribilehiyo. Kaya, ang NetBeans ang unang nakatanggap ng suporta para sa Java 8 halos kaagad pagkatapos ng paglabas ng na-update na platform, at tinawag na "opisyal na IDE para sa Java 8." Gayunpaman, isang buwan pagkatapos ng paglabas nito, ang kalamangan na ito ay nawala: noon ang iba pang mga IDE ay nakatanggap din ng suporta para sa Java 8. Gayunpaman, nais kong ituro na ang suporta ng Java 8 ng NetBeans ay talagang mahusay, at ang IDE ay mahusay para sa paghabi ng mga trick ng Java 8 sa "lumang" code. Ang mga editor, code analyzer at converter nito ay tutulong sa programmer na i-upgrade ang code gamit ang mga construct na tipikal ng Java 8 - lambda expressions, functional operators at method references. Ang mga plugin ng JavaScript sa NetBeans 8 ay gumaganap ng isang mahusay na trabaho ng pagsuporta sa Node.js at ang pinakabagong mga tool sa JavaScript tulad ng Gulp at Mocha, pati na rin ang pagsuporta sa Nashorn JavaScript interpreter. Eclipse, NetBeans o IntelliJ IDEA?  Pagpili ng IDE para sa pagpapaunlad ng Java - 8
Figure 3. Dito pinapatakbo ng NetBeans ang parehong Maven-based na proyekto na binuksan ng IntelliJ IDEA sa Figure 1. Pansinin ang advanced na functionality sa context menu at ang refactoring submenu

Pag-edit at refactoring

Sinusuportahan ng NetBeans Editor ang mga wika, nakakakita ng mga error habang nagta-type ka, at tinutulungan ka sa mga tooltip at pagkumpleto ng matalinong code. Ayon sa subjective na pakiramdam, ang IDE ay nakayanan ang gawaing ito nang mas mabilis kaysa sa Eclipse, ngunit medyo mas mabagal kaysa sa IntelliJ IDEA. Bilang karagdagan, ang NetBeans ay may buong hanay ng mga tool sa refactoring (tulad ng ipinapakita sa Figure 3) na nagpapahintulot sa programmer na muling ayusin ang code nang hindi sinisira ito, magsagawa ng source analysis, at nag-aalok din ng malawak na hanay ng mga pahiwatig para sa mabilis na pag-aayos o mga extension ng code. Kasama sa NetBeans ang tool sa disenyo ng Swing GUI, na dating kilala bilang "Project Matisse". Lubos na pinahahalagahan ng mga developer ang automated refactoring tool na Inspect & Transform, na ipinakilala sa NetBeans 7.1. Pinapayagan ka nitong pag-aralan ang code ng proyekto at gumawa ng mga iminungkahing pagpapabuti. Bagama't sa personal, mas gusto kong subukan muna ang lahat ng sarili kong code gamit ang mga unit test, at pagkatapos lamang magpatakbo ng mga tool na maaaring gumawa ng mga radikal na pagbabago. Paulit-ulit akong nagdusa mula sa lahat ng uri ng awtomatikong pagwawasto na humantong sa hindi na mapananauli na mga kahihinatnan.

Pagbuo, Pag-debug at Pag-profile

Ang NetBeans ay may mahusay na katutubong suporta para sa Maven at Ant, pati na rin isang plugin para sa Gradle. Tuwang-tuwa ako nang matuklasan ko na ang mga proyekto ng Maven ay itinuturing na "katutubo" ng system. Nangangahulugan ito na maaari silang buksan lamang sa halip na i-import. Naglalaman din ang NetBeans ng isang kaakit-akit (at kapaki-pakinabang) na graphical na display para sa mga dependency ng Maven. Ang NetBeans Java debugger ay hindi masama, ngunit ito ay may ilang mga caveat. Ang isang hiwalay na visual debugger ay nagbibigay-daan sa programmer na kumuha ng mga screenshot ng user graphical interface at galugarin ang mga interface ng mga application na ginawa gamit ang JavaFX at Swing. Ginagawang mas malinaw ng profiler ng NetBeans kung paano ginagamit ang CPU at memorya at may mahusay na mga tool para sa paghahanap ng mga pagtagas ng memorya.

Aling Java IDE ang mas mahusay? Paghahambing ng trio ng mga higante

Nagamit ko na ang lahat ng tatlong IDE, Eclipse, NetBeans at IntelliJ IDEA, sa mga nakaraang taon sa nakalistang pagkakasunod-sunod na pagkakasunud-sunod. Sa bawat oras na lumipat ako sa ibang IDE, naramdaman kong tumaas ang aking pagiging produktibo. Ngunit kahit na ako ay matatag na kumbinsido na ang IDEA ang aking huling pagpipilian, kung minsan ay kailangan kong bumalik sa isa sa dalawang natitirang IDE. Ganito ang kaso, halimbawa, noong panahong ang Eclipse ay ang tanging tool na sumusuporta sa Android development (ngayon ay mayroong Android Studio, ang kasalukuyang opisyal na IDE para sa Android, ito ay batay sa IntelliJ IDEA). Siyempre, lahat ng tatlong IDE ay may kanilang mga tagahanga at detractors. Marami akong kilala na mga developer ng Java na gustong-gusto ang IntelliJ IDEA, pati na rin ang mga tapat na tagahanga ng Visual Studio C++ at C#. Mas madalas kaysa sa hindi, ang mga taong ito ay masaya sa katotohanan na tumaas ang kanilang pagiging produktibo, at ang halaga ng taunang subscription ay ibinabalik pagkatapos lamang ng ilang linggo ng paggamit ng bayad na bersyon ng IDEA. Gayunpaman, ang mga gumagamit ng NetBeans at Eclipse ay madalas ding nakakabit sa kanilang mga tool at nagtataka kung bakit ang ibang mga programmer ay handang magbayad ng pera para sa IDEA. Pinapayuhan ko ang mga bagong developer ng Java na lumayo sa Eclipse. Sa kabila ng katotohanan na ito pa rin ang pinakasikat na IDE para sa Java, mahirap para sa mga nagsisimula: madaling mawala sa mga wild ng Eclipse, kapwa sa panahon ng pag-deploy ng system at sa araw-araw na trabaho. Ang Eclipse ang may pinakamalawak na ecosystem ng plugin sa lahat ng IDE, at ito rin ang pinakamalamang na mag-crash dahil sa pag-install ng hindi tugmang hanay ng mga parehong plugin na ito. Sa kasamaang palad, habang ginagamit ang Eclipse, paulit-ulit kong kinailangan na alisin ang isa pang sirang pagpupulong ng IDE na ito at mag-install ng "malinis" na bundle. Ang NetBeans ay mabuti para sa karamihan ng mga developer, mayroon itong mahusay na profiler, at ginagamit ko ito minsan. Gayunpaman, mas gusto kong magbayad para sa IntelliJ IDEA Ultimate. At ang hinaharap ng NetBeans ay hindi pa rin malinaw. Para sa mga bagong developer ng Java na wala pang badyet para bumili ng mga tool, inirerekomenda ko ang paggamit ng NetBeans o IntelliJ IDEA Community Edition depende sa kanilang mga pangangailangan. Ang una ay nagkakahalaga ng pagpili para sa mga nagko-coding ng mga server ng Java, ngunit kung hindi ka nabibilang sa kategorya ng mga makakakuha ng IntelliJ IDEA Ultimate nang libre o may malaking diskwento (mga mag-aaral o mga programmer na bumubuo ng isang open source proyekto).

"Banayad" Java IDE

Ngayon, karamihan sa mga developer ng Java ay gumagamit ng IDEA, NetBeans o Eclipse, ngunit kung minsan ay nangangailangan ng mas magaan na mga development environment o kahit na mga editor ng code tulad ng Sublime Text, emacs o vim na sumusuporta sa mga plugin ng Java. Inilista ko sa ibaba ang mga makatwirang opsyon para sa mga naghahanap ng mas magaan:
  • DrJava — небольшая бесплатная среда разработки. Её создали для студентов Университета Райса, и она стала довольно популярной: DrJava загрузor уже более 2 млн раз. DrJava призвана развивать разработку, основанную на тестировании (test-driven development). Среда содержит «умный» редактор codeа, панель взаимодействия для оценки codeа applications, отладчик уровня источника и инструменты модульного тестирования.
  • BlueJ бесплатная среда разработки Java, созданная специалистами Кентского университета для начинающих программистов. Эта среда поддерживается Oracle. BlueJ отличается гораздо более лаконичным и простым интерфейсом, чем профессиональные IDE, такие, How NetBeans or Eclipse, и даже содержит специальный учебник по основам ООП.
  • JCreator — ещё одна небольшая Java IDE для Windows, написанная на C++ (из соображений увеличения производительности). Платная version Pro оснащена отладчиком, поддержкой Ant и code wizards, ну а бесплатная version (LE) — нет.
  • Eclipse Che — браузерная облачная IDE: Java, C++, JavaScript, Python, PHP, Ruby и SQL — список языков, которые она поддерживает. .

Выбор Java IDE в зависимости от проекта

Sinubukan kong ilarawan ang mahahalagang benepisyo ng bawat isa sa tatlong pinakamahalagang Java IDE at maikling binanggit ang kanilang kapaki-pakinabang na maliliit na karibal. Upang piliin ang tamang kapaligiran sa pagpapaunlad ng Java, kailangan mong timbangin ang mga kalamangan at kahinaan at itugma ang mga ito sa iyong mga pangangailangan at mga pangangailangan ng iyong mga proyekto. Kung sasali ka sa isang team, magandang ideya na gamitin ang parehong IDE gaya ng ibang mga developer, bagama't hindi ito kinakailangan. Kung ang iyong koponan ay nagho-host ng mga mapagkukunan sa GitHub, natural na magiging mas maginhawa kung sinusuportahan ng iyong IDE ang GitHub. Oo, maaari mong pangasiwaan ang paglilipat ng code nang walang IDE gamit ang GitHub client o ang git command line. Ngunit gaano kabisa ang gayong mga pagtalon sa pagitan ng iba't ibang mga sistema? Mahalaga rin na sinusuportahan ng IDE ang build system. Halimbawa, kung ito ay Maven, malamang na hindi mo gustong buuin muli ang system sa Ant para sa lokal na pagsubok. Sa kabutihang palad, lahat ng tatlong malalaking Java IDE ay sumusuporta sa Ant, Maven, at Gradle, alinman sa labas ng kahon o may isang plugin. Ngunit para sa mga "maliit" na IDE maaaring hindi ito totoo. Ito ay isang likas na pagnanais para sa kapaligiran ng pag-unlad na suportahan ang bersyon ng JRE na ginagamit sa proyekto. Kung ang mga bersyon ay hindi tumutugma, mayroong isang mataas na posibilidad na makakuha ng maraming dagdag na mga bug, na, halimbawa, ay lilitaw sa iyo, ngunit hindi sa iba pang mga miyembro ng koponan. Malabong magkaroon ng magandang epekto ang ganitong sitwasyon sa iyong karma. Sa totoo lang, ang hindi pagkakapare-pareho ng JRE ay mas malamang na mangyari dahil sa mga error sa pagsasaayos kaysa dahil sa kakulangan ng suporta sa IDE, maliban kung ang IDE ay hindi pa na-update sa isang bagong bersyon ng Java. Maniwala ka lang na kung ganap na sinusuportahan ng iyong IDE ang mga balangkas at teknolohiyang ginagamit sa proyekto, talagang nakakatulong ito na mapabilis ang gawain. Malamang na mapapamahalaan mo pa rin ito. Ngunit, kung nauunawaan ng IDE kung paano nauugnay ang mga pahayag ng JPA sa entity ng JPA at mga klase ng expression (tulad ng IntelliJ), mas kaunting oras ang gagastusin mo sa code na nauugnay sa JPA kaysa sa ganap mong hindi pagkakaunawaan. Well, kung sinusuportahan ng IDE ang testing framework at ang code executor na ginamit para sa proyekto, maaari kang magpatakbo ng mga pagsubok nang hindi binabago ang working environment. Mapapabilis din nito ang proseso ng pag-unlad. Sa wakas, mas mabilis ang trabaho kung tugma ang IDE sa bug tracking at ticket system ng proyekto. Muli, maaari kang gumamit ng isang standalone o web client, sabi ng JIRA, ngunit mahirap hindi sumang-ayon na ang pagsuri ng mga tiket ay mas mabilis nang hindi binabago ang window, habang nananatili nang direkta sa IDE.

Libre o bayad?

Matapos subukan ang IntelliJ IDEA Ultimate, naramdaman ko ang tamang kapaligiran sa pag-unlad. Isang uri ng Cadillac ng mundo ng IDE. Hindi ko sasabihin nang malinaw na ang IDEA ay ang pinakamahusay na IDE para sa Java, ngunit para sa akin iyon ang kaso. Muli, habang hindi ito libre, sa palagay ko ang mga natamo sa pagiging produktibo mula sa paggamit nito ay katumbas ng taunang subscription. Para sa mga baguhan na hindi kayang bumili ng taunang IntelliJ IDEA Ultimate na subscription, inirerekomenda ko ang paggamit ng NetBeans kaysa sa Eclipse. Siyempre, ang ecosystem ng mga plugin ng Eclipse ngayon ay higit na binuo kaysa sa anumang iba pang IDE, ngunit ito ay napakalaki at hindi maayos: ang isang baguhang developer ay nanganganib na maipit sa gubat ng IDE, Java at ang pagsasawsaw sa trabaho ay mawawala sa background . hinawakan din ang mga alternatibong "magaan", dalawa sa mga ito ay partikular na binuo para sa mga layuning pang-edukasyon. Well, kung nagsisimula ka pa lang matuto ng mga wika at mas gusto ang isang minimalist na kapaligiran, bakit hindi?
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION