V dnešním článku se seznámíme s projektem Eclipse. Jedná se o propracovanou a univerzální aplikaci, která se velmi často používá ve funkci integrovaného vývojového prostředí, především pro vývoj programů v Javě. Ve skutečnosti jsou však možnosti Eclipse mnohem větší, Eclipse totiž může díky svému systému přídavných modulů (pluginů) velmi dobře posloužit i pro vývoj aplikací v programovacích jazycích C, C++, Python, PHP (dokonce i pro Fortran či COBOL). Kromě toho existují pluginy pro tvorbu XML souborů, správu webových aplikací atd. Eclipse se taktéž používá pro vývoj takzvaných RCP aplikací (Rich Client Platform) využívaných především ve vnitrofiremních projektech.

Základní informace o projektu Eclipse

Vývoj projektu Eclipse byl zahájen na přelomu tisíciletí ve společnosti IBM a v současnosti se jedná o aplikaci šířenou pod licencí EPL. EPL je licence v některých ohledech poněkud odlišná od známé GNU GPL, to však nijak neovlivňuje možnosti použití Eclipse ve funkci IDE. Původně se mělo jednat o integrované vývojové prostředí (IDE), které mělo představovat alternativu k tehdy již existujícímu prostředí Visual Age založenému na programovacím jazyku Smalltalk (toto prostředí je nicméně stále nabízeno, používáno a existuje okolo něj loajální komunita).

Obrázek 1: Ukázka použití Eclipse ve funkci IDE pro vývoj aplikací v Javě.

Eclipse však je, na rozdíl od zmíněného prostředí Visual Age, postaveno na programovacím jazyku Java, čímž je zaručena jeho poměrně snadná přenositelnost na různé platformy. Samotné jádro projektu Eclipse je relativně malé, zejména v porovnání s některými „monolitickými“ vývojovými prostředími, ovšem díky koncepci rozšiřujících modulů je možné do Eclipse přidávat další funkce – nové typy editorů, podporu pro další programovací jazyky, ladicí nástroje, profilery, návrháře grafického uživatelského rozhraní, napojení na aplikační servery atd.

Obrázek 2: Pro Eclipse dnes existuje velké množství různých přídavných modulů (pluginů). Na tomto obrázku je ukázán editor programovacího jazyka COBOL používaného v současnosti převážně na mainframech.

Společnost IBM navíc v rámci vývoje platformy Eclipse iniciovala i vznik grafického frameworku SWT, který zaručuje, že se Eclipse bude chovat na všech operačních systémech podobně, jako nativní aplikace (což je významný rozdíl oproti frameworku Swing, jenž je standardní součástí JRE i JDK). Mimochodem: framework SWT lze použít i mimo vlastní Eclipse při tvorbě samostatných javovských aplikací a právě díky „nativnímu“ vzhledu je využíván i v mnoha korporátních aplikacích.

Obrázek 3: V současnosti se Eclipse používá taktéž pro vývoj aplikací určených pro operační systém Android.

Instalace Eclipse ve Fedoře

V této kapitole si popíšeme, jakým způsobem se provádí instalace Eclipse ve Fedoře 16. Před vlastní instalací tohoto vývojového prostředí je nutné se zamyslet nad tím, pro jaké účely se bude Eclipse používat. Pokud se bude jednat o vývoj aplikací vytvářených především v Javě, bude pro instalaci nejvhodnější zvolit balíček Eclipse JDT (Java Development Toolkit), pro vývoj v programovacích jazycích C a C++ je určen projekt Eclipse CDT (C/C++ Development Toolkit), vývoj v Pythonu je podporován v modulu Pydev, vývoj webových aplikací v Eclipse WTP (Web Tool Platform) atd. Všechny tyto balíčky vyžadují i balíček Eclipse Platform a samozřejmě i JRE (běhové prostředí Javy).

Obrázek 4: Instalace aplikace Eclipse pomocí grafického instalátoru Fedory spuštěného z Gnome Shellu (Fedora 16).

