přejít na obsah přejít na navigaci

Linux E X P R E S, IntelliJ IDEA 9

IntelliJ IDEA 9

intellij_idea.png

Firma JetBrains vydala novou verzi programovacího prostředí IntelliJ IDEA nejen pro Javu s pořadovým číslem 9. A učinila malou revoluci - zveřejnila odlehčenou (Community) verzi zcela zdarma a navíc jako open-source. Jako vždy vám přináším přehled novinek tohoto vydání a jako bonus se podíváme právě na Community verzi.


Nová verze se nese ve znamení vyšší produktivity, což je mimo jiné hlavní poznávací znak tohoto vyspělého produktu. Svůj článek začnu jedním detailem. Právě detaily se mi na tomto produktu líbí - IDEA je nevyčerpatelná studnice různých zlepšováků, vychytávek a pomůcek. Kolekce programátoři používají často, konkrétně rozhraní List je snad nejvíce používané (nepočítal jsem to přesně). Jakmile uvedu tuto třídu ve zdrojovém kódu poprvé, IDEA nabídne možnost automatického importu. Až dosud se v nabízeném seznamu vyskytovala kromě třídy java.util.List také o mnoho méně často používaná (řekl bych již téměř nepoužívaná) java.awt.List. Bohužel díky lexikografickému třídění je na prvním místě, takže se člověk často "uklepl" a zavedl import na třídu, kterou nechtěl. Pak se musel vracet a vše opravit. V nové verzi se vám to už nestane. Můžete vyřadit libovolnou třídu (vlastní, knihovní nebo JDK), která vám doslova pila krev, a to pohodlně přes kontextové menu během vteřiny. Žádné velké klikání myší v nastavení - takhle to mají uživatelé prostředí IDEA rádi.

Doplňování kódu dostalo do vínku nový rozšířený režim. Po druhém stisku horké klávesy [Ctrl+mezerník] dostáváte předloženy také metody či členské proměnné v kontextu neviditelné, což je užitečné. Já sám například zapomenu zadat klíčové slovo public a poté se divím, kde že se mi metoda zatoulala. Po druhém stisku [Ctrl+mezerník] ji však již najdu, zapíšu a později opravím. IDEA zobrazuje také další zajímavé členské proměnné nebo metody, které jsou dostupné jinými způsoby.

Že má nová verze další nové inspekce asi nemá cenu rozepisovat. IntelliJ IDEA se svoji statickou analýzou dokáže poradit či nabídnout velké množství návrhů, které se při psaní kódu hodí. Nejsou to jen varování nebo chybová hlášení, ale také zlepšení čitelnosti či bezpečnosti kódu nebo různé optimalizace. Nové obarvování pozadí v seznamech tříd podle typu daného záznamu je užitečnou novinkou, která stojí za zmínku. Snadno tak rozpoznáte, které třídy jsou z vaší aplikace, které z linkované knihovny nebo z JDK.

IntelliJ IDEA 9 po startuIntelliJ IDEA 9 po startu

Příliš často nevidíme situaci, kdy IDEA předloží uživatelům nějakou novinku, kterou již má konkurence implementovanou. Kontrola pravopisu v komentářích a dokumentačních komentářích byla do této verze dostupná pouze jako plugin - nyní je tato funkce dostupná přímo. Co mě však mile překvapilo byla možnost kontroly přímo nad literály v kódu. Někdy si člověk není jist, jestli napsal proměnnou nebo název funkce zcela korektně - zejména pokud se jedná o doménový obor, který neznáme. Nyní není třeba spouštět slovník - IDEA navrhne správný spelling automaticky.

Programátoři J2EE asi zajásají (jupí) nad jemnější možností definování artefaktů (například WAR souborů) při konfiguraci nasazení (deployment). Kromě toho lze definovat závislosti na knihovnách podobně, jako v Mavenu. To v praxi znamená, že lze závislost označit jako compile-only, test-only nebo runtime-only. Plakat rozhodně nikdo nebude také nad podporou nových Type Annotations (@Immutable, @Mutable, @NotNull a podobně), které by podle všeho měly být součástí Javy 7. Já osobně se již snažím podobné anotace používat a starší verze protředí IDEA jistou podmnožinu těchto anotací dokonce uměla i kontrolovat. Nesmím nezmínit novou podporu J2EE 6, a to především EJB 3.1, Servlet 3.0, JSF 2.0, a také preview Glassfishe 3. Co do rychlosti vývoje (například start serveru) je to výborná implementace J2EE aplikačního serveru a firma Oracle potvrdila, že jej bude nadále podporovat především jako referenční implementaci vhodnou (nejen) pro vývoj. Možnost práce s J2EE 6 je hlavním tahákem prostředí IntelliJ IDEA 9.

