21. února 2009

IDEA vs. Eclipse - je někdo vůbec lepší?

Tento článek bude dalším příspěvkem do nekonečné diskuze, které to IDE je vlastně nejlepší. Nedělám si nároky, že by se mi to podařilo nějak vyřešit, ale cítím potřebu o tom napsat, hlavně abych si to sám srovnal.

Hlavním důvodem k napsání tohoto článku byla skutečnost, že jsem nyní po přibližně 4 letech přešel z Eclipse na IntelliJ IDEA. S Ideou jsem před tím již dělal, bylo to moje vůbec první IDE v Javě, tehdy ve verzi 4 (možná 3, teď již přesně nevím). Pamatuji si, že jsem tehdy za žádnou cenu nechtěl přejít na Eclipse, byl jsem s Ideou maximálně spokojený. Teď jsem změnu z Eclipse na Ideu celkem uvítal, byl jsem zvědavý si vyzkoušet zase něco jiného.

Zde jsou mé osobní pocity a postřehy z obou IDE.

Eclipse 3.3 (resp. MyEclipse 6.5)

  • + automatická kompilace kódu při uložení včetně stálého přehledu chyb a varování v celém projektu mi přišlo něco tak samozřejmého, že jsem byl překvapen, že to tak Idea třeba nemá. Auto-kompilaci při uložení jsem si nastavil, s těmi chybami nevím - ukazují se mi jen v rámci daného souboru a nebo při překladu celého projektu, pokud chci znát všechny problémy.
  • + pluginy, pluginy a pluginy - není žádné IDE, které by mělo takovou komunitu a takové množství pluginů. Ve srovnání s Ideou to může být ale i trochu nevýhoda - spoustu věcí si člověk musí doinstalovat sám, nejsou automaticky součástí. Toto už dneska asi moc problém není - já využívám MyEclipse (obsahuje cca 200 předinstalovaných pluginů) a nebo samotný Eclipse vychází v různých edicích, např. edice pro webový vývoj apod.
  • + Eclipse platforma se často používá jako základ pro vývoj dalších IDE, jako např. Websphere nástroje. Pak člověk ocení, že se nemusí učit od základu nové IDE, ale že to základní už vlastně zná.
  • - nejednotný přístup v různých typech souborů. Když chci vybrat slovo, tak bych očekával, že se to stejně bude chovat v Java, HTML, JSP, TXT souborech. Bohužel ne - někde se vyznačí celý výraz, někde jen slovo. Není to prostě jednotné jako třeba v Idee. Asi je to tím, že různé formáty souborů jsou podporovány různými pluginy, mezi kterými není úplná jednotnost.
  • - slabší podpora webových stránek. Dost často jsem psal JSP nebo JSF stránky a nebylo to úplně špatné, ale při přechodu na Ideu jsem zjistil, že to slabší bylo.


IntelliJ IDEA 7

    + klávesové zkratky - pokud někdo v oblibě klávesové zkratky, tak Idea je jasná volba. Myslím, že to mají "vychytaný" :).
  • + podpora Springu - SpringSource snad oficiálně vytváří plugin jen pro Eclipse, ale i přes to je v Idee podpora o dost dále (propojení beanů s Java kódem je prostě super).
  • + all-in-one - nainstaluji a můžu fungovat na 100%. Někdo namítá, že Idea už toho obsahuje až moc - je pravda, že většinu nevyužívám a již dříve ve verzi 4 jsem měl pocit, že to IDE nic více umět ani nemůže.
  • + podpora Java kódování - již ve 4. verzi Idei jsem byl nadšený z možností refactoringu, nápovědy a podobných věcí, které člověk využije, když programuje čistou Javu. Od té doby Eclipse hodně zamakal a dohnal náskok Idei, ale prostě pořád mi přijde, že Idea je v tomto směru nejdále - takové možnosti refactoringu, takové možnosti analýzy kódu, takové možnosti debuggingu prostě v Eclipse nejsou. Jeden příklad za všechny: provedu analýzu kódu na duplicity. Hned s ukázkou duplicitních částí mám možnost refactorovat - extrahovat duplicitu do jedné metody.
  • + kombinace s TeamCity a verzovacím systémem nemá chybu. Moc jsem si oblíbil tzv. Remote run - místo samotného "comitu" se nejdříve provede spuštění na TeamCity a pokud vše projde (kompilace, testy), tak pak se teprve provede commit.
  • - cena. Co k tomu napsat více? Eclipse nestojí nic, MyEclipse začíná na 32 dolarech za rok a Idea začíná na 225 eurech.


