Publikované pred rokom: 16.03.2011 / Andrew Binstock, čítaní: 4347
Eclipse, IntelliJ IDEA, NetBeans aj Oracle JDeveloper pokračujú v tradícii bohatých a pestrých vývojových nástrojov pre Javu.
Dobrí programátori vždy podrobne a intímne poznajú svoje vývojové prostredia, či už úplné IDE (Integrated Development Environment), ako tie, ktoré ďalej opisujeme, alebo obyčajné editory, ako emacs a vi alebo vim. To by mohlo zvádzať k dojmu, že vývojári nebudú ochotní meniť svoje IDE, ale prieskumy, naopak, ukazujú, že mnohí z nich svoje nástroje strieda každých pár rokov.
Migráciu niekedy vyvolajú nároky pracoviska, inokedy k nej dochádza so zmenou štýlu práce. Náš článok by mal programátorom uľahčiť poznanie odlišností vedúcich javových IDE: Eclipse, JetBrains IntelliJ IDEA, NetBeans a Oracle JDevelopera.
Tieto vývojové prostredia odrážajú pozoruhodnú bohatosť a vyspelosť prostriedkov pre Javu. Všetky majú výbornú podporu pre programovanie a vývoj, silne podporujú refaktoring, kontrolu syntaxe a ladenie. IDE sú všeobecne rýchle a schopné zvládať veľké implementácie jazyka bez viditeľných problémov. Väčšina z nich dovoľuje aplikovať projekty z IDE priamo na servery a robiť vzdialené ladenie priamo z vývojového systému.
Za posledných päť rokov sa trochu zmenili charakteristiky, ktorými sa produkty odlišujú. Zatiaľ čo v minulosti sa nástroje rôznili rozsahom vlastností na vývoj, dnes sú hlavné odlišnosti v jednoduchosti použitia, kvalite dokumentácie a pomocníka a možnosti plug-inov.
Z vývojových prostredí sa čoraz viac stávajú základne pre plug-iny poskytované externými dodávateľmi. Obzvlášť Eclipse Foundation už dlho podporuje tento trend. Je to zrejmé v IDE Eclipse, ktoré profituje z podpory väčšiny technológií, o aké môžu mať vývojári Javy záujem. No táto orientácia na doplnky je na úkor jednoduchosti použitia. Ako ukážeme ďalej pri opise Eclipse, jeho tvorcovia uľahčili písanie plug-inov len tým, že časť práce presunuli na používateľa.
NetBeans a IntelliJ IDEA lepšie vyvážili počet plug-inov s jednoduchosťou použitia. Obe ich majú dosť, ale zároveň sa snažia prácu programátora spríjemniť. Preto ich hodnotíme lepšie. Takisto s JDeveloperom sa ľahko zaobchádza, ale jeho plug-inov je málo. Navyše tesné spojenie so softvérom Oracle ho znevýhodňuje pre organizácie, ktoré závisia od softvéru mnohých iných dodávateľov. Keby nebolo toto obmedzenie v produkte také zrejmé, mal by asi viac plug-inov a bol by silnejším konkurentom pre ostatné IDE z nášho prehľadu.
Vývoj IDE ako základne pre plug-iny priniesol aj lepšiu podporu pre ostatné jazyky. Tieto vývojové prostredia podporujú jazyky bežne používané s javovými aplikáciami (JSF, HTML, CSS, XML atď.). Niektoré podporujú skriptovacie jazyky JVM (ako Groovy a JRuby), jazyky mimo domény Java (ako C/C++ a PHP) a modelovacie jazyky (UML). V ďalšej časti článku sa pozrieme na produkty s osobitným dôrazom na jednoduchosť použitia a programovacie schopnosti. Tie považujeme za hlavné faktory rozhodujúce o produktivite a spokojnosti používateľov. Skoro rovnako dôležitý je počet plug-inov.
Eclipse 3.6
Eclipse je javové IDE, dominantné podľa všetkých hľadísk, predovšetkým podľa toho, koľko a aké plug-iny využíva. Za svoju obľúbenosť vďačí rozhodnutiu svojho rodiča, IBM, oddeliť ho do osobitnej nadácie, v ktorej mohla Veľká modrá podporovať ďalší vývoj a kde zároveň mohla Eclipse využiť podporu ostatných firiem, ktoré by inak odmietali prispievať do produktu patriaceho cudzej firme. Táto stratégia sa oplatila, čiastočne aj preto, že pomoc bola štedrá, ale aj vďaka výberu riadiacich pracovníkov, ktorí vykonali skvelú prácu pri rokovaniach s inými organizáciami, čím vybudovali komunitu, ktorá riadi postup čiastkových projektov a rieši nezhody.
Dôležitosť nezávislosti vlastníka Eclipse sa ukázala nedávno, keď Google verejne oznámil, že toto IDE vybral na vývoj Androidu. NetBeans Oraclu mohli kedysi byť kandidátom na túto pozíciu, ale nedávny spor Oraclu s Googlom definitívne takýto vývoj znemožnil. Politika má vplyv aj na trh a Eclipse vždy hral s touto kartou šikovne.
Čo Eclipsu chýba, je špičková technológia. Eclipse bolo dlho priemerné javové IDE, ktoré veľa ľudí používa, ale málokto miluje. Po rokoch sa postupne zlepšilo na základe každoročných verzií starostlivo synchronizovaných s hlavnými komponentmi a dodávaných na trh zakaždým v júni. Tohtoročná verzia 3.6, označená ako Helios, pridáva niekoľko nových vlastností.
Zostava Eclipse je v mnohých ohľadoch neobvyklá svojou unikátnosťou, z čoho vyplýva, že znalosť práce v iných IDE sa nedá pre Eclipse použiť. Ústredný koncept je v práci s perspektívami, čo je iný spôsob reprezentácie panelov a rozloženia IDE. Tieto perspektívy môžu byť niekedy veľmi odlišné v závislosti od konkrétnej činnosti. Táto architektúra nahráva vývoju plug-inov, ale za cenu nepohodlia pre používateľa, ktorý sa musí vyrovnať niekedy s dramaticky odlišnými usporiadaniami, líšiacimi sa podľa práce, ktorú práve robí.
V základnom vývojovom prostredí Eclipse ignoruje konvencie a núti používateľa, aby sa prispôsobil jeho vízii. Než vytvoríte projekt, musíte napríklad najprv urobiť pracovné prostredie. V ňom (čo je koncept, ktorý nemá v iných IDE obdobu) tvoríte svoje projekty. Môžete takisto robiť pracovné zostavy, čo sú časti pracovného prostredia zoskupené ako samostatné entity. Táto závislosť od pracovných prostredí znamená, že tvorba a migrácia projektov môže byť náročný proces, zle podporovaný sprievodcami s neobvyklými a nevysvetleným možnosťami. Koncept „jednoducho to urob“ v Eclipse nefunguje. Skoro všetko vyžaduje vyplnenie dialógov alebo výber volieb, ktoré sú buď neodlíšiteľné, alebo neintuitívne.
Zoberme si napríklad zmiešaný projekt Javy a Groovy, importovaný do Eclipse bez plug-inu pre Groovy. Keď kliknete pravým tlačidlom na súbor Groovy, aby ste ho editovali, ponúka menu tieto možnosti: textový editor, systémový editor, miestny editor a defaultný editor. Pretože k tomu nie je nijaký pomocník, pri výbere len hádate. A od toho okamihu to ide z kopca. Keď kliknete na systémový editor, pokúša sa Eclipse skript spustiť, nie editovať ho. Stručne povedané, väčšina používateľov sa musí spoľahnúť na svoju ťažko nadobudnutú znalosť, čo je čo, skôr než na intuitívnu navigáciu po možnostiach.
Aby sa to naučili, sú používatelia silne závislí od pomocníka, ktorý sa za tie roky významne zlepšil, aj keď má ešte stále nedostatky. Okrem toho veľa chybových hlásení, ktoré boli v Eclipse bežné v predchádzajúcich dialógoch, takmer zmizlo. IDE sa nepochybne v každej verzii zlepšuje, ale ešte to chce to, čo NetBeans dostali pred pár rokmi – prepísať a zásadne zmeniť jadro programovacích činností.
Dodali by sme, že koncepcia Eclipse je problém najmä v oblasti Javy, kde súperí s veľmi kvalitnou konkurenciou, takže jej nedostatky sú tým viditeľnejšie. V iných oblastiach, napríklad vo vývoji pre C, kde je málo dobrých IDE, je Eclipse populárny a prijímaný bez výhrad. Na vývoj C++ pre Linux je to zrejme hlavné IDE.
Napriek týmto nedostatkom ponúka používanie Eclipse takmer neobmedzené možnosti a úžasnú škálovateľnosť. Zdanlivo neobmedzené eventuality sú výsledkom veľkého množstva plug-inov. A tých je toľko preto, že väčšina ich návrhárov podporuje predovšetkým Eclipse. Mnoho firiem nikdy nedáva svoje produkty na iné platformy. Dokonca aj populárne plug-iny, ako je výborný manažér úloh Mylyn, sú často dostupné len pre Eclipse.
V minulosti bola správa plug-inov v Eclipse pre používateľa problémom, pretože jeden plug-in často závisí od iných plug-inov, ktoré navyše musia mať určité číslo verzie. Eclipse sa tejto úlohe trvalo venuje. V tohtoročnej verzii Eclipse Marketplace sa tento problém rieši vyhľadaním plug-inu, ktorý by mohol byť použiteľný.
JetBrain IntelliJ IDEA 9.0.3
IntelliJ firmy JetBrain existuje v dvoch vyhotoveniach – ako platená verzia, ktorú tu opíšeme, a bezplatná open source Community Edition, ktorá ponúka základné programovacie možnosti pre Javu. Pretože platená verzia IntelliJ konkuruje mnohých bezplatným produktom, musí svoje prednosti neustále obhajovať. Robí to častejšími inováciami ako iné IDE. Jeho dlhá história inovácií mu získala veľký počet priaznivcov, ktorí majú produkt v obľube. A vskutku je čo milovať.
Návrhári IntelliJ majú cit pre nadchádzajúce trendy v komunite Java a rýchlo dopĺňajú podporu nových, horúcich produktov. IntelliJ bol napríklad jedno z prvých riešení s robustnou podporou Groovy a Grails. Ako jeden z prvých ponúkal zdokonalenú podporu pre JavaScript vrátane debuggera. Kde práve nezaujíma na trhu vedúcu pozíciu, je druhý, často s lepšou podporou. Má dokonalú integráciu pre Ant a Maven, podporu pre Spring a možnosť skákať z programovania Javy do Adobe Flexu a PHP v tom istom IDE.
Ale vývojári si cenia IntelliJ viac pre jeho schopnosti ako pre rad podporovaných technológií. Pred rokmi to bolo napríklad prvé IDE, ktoré poskytovalo dialógové okno na porovnanie predpokladaného a skutočného výstupu z testovanej jednotky so zvýraznením odlišností.
Dnes má možnosti a vlastnosti, ktoré sú všeobecne lepšie implementované ako podobné veci u konkurencie, ale aj absolútne unikátne vlastnosti. Do poslednej kategórie sa radí väčší počet možných refaktoringov programu, ako ponúka väčšina iných nástrojov. Má navyše zabudovanú kontrolu syntaxe, ktorá nielen hľadá chyby, ale aj miesta, ktoré síce pracujú správne, ale sú napísané neohrabane: príliš zložité funkcie alebo testovanie vždy pravdivej podmienky. Okrem toho ponúka IntelliJ vlastný nástroj na sledovanie programu, ktorý zobrazuje v IDE, ktoré riadky programu prešli daným počtom testov. Ak vás zaujímajú iné možnosti, IntelliJ má zabudovaný open source produkt EMMA a má plug-iny pre všetky ostatné sledovacie nástroje.
Do kategórie jedinečných vlastností patrí aj sledovanie duplicitného kódu, obzvlášť zle napísaného programu, ktorý sa vo veľkom projekte ťažko hľadá. IntelliJ má aj nástroj na analýzu závislostí, ktorý v tabuľke ukazuje metódy závislé od iných, ako aj to, ktoré od ktorých závisia. Tento opis však nevystihuje pocit, ktorý pri používaní IntelliJ máte. Je to softvér, ktorý neustále prekvapuje tým, že predvída potreby programátora. Napríklad všetky tu prebrané IDE majú vyskakovacie okno pomocníka, spúšťané, keď píšete meno metódy. V IntelliJ táto vlastnosť (ktorá sa volá automatické doplňovanie) využíva kontextuálnu informáciu z programu na odhad toho, čo sa má umiestniť do prvých miest zoznamu, takže nemusíte prechádzať mnohými možnosťami. Odhad je správny s nečakanou účinnosťou, niekedy to vyzerá až nadprirodzene.
IntelliJ má aj isté obmedzenia. Najviac citeľný je dlhodobý nedostatok dobrej dokumentácie. Zistiť, ako sa používajú vyspelé možnosti, alebo vyriešiť nejaký problém je nepochybne frustrujúce. Našťastie e-mailové otázky zodpovedajú sami vývojári. To znamená, že stačí položiť jednu otázku, aby ste dostali správnu odpoveď. Jediný háčik je v tom, že títo vývojári sú v Rusku, z čoho plynie istý časový posun. Ďalší problém je pomalý štart. Tento nedostatok sa vo verzii 9.0 trochu zmenšil, ale aj tak je únavne pomalý.
Napriek týmto nedostatkom je IntelliJ výborné IDE, ukazujúce, ako s výborne zvládnutým remeslom možno urobiť komerčný produkt, ktorý úspešne súperí s bezplatnou konkurenciou.
NetBeans 6.9
NetBeans urobil v posledných piatich rokoch veľké pokroky v podiele na trhu, aspoň podľa počtu použitia. Podľa výročného prieskumu IDE Javy, publikovaného BZ Research, bol NetBeans používaný v roku 2005 na 17,9 % miest. V tomto roku sa toto číslo zdvojnásobilo na 35,7 %. To je za toto obdobie zďaleka najvyšší prírastok používania akéhokoľvek IDE pre Javu. Čo sa týka popularity, je teraz NetBeans bezpečne na druhom mieste za Eclipse.
Za časť tohto úspechu môže starostlivá pozornosť jeho bývalej materskej spoločnosti Sun Microsystems. Keď začiatkom tohto roka Oracle získal Sun, zavládli vo vývojárskej komunite Javy obavy o osud NetBeans. Obavy zosilneli, keď Oracle zrušil podporu otvorených projektov Sun, ako napr. OpenSolaris, a hosťovanie Kenai. Osud NetBeans sa zdal taký neistý, že sme odložili toto porovnanie dovtedy, než sme získali istotu o tom, ako s IDE naloží Oracle.
Rozhodnutie Oraclu pokračovať v podpore NetBeans nám tlmočil Duncan Mills, vedúci manažmentu vývojárskych prostriedkov. Povedal: „Aktívne podporujeme tak JDeveloper, ako aj NetBeans. JDeveloper sa používa vo firme a pre podnikových zákazníkov, ktorí potrebujú nástroj so silnou podporou riešení Oracle Fusion Middleware. NetBeans je naša ponuka pre používateľov, ktorí chcú prostredie na vývoj s inými technológiami. Dúfame, že prípadne prejdú na riešenia Oracle a JDeveloper.“ Táto formulácia zabezpečuje, že môžeme s istotou očakávať aktívny vývoj NetBeans. Ako sme spomenuli v úvode, vzhľadom na nedávne spory Oraclu okolo Javy môže byť pokračovanie pomoci dvojsečným mečom.
NetBeans je charakteristický jednoduchým použitím a tendenciou k ľahkosti a jednoduchosti. Dokonca aj download má vlastnosti, ktoré potešia. Napríklad na download použijete stránku s tabuľkou rôznych edícií (kombinácií plug-inov a platforiem) predkonfigurovaných pre určité úlohy. Stiahnete si to, čo chcete. Eclipse má podobnú možnosť, zatiaľ čo IntelliJ a JDeveloper poskytujú len jednotný, univerzálny download.
Výber z tabuľky možností charakterizuje jednu z výrazných vlastností NetBeans: podporu jazykov, ktoré iné IDE ignorujú, menovite JRuby a JavaFX. (NetBeans má takisto zabudovanú podporu pre PHP a C/C++.) JRuby bol pôvodne vyvinutý firmou Sun, čo vysvetľuje jeho dôležitosť v NetBeans. Charles Nutter, jeden z vedúcich vývojárov JRuby, potvrdil kvalitu podpory jazykov v NetBeans v nedávnom rozhovore. Desktopový skriptovací jazyk JavaFX je podporovaný preto, že Oracle veľa prispel k tejto technológii. (Aj keď existuje značná skepsa, či jazyk vôbec niekedy získa popularitu, takže jeho začlenenie je viac naoko než v dôsledku reálnych používateľských potrieb.) Nanešťastie NetBeans prestal podporovať diagramy UML, čo donedávna ešte robil.
NetBeans bol pred niekoľkými rokmi kompletne prestavaný a stále má jednoduchosť a jednoduchosť navigácie, ktorú vtedy získal. Veci fungujú, ako treba, a požadované voľby je len zriedka ťažké nájsť. Na rozdiel od IntelliJ, ktorý robí pri zapisovaní len syntaktickú analýzu, NetBeans neustále kompiluje v pozadí. (Eclipse má podobnú možnosť ako nastaviteľnú voľbu.) To znamená, že len čo dokončíte editáciu, môžete program spustiť. NetBeans tiež robí v pozadí pre každý projekt Ant buildfile. Je to pre vývojárov užitočný prostriedok, zaručuje, že build vytvorený týmto IDE môže autor presne reprodukovať.
NetBeans sa dodáva so zabudovaným profilerom, testovacím generátorom JUnit (robí základné testy, ktoré síce nestačia na dôkladné otestovanie programu, ale na začiatok sú vyhovujúce), a sprievodcom pre reťazce v cudzích jazykoch. Pre väčší rozsah práce je download vrátane Apache Tomcat alebo otvoreného servera GlassFish. Na monitorovanie bežiacich aplikácií NetBeans jedinečne integruje podporu pre JMX (Java Management Extensions) a JConsole.
Plug-inov pre NetBeans je výrazne menej ako pre Eclipse (a zhruba rovnako ako pri IntelliJ IDEA). Stará múdrosť, že plug-iny Eclipse nakoniec migrujú k menej používaným platformám, je teraz skutočnosťou spochybnená. Ako sme sa už zmienili, mnoho nástrojov sa dnes píše pre Eclipse a ďalej nie sú portované. Ak NetBeans budú pokračovať v tempe, v akom získavajú nových stúpencov v posledných piatich rokoch, veci sa zmenia, ale v súčasnosti je nedostatok plug-inov najväčším obmedzením NetBeans. Vo všetkých ostatných ohľadoch je NetBeans najviac priateľsky orientované IDE pre Javu.
Oracle JDeveloper Studio 11g (11.1.1.3.0)
JDeveloper Studio od Oraclu sa jedinečne líši od iných riešení, ktoré sme testovali. Ide svojou cestou a je viac sústredený na agendu Oraclu než na potreby nepatriace do záujmov Oraclu. Skôr ako bezplatný produkt s uzavretým zdrojom ho treba vidieť ako vnútorný vývojový prostriedok Oraclu, ponúkaný zadarmo každému, komu sa môže hodiť.
Agenda Oraclu veľmi zužuje oblasť jeho zamerania, a preto ho v niektorých ohľadoch obmedzuje, ale následkom toho je zase produkt v iných smeroch veľmi efektívny. Väzby na softvér Oraclu sú viditeľné vo všetkých aspektoch IDE, dokonca i v číslovaní verzií, ktoré nemôžu predstihnúť ústredný produkt Oraclu, databázu. S týmto obmedzením sa číslo verzie musí roztiahnuť cez viac desatinných miest. V tomto procese sa potom obvyklá informácia o tom, ktoré verzie sú významným zlepšením produktu, úplne stratí.
Inštalácia je jednoduchá, ale konečný produkt je napočudovanie registrovaný na systémoch, na ktoré sa nainštaluje, pod menom Oracle Fusion Middleware. Väčšina ľudí nepovažuje IDE za middleware, ale táto kategorizácia zdôrazňuje podstatnú podporu JDevelopera pre vývoj middlewaru ako súčasti rozsiahlych možností pre enterprise. Napríklad JDeveloper má veľkú podporu pre ADF (Application Development Framework), súbor komponentov Java Server Faces (JSF), preferovaných Oraclom. Podporuje takisto TopLink, prezentačnú vrstvu, ktorú Oracle kúpil od BEA ešte predtým, než úplne získal BEA, a ponúka rozsiahle nástroje Java EE vrátane zabudovanej verzie WebLogic servera, ktorý sa môže spustiť a spravovať zvnútra IDE.
Orientácia len na Oracle v JDeveloperi funguje, ak sa striktne držíte spektra produktov Oraclu odhora nadol. Ak napríklad zameníte komponenty JSF Oraclu v ADF za komponenty iného výrobcu, možnosti vývoja používateľského rozhrania metódou WYSIWYG (What You See Is What You Get) sa značne obmedzia.
Napriek tomu je JDeveloper pohotovejší ako iné produkty, ktoré sme testovali, a má výborného pomocníka. Po stlačení klávesovej kombinácie pre pomocníka okamžite vyskočí okno s informáciou úzko spojenou so stránkou alebo dialógom, s ktorým pracujete. Táto kontextovo orientovaná pomoc je rýchlejšia a lepšia ako v iných IDE. JDeveloper má aj lahôdky, ako je zabudovaný profiler, ktorý vie merať výkon alebo spotrebu pamäte. Jeho kontrola syntaxe našla chybu, ktorú oslavovaný profilovací nástroj IntelliJ IDEA nezistil. V oblastiach, na ktoré sa Oracle sústredil, urobila táto spoločnosť dobrú prácu.
Jednou z oblastí, ktoré stáli mimo záujmu spoločnosti a ktorú JDeveloper odkrýva, je vytvorenie ekosystému plug-inov. Ani jeden z ostatných testovaných produktov nemá tak málo plug-inov a väčšinu z existujúcich napísal Oracle. Tretie strany prakticky chýbajú. Nenašli sme napríklad jediný plug-in pre code coverage analysis, ktorý by pracoval v JDeveloperi. To je vážne obmedzenie. Oracle dal najavo, že počíta s JDeveloperom ako hlavným vývojovým prostredím spoločnosti. Pre organizácie verné produktom Oraclu je to rozumná voľba. Ale všetci ostatní zákazníci by asi dali prednosť inému z IDE, ktoré sú tu prezentované.
Zdroj: computerworld.cz
Dĺžka:00:25:58
Dĺžka:00:17:22
Dĺžka:00:22:22
Dĺžka:00:55:21