Široká škála podpory frameworků byla vždy velká síla prostředí IDEA. Nová verze zlepšuje podporu a povyšuje podporované verze. Novinkou je populární komponentový framework Tapestry v nejnovější stabilní verzi. Povýšeny verze Google App Engine (GAE), GWT (2.0) a Spring (3.0). Nová je také podpora vývoje pro Google Android a zdá se, že komunita kolem Androidu přijala IDEU jako druhé oficiální IDE. S novou verzí je bundlován také populární OSGi plugin. Možnosti editace JavaScriptu, XML, (X)HTML, CSS, XSD a dalších veledůležitých internetových a enterprise formátů se opět malinko zlepšily. Stále považuji IntelliJ IDEU za nejlepší JavaScript a XML editor, dokonce ji mám raději než Altnovu, kterou na projektech používáme (což je specializovaný XML editor). Uvítal bych snad jen grafickou podporu editace XSD (XML Schémat), které jsou denním chlebem v EI/SOA - konkurence již má nějaké náznaky v podobě pluginů. Kromě JavaScriptu IDEA zvládá také ActionScript a FLEX, kde najdeme také nějaké novinky. Zmíněné platformy od firmy Adobe však neovládám, a tak nemohu tyto novniky posoudit. Na tomto místě musím uznat, že podpora technologie JavaFX není tak dobrá, jako například u Netbeans. Ale tato technologie má před sebou ještě hodně cesty - myslím že není třeba s podporou příliš spěchat. V poslední době Sun této technologii věnoval značné úsilí a také firma Oracle uvedla, že JavaFX bude nadále podporována, a to dokonce více, než dosud.

Indexování na pozadíIndexování na pozadí

Svět vývoje softwaru se v poslední době hodně posouvá k dynamickým jazykům, což zasáhlo také svět Javy. Naštěstí společnost Sun včas zareagovala a do posledních verzí jazyka začala zapracovávat podporu pro další jazyky. Tento směr se bude v budoucnu (Java 7) nadále prohlubovat a častěji a častěji se budeme setkávat s různými jazyky pro JVM. Ke dnešnímu dni se těší velké oblibě zejména jazyky Groovy, Scala, JPython a JRuby. Co se týče podpory jiných jazyků je IDEA na špici - ve verzi 9 byla ještě zlepšena oficiální podpora jazyka Groovy, frameworků Grails a Griffon a buildovacího systému Gradle. Společnost JetBrains také aktivně vyvíjí pluginy pro JPython/Python a JRuby/Ruby, které jsou v současné době v dobře použitelných beta verzích a uživatelé komerční verze je mohou dle libosti používat (finální verze bezplatně). Z těchto pluginů zřejmě budou těžit nové produkty PyCharm a RubyMine. Co se týče populárního jazyka Scala a méně známého Clojure, tak pro oba existují oficiální pluginy vyvíjené přímo firmou JetBrains. Musím také zmínit nový produkt Web IDE, který je určen pro vývoj v PHP/HTML/JavaScript. Uživatelé Ultimate verze vlastně mají všechnu funkčnost programů PyCharm, RubyMine a Web IDE dostupnou v podobě pluginů. Ovšem PyCharm a Web IDE jsou zatím ve fázi beta testování.

Co mně vždy vadilo bylo spouštění více strartovacích profilů pomocí myši. Touto vadou na kráse trpí více programovacích prostředí a pokud pracujete na projektu, ve kterém musíte spouštět více konfigurací (např. jmenný server, stuby, aplikační server, J2EE kontejner), musel vždy člověk používat myš. Přes klávesnici šla vždy spustit jen poslední zvolená konfigurace. Dalo se to řešit různým mapováním klávesnice, Ant skripty nebo i pluginem, ale vývojáři do verze 9 přinesli novinku: [Alt+Shift+F10] (resp. F9). Tato kombinace vyvolá dobře známé kontextové menu, ze kterého můžete konfiguraci pro spuštění vybrat šipkami. Na myš zapomeňte. Když jsme u těch zkratek, zkuste v devítce také [Shift+Ctrl+šipka nahoru a šipka dolů]. Já osobně dost často měním velikost Output Window na úkor Editoru, když zkoumám logy a chybové výpisy. Na myš opět můžu zapomenout.