Závěr

Po přečtení možná budete mít pocit, že jsem velký fanda Idee. Tak to úplně není, dnes už tak netrvám na tom, že musím dělat v tom daném IDE a v ničem jiném. Nadšení z Idei je také určitě dané změnou - dělal jsem dlouho s Eclipsem a teď jsem nadšený z každé nové "fíčurky", kterou objevím.

Sám jsem přemýšlel, zda mohu napsat, že nějaké IDE je lepší než jiné - napsat to nemohu, protože každé má svoje a záleží na každém, co přesně preferuje. Já sám za sebe mám radši Ideu, ale koupil jsem si MyEclipse ...

24 komentářů:

Anonymní řekl(a)...

IDEA je super, ako pises analyza a refaktoring, ale ta cena - to je katastrofa.
Preto volim eclipse - trosku sa uskromnim a konieckoncov mi to spravi rovnaku sluzbu.

Anonymní řekl(a)...

Idea je v nekterych pripadech hodne dobra. Napriklad podpora Groovy (ktere casto potrebuji) je o proti Eclispu o nekolik radu lepsi. Kde primo "zari" je v pripade, ze pracujete se zdrojaky a knihovnami, ktere mate z nejakeho duvodu na sitovem disku (S Ideou to temer nepoznate, Eclipse je u vetsich projektu nepouzitelny). Take to, ze nemuzu pouzivat version control nad soubory, ktere se "mountuji" do projektu pres filesystem, mi na Eclipsu dost vadi. Na druhou stranu i s Eclipsem se da dopre pracovat a cena je bezkonkurencni :-)

Anonymní řekl(a)...

"IntelliJ IDEA 3" - to cislo 3 bude predpokladam preklep ?

Petr Jůza řekl(a)...

Děkuji za upozornění, byl to samozřejmě překlep.

Anonymní řekl(a)...

No tak Eclipse je nekonzistentni docela dost hodne. Klavesove zkratky napr. pro kopirovani se da v 70% pripdu nastavit, ale zbylych 30% ma natvrdo \C + c, \C + v. To same plati o kurzorovych klavescha.

Kdyz pouzivate dva editory vedle sebe, tak jedina sance jak je presouvat je tazenim mysi a preskakovat bezi nimi jde taky poze mysi. Take nektere zkratky funguje poze v jednom z editoru (nepochopil sem proc, ale je to tak) napr. \C + m u mne zvetsi editory pres cele okno IDE, ale tohle funguje jenom z jednoho editoru, takze kdyz to nezafunguje z jednoho, musim rukou na mys, kliknout do druheho a pak se to teprve podari.

Takovych drobnych nedodelku je Ecplipse plne. Idea je daleko kompaktnejsi, v editaci zdrojaku je na tom o 100% lip.

P.S.: Uz zte zkuseji v Idea strukturalni nahrazovani? Eclips umi pouze vyhledavat, ale ne nahrazovat.

Mušketýr řekl(a)...

Je to přesně tak. Něco jako nejlepší IDE na Javu neexistuje. Já si už skoro nedokážu představit, že bych dělal v něčem jiném než ve Eclipse, protože pokud by mi nějaká funkce chyběla, tak většinou není problém si jí při nejhorším dodělat sám.

