BlueJ

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Ukázka pracovního prostředí BlueJ.

BlueJ je volně šiřitelné multiplatformní vývojové prostředí vyvinuté speciálně pro výuku objektově orientovaného programování v jazyce Java. Umožňuje studentům navrhovat diagram tříd vyvíjené aplikace ve zjednodušené verzi jazyka UML. Hlavní výhodou BlueJ je jeho interaktivnost – umožňuje vytvářet instance jednotlivých tříd, zasílat jim zprávy a volat jejich metody.

Prostředí BlueJ bylo vyvinuto v druhé polovině devadesátých let Michaelem Köllingem a Johnem Rosenbergem. V současné době (duben 2012) je dostupné ve verzi 3.0.7.

O programování v tomto prostředí vyšly nejméně 3 knihy:

  • česky Rudolf Pecinovský: Myslíme objektově v jazyku JAVA, 2. vyd.
  • česky Rudolf Pecinovský: OOP: Naučte se myslet a programovat objektově
  • anglicky David J. Barnes & Michael Kölling: Objects First with Java (A Practical Introduction using BlueJ), 4th ed

Kritika[editovat | editovat zdroj]

Ačkoliv je BlueJ určen právě pro výuku programování, dle názoru řady programátorů[kdo?] se ani k tomuto účelu vůbec nehodí. Dle jejich názoru se jedná o software, který je zcela nepoužitelný v reálném světě a jeho možnosti jsou extrémně omezené. Praxe ukazuje, že studenti v BlueJ dosahují výrazně horších výsledků než v reálně užívaných IDE, jež obsahují například kvalitní intellisense.[zdroj?]

Tabulátory[editovat | editovat zdroj]

BlueJ ani ve své aktuálně poslední verzi 3.1.0 stále nepodporuje tabulátory. V praxi to znamená, že při stisknutí tabulátoru doplní do kódu čtyři mezery namísto jednoho znaku tabulátoru. Ačkoliv se o používání mezer a tabulátorů vedou mezi programátory rozsáhlé spory, nemožnost podporu tabulátorů zapnout lze považovat za zásadní nedostatek - a to zejména z toho důvodu, že odsazení pak nelze odmazat jedním stisknutím klávesy backspace, ale je nutné jej stisknout celkem čtyřikrát. Praxe ukazuje, že studenti pak raději neodsazují a jejich kód je pak naprosto nečitelný a zcela chybně formátovaný.[zdroj?]

Spouštění kódu[editovat | editovat zdroj]

BlueJ neumožňuje spuštění celého projektu jednou klávesovou zkratkou. Je tak nutné projekt nejdříve ručně zkompilovat stisknutím tlačítka "Compile" v hlavním okně, poté otevřít kontextové menu dané třídy a zde zvolit konkrétní metodu ke spuštění. Objeví se dialogové okno nabízející možnost ručně doplnit parametry a teprve po odklepnutí tohoto dialogu se kód konečně spustí.

Tento zdlouhavý proces tak vede mladé budoucí programátory k tomu, aby nejprve napsali rozsáhlý kód a teprve poté jej spustili a opravili případné chyby.[zdroj?] Tento špatný návyk se poté budou v praxi velmi obtížně odnaučovat, neboť testovat je nutné okamžitě.[zdroj?] Pouze tak si člověk ověří, že jím zapsaná konstrukce se skutečně chová tak, jak by očekával.

Smart home[editovat | editovat zdroj]

BlueJ nezvládá tzv. smart home, neboli přemístění kurzoru na skutečný začátek řádky (tzn. před první nebílý znak) při stisknutí klávesy home. Namísto toho vždy přesune kurzor na první sloupec, který však ve většině případů kvůli obsazení žádný znak neobsahuje. Programátor se pak musí přesouvat na první slovo, které se nachází až více napravo.

Intellisense nad názvy tříd z přilozených knihoven[editovat | editovat zdroj]

BlueJ nedokáže doplňovat názvy tříd. Zatímco například ve vývojovém prostředí Eclipse se automaticky prohledávají názvy tříd ze všech přiložených knihoven a dokonce je lze i jednou klávesovou zkratkou naimportovat, v BlueJ je nutné vše zapisovat ručně. Je tedy nutné přesně znát fully-qualified názvy všech užívaných tříd a ručně zapisovat i všechny importy (kterých jsou velmi často i desítky).

Hlášení chyb[editovat | editovat zdroj]

Zatímco kritické chyby při kompilaci jsou hlášeny rovnou do stavového řádku aplikace, varování jsou hlášeny vyskočením dialogového okna. V praxi užívaná IDE kód analyzují průběžně a veškeré chyby oznamují ihned po napsání kódu. Pokud tedy programátor někde zapomene závorku, dozví se to okamžitě. V BlueJ musí nejprve ručně spustit kompilaci a teprve poté se dozví, že v kódu udělal takto banální chybu.

Prohlížení zdrojových kódu[editovat | editovat zdroj]

BlueJ neumí otevírat zdrojové kódy, které jsou uložené samostatně. Umí otevřít pouze jiný projekt, který již byl vytvořen v BlueJ.

Adresářová struktura projektu[editovat | editovat zdroj]

BlueJ generuje amatérsky vypadající adresářovou strukturu. Přímo v kořenovém adresáři projektu se mixují zdrojové kódy se zkompilovanými *.class soubory a dále soubory *.ctxt, které slouží interně pro BlueJ. Tím se u mírně rozsáhlejších projektů zásadně komplikuje například zálohování či odevzdávání prací (hodnotitel práce si projekt obvykle zkompiluje sám).[zdroj?]

V adresáři se dále nachází adresář doc. Je nutné podotknout, že jednotlivé balíky (package) v Javě jsou pouhopouhé podadresáře. Vytvoření nových balíků by tak mělo za následek, že budou na stejné úrovni ve stromové hierarchii, jako je adresář obsahující dokumentaci. Pokud by se programátor pokusil vytvořit přímo balík doc, dočkal by se nehezké a neomluvitelné chyby při kompilaci.

Externí odkazy[editovat | editovat zdroj]