JetBrains
Společnost JetBrains se sídlem v Praze působí na trhu programovacích nástrojů již deset let. Za svou existenci značně rozšířila své portfolio nabízených produktů, takže dnes kromě vlajkového produktu a předmětu naší recenze dodává nástroje pro programátory webu, Pythonu, Ruby a PHP (WebStorm, PyCharm, RubyMine a PhpStorm), nástroje zaměřené na platformu .NET (ReShaper, dotCover, dotTrace) a v neposlední řadě také nástroje pro projektový a týmový management (TeamCity, YouTrack).
Desátý rok, desátá verze. A čtyři hlavní novinky: přepracované doplňování kódu, rychlejší start, odepínatelné panely editorů a podpora platformy Android. Je toho podstatně více, ale začal bych těmito hlavními vlastnostmi.
Doplňování kódu
Doplňování kódu v nástroji IDEA bylo, je a patrně i stále bude tím nejlepším, se kterým jsem mohl kdy pracovat. Už v recenzích několik let zpátky jsem vyzdvihoval efektivnost a vysokou míru inteligence tohoto nástroje. Vývojáři se rozhodli jít dál a celý koncept přepracovali. Musím říct, že se mi znovu tají dech. Říkejme tomu, jak chceme, třeba Code Completition, Intelli Sense, Omni Sense nebo česky doplňování kódu. Stejně to pořád bude asi nejužitečnější věc, kterou může programovací prostředí nabídnout.
Tak za prvé. Je rychlé. Doplňování v desítce je rychlejší, než bylo. Je zřejmě nejrychlejším doplňováním, jaké můžete u javovských prostředích spatřit. Reakce je okamžitá, neobtěžuje, nezdržuje. Za druhé. Aktivuje se samo. Už není třeba mačkat klávesu [Control] a [mezerník]. Jak píšete, automaticky se objevuje a ve správném okamžiku stačí jen stisknout klávesu tabelátoru. Za třetí: je inteligentní. Je to staré známé chytré doplňování, tak jak ho známe. Jen je ještě o něco chytřejší.
Musím říct, že koncept automatického zobrazování kontextového doplňování s možností expanze přes klávesu tabelátoru není nový. Ve srovnání se starým způsobem je rychlejší, takže to je krok správným směrem. Dokáže to zase ušetřit nějaký ten čas, což se počítá. Ale vývojáři firmy JetBrains vše zvládli dokonale, a pokud mohu srovnávat s podobným konceptem například z prostředí WingIDE, musím uznat, že tohle je lepší. Nelze tuto funkci ukázat ani na obrázcích, ani na videu a už vůbec ne psaným slovem. To si prostě musíte vyzkoušet.
Start, odepínatelné panely a Android
Rychlejší start je často diskutované téma, já ho ale nepovažuji za důležité. Ráno prostředí spustím, večer jej vypnu (pak jej obvykle znovu spustím v noci). Ať se klidně spouští minutu, kafe obvykle piju déle. Tak špatné to nikdy nebylo, ale je pravda, že s přibývající funkčností se indexování projektů a vytváření různých cache souborů (těch má IDEA požehnaně) verzi od verze trošku zpomalovalo. V desítce je všechno pěkně rychlé, projekt s 50 MB čistě zdrojových kódů a JSP stránek (nepočítaje dalších souborů) je indexován v řádech sekund.
Odepínatelné panely editorů je funkce, která se hodí. Osobně velmi často využívám možnost „odepnutí“ nástrojového okna (často Debugger nebo VCS). S editorem to ale až do desítky nebylo možné. Nyní lze panel doslova „odtáhnout“ jinam (typicky na druhý monitor). Pěkná funkce.
Programovací platforma Android přestavuje vyspělou technologii pro vývoj mobilních aplikací. Doposud je na trhu oficiální podpora pro prostředí Eclipse přímo od společnosti Google a několik dalších řešení. IDEA se nyní přidává k útlému seznamu prostředí s podporou Androidu. Vše funguje tak, jak je uživatel prostředí IDEA zvyklý a vývojáři přidali i navíc integraci s Mavenem.
Další novinky
Z dalších nových funkcí bych zmínil vyspělejší podporu editace více jazyků v jednom souboru. Je to oblast, ve které IDEA vždy excelovala – široká podpora nejrůznějších technologií, frameworků a jazyků. V nové verzi vývojáři zapracovali na zlepšení automatické detekce kontextů. Ačkoli již v dřívějších verzích fungoval například JavaScript v HTML, desítka zvládá o mnoho složitější kontexty, jako je například například textový řetězec obsahující příkaz pro knihovnu Hibernate ve zdrojovém souboru Javy.
Čas od času programátor potřebuje editovat čistě textové soubory, které jsou umístěny s projektem. Mohou obsahovat různé poznámky a jiná textová data. Až doposud nebylo možné v editorech zapnout zalamování řádků (soft wrapping). Firma JetBrains vyslyšela volání svých zákazníků a funkci přidala nejen pro editory, ale také pro konzoli.
Přiznám se, že nejsem fanda vestavěné podpory VCS klientů přímo v programovacím prostředí a téměř výhradně se spoléhám na standardní konzolové nástroje, jako jsou git, svn nebo bzr. Řádkové klienty mají nespornou výhodu v dokonalé kontrole, a tak se nestane, že by člověk vytvořil vadný commit. Ale i přes to se to někdy podaří (pozdravuji kolegy). Jeden obrázek za všechny, říká se.
V desítce přibyla podpora pro VCS systém Mercurial, což jistě neurazí. Zato mě nejvíc potěšilo zbrusu nové okno Git log view, ve kterém jsem se začal téměř okamžitě orientovat. Silně totiž připomíná grafický nástroj gitk, který uživatelé systému Git dobře znají. Musím uznat, že zejména ve spojení se silným diffovacím nástrojem, který IDEA má, se jedná o skvělou novinku a řádkový klient git je možná do budoucna ohrožen.
Kromě vylepšení podpory Gitu přidali vývojáři také předem nakonfigurované hostingové služby, jako je GitHub. Po zadání jména a hesla prostředí zobrazí dostupné projekty uživatele s možností okamžitého naklonování. A konečně - kontrola překlepů při zadávání popisů ke commitům je také vítanou novinkou.
V databázovém pohledu lze nyní vytvářet tabulky pomocí návrhářů (tedy bez DDL SQL), výsledky unit testů lze exportovat do HTML, chybové výpisy (stacktraces) lze efektivně složit a tím zpřehlednit, závislosti v projektech používajících Maven lze zobrazit v diagramu. To jsou všechno další drobné vylepšení, na které uživatel v desítce narazí.
Speciálně linuxová verze dostala nový subsystém synchronizace projektů se změnami z vnějšku (external changes sync), což je velmi dobrá zpráva. Protože jsem měl možnost používat IDEU jak na Windows, tak i na Linuxu, musím uznat, že tady zcela jistě byl prostor ke zlepšování. Ten byl vyplněn.
A jako vždy umí nová verze zase o něco více frameworků. Přibyl velmi populární Spring Roo, aktualizována byla podpora pro GWT, Flex, ActionScript, Groovy, Grails, GSP, JSF, Cold Fusion, Scala, PHP a dalších knihoven a technologií.
Soutěž o licence
Odpovězte na dvě jednoduché otázky k tématu a vyhrajte jednu ze dvou licencí na IntelliJ IDEA Ultimate 10 pro Linux, Mac OS i Windows, které věnovala společnost JetBrains. Soutěž běží do pátku 14. ledna 2011, výherci budou zveřejněni ve čtvrtém týdnu 2011.
Kapitolu samu o sobě si zaslouží podpora jazyků Python, Ruby a technologií Django a Rails. Pro tyto jazyky (resp. frameworky) existují totiž oficiální zásuvné moduly přímo od společnosti JetBrains, které uživatel dostává naprosto zdarma. Obsahují v podstatě veškerou funkčnost produktů PyCharm a RubyMine, které se prodávají zvlášť. Spolu s vestavěným pluginem pro jazyky HTML, JavaScript a PHP uživatel v podstatě koupí hned pět produktů za jednu cenu.
Práce s technologiemi Ruby nebo Python je docela intuitivní a v duchu celého prostředí. Pro vytvoření projektu například pro jazyk Ruby je potřeba vytvořit (nebo importovat) nový projekt. V této chvíli je sice uživatel vyzván pro vytvoření (resp. import) projektu v Javě, ale v dalším kroku již lze přidat nový modul pro jazyk Ruby a využít všech výhod a možností prostředí. IDEA doplňuje kód, podtrhává chyby, navrhuje vylepšení, umožňuje ladit (debugger) nebo editovat šablony ERB a HAML. Stejné je to pro jazyk Python, PHP a další.
Kromě edice Ultimate, která je dostupná v ceně dvě stě dvaceti euro pro jednotlivce, mohou také vývojáři open-source projektů získat Ultimate edici zdarma. Studenti mají další slevy a k dispozici je také edice Community, která sice neobsahuje tolik funkcí, ale ty nejzákladnější (a nejdůležitější) přítomny jsou. Včetně podpory pro Javu, Maven, Ant, JUnit, Groovy, XML, Android, Subversion, Git, Mercurial a OSGi.
Vůbec jsem nezmínil drobné změny v uživatelském prostředí včetně nového stylu některých ovládacích prvků. Příděl novinek je opět velmi bohatý. Nezbývá než doporučit vyzkoušení trial verze. Test je lepší než tisíc slov.