banter řekl(a)...

Preferuji Eclipse. Idea má zvládnuté použitelné klikátko na swing gui, ale kontextová nápověda je hrůza. Ctrl+space nenapovídá víc, než co je naimportované. To člověk musí použít ctrl+atl+space, ale to je tak hrozně pomalé, že si člověk mezitím může dát kafe.

Peter's Java Blog řekl(a)...

Já osobně jsem ideista už od verze 3. Mě osobně vyhovuje více než eclipse. Na to že je IDEA lepší si ale musí přijít každý sám.

Cena okolo $500 mě osobně neuráží, zejména proto, že jsem v ní schopen pracovat hodně rychle. Ostatní programy, které používám jen zřídka (třeba powerpoint, ms project) stojí řádově více.

Doporučuji každému, ať si IDEU vyzkouší na projektu, který právě má. Dějte jí 10 dní. Ovšem pozor. Je vysoce návyková a cesta zpět je hodně bolestivá.

Honza Novotný řekl(a)...

Já na Ideu nedám dopustit - ozkoušel jsem si Eclipse (3 měsíce), Netbeans (6 verze) a zůstávám u Idey. Můžeme se tu trumfovat ve fíčurách, ale to co je nakonec nejdůležitější je produktivita a kvalita kódu. Osobně jsem v Idee daleko produktivnější a dokážu mít stále "flow" - neřeším problémy s editorem, prostě píšu a soustředím se na kód - to ostatní už jde tak nějak samo. Doporučuju všem to aspoň vyzkoušet, ale přesvědčovat nikoho nebudu ;)

PetrProchy řekl(a)...

Souhlasím s Honzou Novotným...
Ja osobně používam Ideu uz několik let a začínal jsem na verzi 3 (možná 4), až jsem se dopracoval k verzi 8. Velice se mi líbí editor a jeho klávesové zkratky (Ctrl+Space a Ctrl+Shift+Space používám úplně nejčastěji) a samozřejmě již zminovaný refactoring :-) a debugger.
Ve firmě se jako development platforma využívá Eclipse, ale po několika týdnech trápení jsem raději utekl zpět k Idee. Efektivita práce s Eclipse se pohybovala někde mezi 50% a 60% oproti Idee. Naštěstí od verze 7 již podporuje načítání .classpath z Eclipse workspace, tak není problém udržovat classpath synchronní.
Netbeans jsem taky zkoušel a sedl mi mnohem lépe než Eclipse. Možná je to tím, že ovládání editoru je z velké části podobné jako v Idee.
Ale abych jenom nechválil, tak od verze 8 se změnilo OpenAPI, a to že docela dost, tak většina pluginů, co jsem používal, tak přestaly fungovat. Naštěstí k většině jsou i zdrojáky, tak se dají opravit. Snad se někdy dostanu k tomu, že je někde vystavím :-).

Anonymní řekl(a)...

a co tak netbeans?

Rio řekl(a)...

Programujem aj Adobe Flex a ten je urobený ako plugin do Eclipse. Takže Eclipse.

Jan Kovar řekl(a)...

Na produktivitu při vývoji má podle mě největší vliv zkušenost vývojáře a použitý framework-knihovny. Svůj vliv má také to, jestli deployment aplikace trvá 10 minut nebo je takřka okamžitý (WTP v Eclipse) a jestli jsou k dispozici nástroje typu kontextového doplňování.
Zbylé rozdíly v IDE ovlivňují akorát pohodlí vývojáře. V práci používáme napůl Eclipse a napůl IDEA. Vivat maven, který nám to umožňuje :-)

kvas řekl(a)...

plne suhlasim s honzom kovarom, ja pouzivam len Eclipse, mam sice Ideu stiahnutu, ale este som ju ani nerozbalil, nieto este pouzival. staci mi kombinacia Eclipse + maven

Anonymní řekl(a)...