V dnešním článku i v navazujících dílech se zpočátku zaměříme především na vývoj aplikací s využitím programovacího jazyka Java. Z tohoto důvodu zvolíme pro instalaci projekt Eclipse JDT, který je dostupný v balíčku nazvaném „eclipse-jdt“. V závislosti na preferencích uživatele je možné pro instalaci využít buď služeb grafického instalátoru spuštěného v prostředí Gnome Shellu, nebo lze instalaci provést alternativně z příkazového řádku (samozřejmě s právy superuživatele). Obě možnosti instalace Eclipse JDT jsou zobrazeny na obrázcích číslo 4 a 5. V obou případech se jedná o instalaci do Fedory 16 s Gnome Shellem.

Obrázek 5: Instalace aplikace Eclipse a všech knihoven, na nichž tato aplikace závisí, s využitím příkazu „yum“ spouštěného z příkazové řádky (s právy superuživatele).

Po instalaci aplikace Eclipse se v grafickém prostředí Gnome Shellu objeví nová ikona sloužící pro spuštění tohoto vývojového prostředí:

Obrázek 6: Ikona sloužící pro spuštění aplikace Eclipse z prostředí Gnome Shellu. Tuto ikonu naleznete ve skupině Programming.

Pracovní plochy (workspaces)

Některé koncepty, které jsou využívané v integrovaném vývojovém prostředí Eclipse, jsou pro tento projekt specifické a mnohdy je v jiných integrovaných vývojových prostředích nenajdeme. Jedná se především o koncept takzvaných pracovních ploch (workspaces), automatické či manuální přepínání mezi perspektivami (perspectives) a částečně taktéž o využití pohledů (views) a různých interních editorů (editors). Nejdříve si řekněme, co se skrývá pod pojmem pracovní plocha. Zjednodušeně řečeno se jedná o adresář (resp. složku), do něhož jsou implicitně ukládány jednotlivé projekty, s nimiž se v Eclipse pracuje.

Obrázek 7: Při prvním spuštění Eclipse je nutné v tomto dialogu vybrat umístění pracovní plochy v souborovém systému.

Součástí pracovní plochy je taktéž konfigurace vlastního vývojového prostředí i konfigurace jednotlivých zásuvných modulů (plugins). Pro zajímavost: tyto informace se nachází v podadresáři se jménem „.metadata/.plugins“. S výběrem pracovní plochy se ve skutečnosti setkáte ihned při prvním spuštění Eclipse – prostředí nabídne adresář reprezentující pracovní plochu, který je samozřejmě možné změnit (viz též obrázek číslo 7). Adresář s pracovní plochou lze přenést i na jiný počítač a tam ho vybrat v lokální instalaci Eclipse. Pokud jsou na tomto počítači nainstalovány všechny potřebné zásuvné moduly, neměl by nastat s přenosem celé pracovní plochy žádný problém.

Obrázek 8: Projekty (jakým je i tento projekt naprogramovaný v Javě) se implicitně ukládají do adresáře s pracovní plochou.

Pracovních ploch může existovat libovolné množství a lze se mezi nimi přepínat s využitím volby File -> Switch Workspace. Při přepnutí na jinou pracovní plochu dojde k restartu celého Eclipse, protože se musí změnit konfigurace celého vývojového prostředí, včetně přídavných modulů. Někteří uživatelé Eclipse preferují používání pouze jediné pracovní plochy pro všechny své projekty, jiní na druhou stranu aktivně využívají více pracovních ploch – zejména tehdy, pokud například pracují na zcela odlišných projektech a chtějí mít jistotu oddělené konfigurace všech součástí Eclipse.

Obrázek 9: Příkaz pro přepnutí pracovní plochy lze najít v menu File.

Perspektivy (perspectives)

Dalším konceptem, s nímž se při práci v Eclipse dříve či později (spíše však dříve) setká každý uživatel, je koncept takzvaných perspektiv (perspectives), jejichž princip může být zpočátku pro nové uživatele možná poněkud matoucí, nicméně se jedná o velmi užitečnou technologii. Tvůrci projektu Eclipse si totiž uvědomili, že vývojáři při různých činnostech používají odlišnou konfiguraci pracovní plochy. Například při editaci zdrojového kódu preferují, aby co největší plocha obrazovky byla obsazena vlastním editorem, při ladění aplikace je (kromě zdrojového kódu) taktéž nutné zobrazit obsah proměnných a zásobník volání, dalším režimem činnosti je porovnávání dvou či více verzí zdrojových kódů (zejména při synchronizaci lokální kopie projektu s repositářem) atd.