Bohatá nastavení prostředíBohatá nastavení prostředí

Dovolil bych si malou poznámku. Na služební cestě jsem nešťastnou náhodou přišel o MP3 přehravač. Prostě chvilka nepozornosti, a byl pryč. Jelikož jsem si nedokázal představit dlouhou zpáteční cestu bez hudby, koupil jsem si nový. Jelikož jsem si v obchodě nevybral žádný pořádný, koupil jsem si dočasně neznačkový s tím, že nový koupím až v ČR (také kvůli záruce a podobně). Ovládání jsem nepochopil ani během pěti minut, ani během několika hodin. Nepochopil jsem ho dodnes (přehravač jsem dal pryč a již objednal normální). Na tom příkladu je vidět, že když někdo vyrábí něco, co pak sám nepoužívá, je to katastrofa. Jsem si jist, že ti, co tuhle hrůzu vymysleli (a napsali pro ni software), sami používají Sony Walkman nebo Apple iPod. Prostě nevěřím, že tohle může někdo používat. A na příkladu prostředí IDEA je to vidět taky - jenže opačně. Programátoři tohoto produktu jej zřejmě opravdu používají v každodenní práci. Ovládá se to prostě "samo".

Nová IDEA používá implicitně také pozměněný formát ukládání projektů - místo známých XML souborů (iml + další soubory) používá adresářovou strukturu (iml soubor + adresář .idea). Je to krok správným směrem. Jestli musíte den co den své změny integrovat do více větví repozitáře zdrojových kódů, jistě uvítáte raději více souborů. Každý obsahuje jen určitou informaci, takže když dojde při integraci ke konfliktu v souboru, kde už podle názvu detekujete nedůležité nastavení (například změnu nastavení inspektora kódu), ihned můžete svoji verzi zahodit, aniž byste blíže zkoumali daný konflikt. Daleko lépe se také vracejí změny (revert changes) - prostě "revertnete" jen dané soubory. Malé a dobře naformátované textové (XML a jiné) soubory - to je můj ideál. Zdůraznil bych "dobře naformátované", protože se ve své praxi setkávám s programy, které serializují projektová nastavení do jednoho řádku XML. Integrace každé změny je pak utrpením. Ale tohle v JetBrains naštěstí dobře vědí. Znovu bych poukázal na paralelu s MP3 přehrávačem.

Za užitečnou vlastnost považuji zobrazování UML diagramů. Tuto funkci používám ke generování diagramů u doménových datových a DTO tříd. Možnosti se v tomto směru opět poněkud rozšířily, ale nepoužívám UML v prostředí IDEA natolik, abych to mohl posuzovat. Pro zájemce doporučuji studium vlastností UML. Několik vylepšení se dočkaly Subversion a Git pluginy, k čemuž bych měl co říct. Konečně se zlepšila použitelnost horké klávesové zkratky [Ctrl+t] (update). Já osobně bych byl také pro oficiální podporu systémů pro správu verzí Bazaar a Mercurial. Hlavně první jmenovaný jsem si velmi oblíbil díky přívětivosti ovládání a širokým možnostem distribuovaného i centralizovaného přístupu (včetně možnosti plynulého přechodu mezi nimi).

Podle mého názoru inženýři odstranili jednu z posledních vad na kráse, kterou prostředí mělo - totiž rychlost startu. Nikdy mi vlastně přiliš nevadilo, že se prostředí spouští pomaleji. Člověk si vždy před začátkem práce musí "podělat" různé jiné věci, jako pootvírat další okna, přečíst co se stalo ve světě a zjistit, co Sun (ehm Oracle) vyřadil nebo zařadil do další verze Javy 7. Nicméně trošku mi bude to pomalejší načítání velkých projektů chybět - vždy jsem jej používal u recenze jako jednu z "výtek na konci". Každá správná recenze by neměla být jen pochvalná. Já budu muset najít něco jiného, protože start je výrazně rychlejší díky načítání a indexování na pozadí. Zrychlení celého prostředí totiž patří mezi hlavní lákadla, proč povýšit na verzi 9. To se totiž netýká jen samotného startu, ale také další práce. Dle changelistu to citelněji pocítíte zejména při používání VCS.