Ja nedam dopustit na IntelliJ! Editor kodu je proste bozi. Jde to tam i zpet, neco napisete, ona uhadne, co chcete napsat. Zkousel jsem ted tyden pracovat v Eclipsu a je to hrozne ubohe.
Treba chci vytvorit DataSource, ale nevim, jak se konkretne jmenuje ta trida v JDBC driveru, ktery jsem si pripojil ve forme JARu. Jeden priklad za vsechny:

DataSource (Crtl+Space..doplni "dataSource") = new (Ctrl+Alt+Space..Smart Type Code Complete..ukaze nabidku vsech dostupnych implementoru DataSource.To je proste bozi!)

Idea ma proste ten editor kodu genialni. Co me stve, je neexistence wizardu a nelogicky udelana menu(i po letech porad objevuji nove veci.To bych uz nemel)

Vaclav Pech řekl(a)...

Pokud se ztrácíte v menu Idei, možná by Vám mohla vyhovovat zkratka Control + Shift + A, která dovolí vyvolat libovolnou akci podle jména nebo jeho částí. Např. refaktorování Wrap Return Value lze vyvolat Control + Shift + A "w r v". Užívám to čím dál tím častěji pro akce, které nemají klávesovou zkratku.

Anonymní řekl(a)...

Presiel som Ideu, Eclipse aj NB. Ako j2me developer musim povedat, ze pre to co robim su NB najlepsie a to nehodnotim vizualny navrhar, ktory som mal spusteny len raz.
Asi najkorektnejsie porovnanie vsetkych troch IDE by bolo pre jednotlive oblasti vyvoja pretoze takto sa miesaju povacsine hrusky s jablkami.

Dmitrij řekl(a)...

Konecne jsem narazil na diskuzi, kde se lidi nahadaji a nehazeji po sobe svymi IDE. "moje je lepsi..au au..ne ne..tu mas..moje je lepsi..:)"
Ja osobne se k IDEA dostal ve verzi 6, ale po instalaci jsem marne tapal jak to vlasne funguje, tak jsem odinstaloval, ale porad mi to nedalo, tak za nejaky cas jsem se vratil a popral jsem se s ni. A reknu vam, je to nejlepsi IDE, ktere jsem mel kdy tu moznost pouzivat. Zkusil jsem Eclipse i NetBeans, ale nic se nevyrovnalo IntelliJ. Je to jako kdyz presednete z Favorita do A8. Je to citit. Mate tam vsechno. Venoval jsem se Jave, ale v posledni dobe apeluji na Python a ze bych mel potrebu menit IDE? Vubec. Podpora Flexe nebo jinych technologii? Jiste! GWT - nadhera. Vyvoj GWT doporucuji jen v IDEA. Ve firme (bohuzel uz byvale) delali v Eclipse ale ja jsem si vystal IDEU, zadny problem s kompatabilitou mezi projekty nidky nebyl. I kolegum jsem ukazoval jak to funguje, co umi a oni : "WOW!" Dokonce kolega C#par si do Visual Studia nainstaloval (portovany) plugin na "Inteligentni doplnovani kodu" a nemuze si ho vynachvalit.
A ohledne ceny. No tak ano, neco to stat musi. Pokud nepotrebujete Corporate licenci (500E), tak na jmeno vam staci (cca 220E)a hlavne neni casove omezena, update stoji mam dojem cca 100E. A to nejdulezitejsi nakonec. V cene je Support! Mel jsem jen dva problemy s IDEA behem 2 let. Stacil mail na support a do dvou hodin (dokonce v patek odpoledne) jsem mel odpoved.
Go IDEA, go!

uf řekl(a)...

Lepší? Přece NetBeans...

Anonymní řekl(a)...