Obrázek 10: Standardní rozložení oken v perspektivě nazvané „Java“. Tato perspektiva se používá při editaci zdrojových kódů.

Aby nebylo s každou změnou režimu činnosti vývojového prostředí (například při přechodu od editace zdrojových kódů k ladění aplikace) nutné složitě měnit způsob rozmístění oken Eclipse na obrazovce, je konfigurace oken i většiny dalších ovládacích prvků ukládána v takzvaných perspektivách, přičemž základní nastavení perspektiv (včetně jejich jména) je již připraveno tvůrci jednotlivých přídavných modulů. To však neznamená, že by se jednalo o neměnné nastavení. Ve skutečnosti je tomu právě naopak, protože Eclipse si pamatuje rozmístění oken v každé perspektivě a posléze toto rozmístění při přepnutí perspektiv využije.

Obrázek 11: Standardní rozložení oken v perspektivě „Java Browsing“, kterou využívají především vývojáři pracující na rozsáhlých projektech.

Jakým způsobem se však s perspektivami pracuje? Je to ve skutečnosti velmi jednoduché, protože samotné prostředí Eclipse dokáže při přepnutí činnosti (viz například již zmíněné spuštění programu v debuggeru) vybrat správnou perspektivu; dokonce se při přepínání zeptá, jestli se má jednat o implicitní chování. Perspektivu je kdykoli možné přepnout i pomocí ikon zobrazených v pravém horním rohu (velikost plochy pro ikony lze zvětšit myší, což je většinou nutné), popř. lze využít i příkaz Windows Open Perspective dostupný z hlavního menu Eclipse.

Obrázek 12: Standardní rozložení oken v perspektivě „Debug“, což je perspektiva používaná – jak plyne z jejího jména – především pro ladění programů (napsaných v Javě).

Pohledy (views) a editory (editors)

V jednotlivých perspektivách Eclipse jsou zobrazovány prvky grafického uživatelského rozhraní, které se podle své funkce nazývají pohledy (views) a editory (editors). Pod pojmem editor si můžeme představit například běžný textový editor, který je v Eclipse použit pro editaci konfiguračních souborů či souborů s koncovkou .txt. Kromě toho však každý přídavný modul může obsahovat další editory, což je v případě Eclipse JDK především editor zdrojových kódů napsaných v Javě (viz též obrázek číslo 8, na němž je zobrazena plocha obsahující dva tyto editory umístěné do tabů, nebo též obrázek číslo 2 se specializovaným editorem COBOL).

Obrázek 13: Úvodní dialog zobrazený při prvním spuštění Eclipse lze považovat za jeden z pohledů.

Pohledem se pak označuje jiný typ prvku grafického uživatelského rozhraní, například prvek zobrazující stromovou strukturu projektu (Package Explorer), prvek se strukturou tříd (Outline), chybová konzole atd. Většina perspektiv je zpočátku nakonfigurována takovým způsobem, že obsahuje větší plochu určenou pro zobrazení editorů a potom několik okrajových oblastí, do nichž se umisťují pohledy. Jak editory, tak i pohledy lze samozřejmě přemisťovat (nejjednodušší je využít myš) a dokonce je lze vytáhnout z plochy hlavního okna Eclipse do samostatného okna, čehož se často využívá na počítačích s dvojicí monitorů.

Obrázek 14: Pohledy a editory mohou být buď uchyceny v hlavním okně Eclipse, nebo je lze myší „vytáhnout“ z hlavního okna a osamostatnit je. To je vhodné zvláště při použití počítače se dvěma či více monitory.

Obsah následující části článku

V navazujícím článku si řekneme, jakým způsobem je možné využít některé vlastnosti integrovaného vývojového prostředí Eclipse při tvorbě a úpravách aplikací napsaných v programovacím jazyku Java. Postupně si ukážeme, jak se vytvoří nový projekt, jakým způsobem se využívají pohledy „Package Explorer“ a „Outline“ a taktéž si popíšeme základní funkce používané při refaktoringu zdrojových kódů (díky asistenci Eclipse při refaktoringu je možné ušetřit velmi mnoho času při editaci zdrojových kódů). Kromě toho se zmíníme i o vlastnostech inkrementálního překladače, který je součástí Eclipse (jedná se o technologii umožňující neustálý překlad tříd na pozadí s vyhledáváním chyb ve zdrojovém kódu).