Jedna nová věc, která je vyloženě kosmetického charakteru, musí být v mém článku uvedena. A to je prosím drag-and-drop z operačního systému (např. Exploreru). Pokud například máte hromadu souborů (třeba tisíce XSD souborů v jednom adresáři), je někdy velmi pohodlné soubor přidat do projektu přetáhnutím. Inu když už ho máte "v ruce", nechcete jej znovu hledat v jiném okně. V dřívějších verzích nešlo do prostředí IDEA nic přetáhnout. Nic se nestalo - program na soubor nereagoval. Opravdová drobnost, která ovšem stávajícímu uživateli přinese úsporu času.

Ale můj šéf mi to stejnak nekoupí

A dostáváme se k jádru pudla. Některé věci z tohoto článku, některé skvělé funkce, které má IDEA 9, můžete mít zadarmo! Je to především excelentní editor kódu, podporu XML, Groovy, Scala, Clojure, Ant, Maven, JUnit, TestNG, GUI Swing, CVS, Subversion, Git, OSGi a další funkce dostupné přes rozšiřující pluginy. Nic vás neomezuje, žádné časové limity či překážky v podobě odmítavých hlášek. Snad jedině look and feel (skin) programu je mírně pozměněn - to především z licenčních důvodů (IDEA používá komerční look and feel). Tato novinka představená s verzí 9, tedy Community Edition, funguje zcela bez omezení, jen nebudete mít tolik komfortu (podpora frameworků) jako uživatelé verze Ultimate. Vždy zde ale bude šance najít si nějaký plugin vyvíjený komunitou.

Pokud jste dosud s vyzkoušením IntelliJ IDEA váhali, na nic již nečekejte.

Nahoru

Odkazy

Příspěvky

IntelliJ IDEA 9
benzin 4. 03. 2010, 16:13:03
Odpovědět  Odkaz 
A co naroky na pamet a stabilita? Ja sem IDEU nekolikrat zkousel na linuxu a vzdycky pri otevevreni (pomerne maleho projektu v mavenu, nekolik vnorenych modulu) chroustala dlouho a pak nabobtnala pres giga pameti (mam dve takze je to fakt hodne) tim se zpomalila a po nekolika chvilich spadla.