IDEA bohužel hrozně dlouho při startu načítá projekt - nasosává a parsuje si mj. snad i všechny JARka a JSPčka až na úroveň jednotlivých elementů jazyka. Nevím, zda jde tento "eager fetching" vypnout. Tolik by to nevadilo, kdyby IDEA fungovala spolehlivě a projekt se mi tudíž načítal jen jednou, ale bohužel mám zkušenosti mj., že buď zobrazovala neexistující chyby v projektu, nebo naopak nezobrazovala existující, případně další zákeřnosti, a raději jsem pak nakonec IDE restartoval... U Eclipse stejný problém tolik nevadil, přestože sem tam taky nastal, neboť restart IDE s načtením projektu je mnohem rychlejší. U IDEA jsem si mohl odskočit na svačinu. Kolegové IDEA-isti díky téhle smutné "feature" častěji commitnuli nekompilující se kód, než Eclipsisti, přestože oni byli na IDEU naučení roky a já jen měsíc. V čem IDEA určitě exceluje, je editace JSP stránek s JavaScriptem, CTRL-klik krásně skočí na definici daného elementu či funkce, CTRL-space smysluplně nabízí možnosti - o tom si v Eclipse můžu nechat zdát. Jedním slovem vynikající. V Eclipse se mi zase líbí práce s Javou jako takovou, což je asi spíše o zvyku, ale nápady IDEY ("žárovičky", code completion) mi přišly rozhodně méne logické a spíše mě zržovaly od práce, než aby mi pomohly. Jsem si vědom, že spousta lidí si inteligenci IDEY chválí, ale nemohu to potvrdit z vlastní zkušenosti jinde, než v JSP/HTML. V Eclipse edici pro JEE se mi navíc líbí integrace Tomcata - mj. persistuje HTTP sessions a webová aplikace, kterou vyvíjím, mě tudíž neodhlásí ani po rekompilaci Java tříd a tím vyvolaném restartu aplikace. Nemusel jsem nikde hledat, zda to vůbec jde, ani jak se to nastavuje, prostě to fungovalo. Cena/výkon: IDEA v JSP podle mě jasně vítězí, přestože není zadarmo, kdežto v Javě u mě spíše prohrává - připlatit si za více komplikací jednoduše fakt nechci: uvažoval jsem, že si IDEU koupím, nakonec jsem ji ale odinstaloval a pracuji dál v Eclipse.

Lukáš Zapletal řekl(a)...

"Pamatuji si, že jsem tehdy za žádnou cenu nechtěl přejít na Eclipse, byl jsem s Ideou maximálně spokojený. Teď jsem změnu z Eclipse na Ideu celkem uvítal, byl jsem zvědavý si vyzkoušet zase něco jiného." - a proč jste tehdy přecházel? Celé je to jakési zmatené ;-)

Ale souhlasím. IDEU jsem sledoval od prvních verzí a od 5 začal používat. Je super.

Petr Jůza řekl(a)...

Možná jsem to zmateně napsal, ale jinak to zmatené není :).

Kdybych mohl, tedy pokud by mi to zaměstnavatel dovolil, tak bych pořád používal IDEU.

Anonymní řekl(a)...

Nedelam primo s Eclipse, ale s RSA, ktery je postaveny na Eclipse. Pravdepodobne je trochu rychlejsi, protoze treba se zminovanym ctrl + space jsem spokojeny, nabizi mi relevantni moznosti (a co je relevantni lze konfigurovat), samozrejme lze nastavit i zpusob serazeni a vkladani. Klavesove zkratky vesmes v pohode, i kdyz nektere mi chybi, napr. generovani setru / getru ji nema, nechapu proc :(

Daniel řekl(a)...

Psal jsem pluginy do všech tří IDE, co je ze všech nejlepší je NetBeans se svou kontextovou nápovědou, tu mají vážně geniální v kontrastu k Eclipse která je otřesně "retardovaná", a na Ideu s zase krásně kouká je to opravdu hezky vyřešený prostředí. Škoda že nejde vzít to nej ze všech a udělat Super IDE(i když to s osgi začíná vypadat nadějně)