P.S.: Chtel sem utect od emacsu k nejakemu IDE ktere ma uz preci jen lepsi podporu pro Javu nez JDEE. IDEA byla ovladanim asi nejbliz i co se splitovani edtoru tyce (doted to jine IDE pro javu nemaji, to fakt nechapu), ale proste ta nenazranost a nestabilita mi moje plany prekazily. :( A tak ted pouzivam Eclipse.

Btw. Jest eporad je nekozistentni v ovladani? Kdyz si nastavim schema klaves pro editor, tak je stejne pouzito i napr. v prochazeni stromu a ve vsech dialogovych oknech? Napr. ve verzi (tusim 7) sem ei nastavil Emacsovskou klavesnici a kdyz sem preskocil do Package Browseru (storm balicku a trid) a chtel se v nem pohybovat tak sem s misto toho otevrel spoustu IDEJi, protoze proste Ctrl + N v editoru byl pohyb dolu, ale v dialugu se stromem to znamenalo otevreni noveho okna.
RAM
lelo 4. 03. 2010, 17:46:22
Odpovědět  Odkaz 
na download stránke sa uvádza, minimálnma RAM 1 giga, odporúčaná 2.
Re:RAM
Petr Prochazka 4. 03. 2010, 23:30:47
Odpovědět  Odkaz 
No, ja ji v praci vyuzivam od verze 7.x (aktualne 9.0.2 EAP) a heap size mam nastaveny na 512MB a nemam problemy s pameti...
A to obcas mam otevrene treba 3 projekty, nejsou zase tak ohromne (tisice trid, ale vetsinou cca. stovky trid maji) a vetsinou to jsou multi-projekty...
Pouzivam ale Windows XP s 2GB RAM...
IntelliJ IDEA 9
Marian Stranecky 5. 03. 2010, 08:53:01
Odpovědět  Odkaz 
Musim rict, ze ac dlouholety "eclipsar", zacinam pouzivat toto IDE vic a vic... Napr. proto, ze uz me nebavi spatne navrzeny resource model v eclipse, komfort prace s maven projekty se neda porovnat ani nahodou (i ty Netbeans uz to umi jedna basen).
Co se tyce devitky, krasne zvlada i velke projekty bez vyraznejsich pametovych naroku...
Re:IntelliJ IDEA 9
benzin 5. 03. 2010, 11:30:30
Odpovědět  Odkaz 
Co Vam konkretne vadi na praci s Maven projekty v Eclipse? Jediny problem ktery v Eclipse vidim je plocha struktura projektu, ale to se da docela prekosnout, napr. plochou strukturou a zavislosti na parent projektu, ktery ale neni ve stromu pod projektama, ale vedle. Btw. tahle to delaji snad vsechny Apachi projkety.

Co dalsiho jeste zbyva, co Vam v Eclipsu chybi v souvislosti s Mavenem?
Re:Re:IntelliJ IDEA 9
Rudánek HG 14. 07. 2010, 20:17:01
Odpovědět  Odkaz 
Jako dlouholetý Eclipsar, jsem po tomto týdnu vyhodil eclispse+svn+m2e+springIDE málem z okna ven, aby z runu nešel pustit defaultně install nebo pakcage bez testů (podobně jako je to u build) pokládám za nemravnost, to že když mám dependecy mezi projekty, tak se Eclipse nemůže rozhodnout jestli bude clean, build, ... dělat po svým nebo po mavenovským v neprůstřelné konfiguraci mi na klidu nepřidalo => nainstaloval jsem si IDEU => zatím bojuji s tím jak v IDEE nastavit multi projektové view :(
IntelliJ IDEA 9
benzin 5. 03. 2010, 11:27:38
Odpovědět  Odkaz 
No tak sem si to nainstaloval. Uz to GUI se mi libi vic nez u jinych IDE. Ale zaboha tam neumim nastavit klavesove zkratky sestavajici se z vice nez dvou klaves. Jako napr \C+X 2 pro split oken, nebo treba \C+c g pro skok na urcity radek. Nevim jeslti to nastavuju spatne, nebo proste IDEA porad neumi slozene klavesove zkratky?

Neni na to v nejaky plugin. Protoze to pro mne dela tohle IDE docela nepouzitelne. Uz tak mam mozne kombinace klavesovych zkraktek pro IDE hodne omezeny kvuli globalnim zkratkam ve WM.
Re:IntelliJ IDEA 9
Noname 6. 03. 2010, 21:15:32
Odpovědět  Odkaz 
Treba sa lepsie pozerat, priamo pri zadavani klavesovej skratky je checkbox "Enable" a pod nim "Second stroke".
Viac ako dve urovne myslim definovat nejdu, ale to hadam ani nie je potrebne.
Re:Re:IntelliJ IDEA 9
benzin 7. 03. 2010, 15:14:57
Odpovědět  Odkaz 
Dekuji, ano IDEA opravdu zvlada sekvence zkratek jenom ze dvou, to je dost skoda. Obzvlast pro nektere malo pouzivane kombinace pak musite vymyslet hodne obskurdni zkratky, ktere si nezapamamtujete a tak musite klikat. Mne prijde daleko lepsi si udelat si dlouhou klavesovou zkratku, kterou si ale odvodim uz jenom z toho co dana zkratka dela (napr. \C-x \C-g m - generovani metody, \C-x \Ć-g d - generovani delgata.) nemusim si ty zkratky pamatovat, proste vim prvni pismeno toho co chci provest.

No ale hlavne to rozlozeni klaves podle emcasu je dost tristni. Napr. standardni klapka pro Undo - \C-x u definovana neni atd.

Co mi ale hlavne chybi ze nemuzu najit jak se tady jmenu zkratka pro zacatek bloku pro kopii v eclipse se to menuje "Set Mark" v eclipse "set-mark-commnad" v IDEA to nemumim najit a zase to neni spravne nastavene. Oznacovani pomoci Shift + kurzorove klavesy nedava moznosti si konec bloku dohledavat a strukturalni oznacovani zase kopiruje i to co kopirovat nechci.

Nevite kde tohle najdu? To je pro mne hodne dulezita zkratka.
Re:Re:Re:IntelliJ IDEA 9
benzin 7. 03. 2010, 15:40:45
Odpovědět  Odkaz 
Tak na to je specialni plugin. Na to kopirovani.
IntelliJ IDEA 9
Aichi 8. 03. 2010, 15:29:40
Odpovědět  Odkaz 
Comunity verze je už minimálně od verze 7, tedy žádná novinka to není. Co se mi na InteliJ ultra líbí je podpora JavaScriptu. Umí napovídat uživatelské funkce, umí parsovat JSDoc komentáře, pro větší projekty je to velký přínos.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz