Když se před dvěma roky začal prudce šplhat vzhůru po žebříčku
popularity nový programovací jazyk Java, jeho tvůrce ve své
nabídce vývojových nástrojů Java Development Kit (JDK) tak
trochu přehlédl macovskou platformu a vlastně ji přehlíží
dodnes. Zatímco uživatelé Windows a mnoha unixových systémů již
dávno mají k dispozici JDK 1.1, na Macu na tuto novou verzi
stále (září 1997) ještě čekáme. To ovšem neznamená, že by Macy
byly pro vývoj produktů v Javě méně vhodné, právě naopak.
Iniciativity se totiž chopili třetí výrobci i samotná firma
Apple a dnes jsou k dispozici vývojové nástroje, které předčí
podobné produkty na všech ostatních počítačových platformách
minimálně v tom, co je Macu vlastní, totiž ve snadném ovládání.
Mezi prvními firmami, které nabídly vývojové prostředí pro Javu
na Maca, byla společnost Natural Intelligence (www.natural.com)
se svým produktem Roaster. Po několika vývojářských verzích
přišla letos na trh první finální verze tohoto produktu, Roaster
3.0, kterou již ovšem nabízí nově založená společnost Roaster
Technologies (www.roaster.com).
Roaster 3.0 je integrované vývojové prostředí, vytvořené
speciálně pro tvorbu apletů a aplikací v jazyce Java. Svým
snadným ovládáním a vysokou funkčností je vhodné pro začátečníky
i pro profesionální uživatele pracující s tímto programovacím
jazykem (méně vhodné je pro kombinaci Javy s dalšími jazyky). V
jednom balíku najdete vše, co pro práci s programy v Javě
potřebujete: od editoru zdrojového textu a správce projektů,
přes kompilátor do bajtového kódu až po výborné ladicí
prostředí. Vše je integrováno do jednoho celku se snadno
ovladatelným uživatelským rozhraním, které vývoj dále urychluje.
Editor
Již samotný vestavěný editor zdrojových textů v Roasteru může
tvorbu programů v Javě výrazně usnadnit, zvlášť pokud jste dosud
pro jejich psaní používali běžný textový editor. První, čeho si
na něm všimnete, je barevné a stylové rozlišení různých částí
textu podle jejich funkce v programu (viz obrázek 1). Jinou
barvu tak mohou mít klíčová slova, jinak jsou zobrazeny řetězce,
komentáře a ostatní text. Způsob zobrazení lze uživatelsky
nastavit a každý tak může editor uzpůsobit svým zvyklostem.
Kromě Javy rozpoznává Roaster také syntax jazyků C, C++, SQL a
HTML, což znamená, že i u textů v těchto jazycích můžete využít
barevné a stylové rozlišení částí textu.
Editor v Roasteru také umí text automaticky formátovat a dodat
tak přehledné odsazení bloků programu a zarovnání odpovídajících
si složených závorek. Na rozdíl od syntaktického rozlišování ale
není formátování uživatelsky přizpůsobitelné. Pokud tedy
používáte vlastní styl formátování, musíte si všechno dělat sami.
Každé editační okno obsahuje lištu s nástroji, ve které
například najdete několik samostatných schránek pro kopírování
textu, můžete si zde uložit záložky nebo vybráním názvu metody z
nabídky přejít přímo na místo, kde je metoda definována. Tato
lišta je plně uživatelsky konfigurovatelná a lze ji tedy
uspořádat a obohatit o další funkce zcela podle vlastního přání.
Příjemnou práci s editorem dále usnadňují drobnosti typu
zvýraznění odpovídající otevírací závorky při zápisu uzavírací
závorky nebo podpora funkce táhni a pusť pro přenášení textu.
Editor také umí přehledně zobrazit přeložený bajtový kód, ten
ale přirozeně nejde upravovat.
Roaster obsahuje poměrně silnou vyhledávací funkci, podporující
vyhledávání použitím regulerních výrazů. Vyhledávat lze nejen v
aktuálním dokumentu, ale také v dalších souborech.
Správce projektů
Při tvorbě komplikovanějšího softwaru se, nejen z důvodu
přehlednosti, téměř vždy používá více souborů se zdrojovým
textem. Nejinak je tomu i u jazyka Java, kde vlastně tvorba
každého apletu zahrnuje minimálně dva soubory, zdrojový text
apletu a HTML dokument s odkazem na aplet.
Pro přehlednost jsou v Roasteru informace o používaných
dokumentech uloženy do jediného souboru, tzv. projektu, ze
kterého lze potom přistupovat k libovolnému zahrnutému
dokumentu. Nejen že odtud můžete dokument zobrazit v editoru,
ale máte zde také okamžitý přehled o všech třídách a jejich
metodách, jež jsou v dokumentu definovány.
Právě přehledné zobrazení hierarchie tříd, jejich dat a metod,
je pro snadný vývoj softwaru v objektově orientovaných jazycích
typu Java klíčové. Roaster proto nabízí dvě možnosti snadného
přístupu k datům a metodám jednotlivých tříd (samozřejmě kromě
přímého editování zdrojového textu). Chvíli mi ale trvalo, než
jsem se k těmto skvělým funkcím dostal, protože jsou zcela
nečekaně ukryty pod nabídkou File-New.
V okně Class Browser lze zobrazit seznam všech tříd včetně metod
a dat zvolené třídy. V dolní části okna je potom editor, takže
lze třídu, tj. kód jejích metod a definici dat, hned na místě
upravovat. Možná ještě působivěji, alespoň graficky, působí okno
Class Tree , které, jak napovídá název, zobrazuje hierarchickou
strukturu tříd zachycující dědičnost formou stromu. Opět lze u
zvolené třídy zobrazit její metody a data, a hned je také vidět,
co třída zdědila od své rodičovské třídy (viz obrázek 2).
Při tvorbě nového projektu nabízí Roaster "čaroděje", jenž po
zodpovězení několika jednoduchých otázek typu "vytváříte aplet
nebo aplikaci?" vygeneruje potřebné soubory s kostrou, kterou
stačí doplnit vlastním kódem. Do projektu lze samozřejmě
průběžně přidávat další soubory, nebo je naopak odebírat. Díky
projektu také nemusíte ručně kompilovat jeden soubor za druhým,
ale příkazem Make necháte zkompilovat vše, co je potřeba.
Kompilátor a Java VM
Roaster nepoužívá vlastní kompilátor Javy, místo něj je vestavěn
standardní kompilátor javac, který je vlastně také napsán v
Javě. Kompilace mi osobně připadala poměrně pomalá (a nešla
přerušit), na druhou stranu je možné Roaster díky zásuvné
architektuře rozšířit o libovolný kompilátor napsaný v Javě.
Kompilátor překládá zdrojový text programu do bajtového kódu,
který lze ihned vyzkoušet v aplikaci Roaster Runner. Ta
tentokrát sází na vlastní virtuální stroj Javy, který je slušně
rychlý. Virtuální stroj s JIT (just-in-time) kompilátorem je
dokonce nejrychlejší na platformě Macintosh, a navíc běží na
PowerPC i na starších 68k. Zatím je podporována "Java 1.0.2",
verze Roasteru 3.1, jež bude zdarma dostupná jako upgrade verze
3.0, bude moci využívat virtuální stroj MRJ 2.0 od Applu (ten
bude podporovat Javu 1.1, ale zatím není dostupný). Dnes ještě
většina javovských produktů pro Macy používá podobně jako
Roaster vlastní virtuální stroje Javy, s integrací MRJ (Mac OS
Runtime for Java) do systému lze ale očekávat jejich postupný
přechod na tuto systémovou technologii, podobně jako producenti
digitálního videa využívají QuickTime.
Roaster je také schopen vytvářet samostatně spustitelné aplikace
tak, že k bajtovému kódu přibalí vlastní virtuální stroj (asi
1,7 MB). Takové aplikace potom nepotřebují žádný další virtuální
stroj a běží jako každá jiná macovské aplikace. To je trochu
jiný přístup, než jaký se používá pro vytváření spustitelných
aplikací pomocí JBindery v MRJ SDK. Tyto aplikace jsou potom
také spustitelné poklepáním, vyžadují ale přítomnost virtuálního
stroje MRJ v systému. Roaster v budoucnu na tuto metodu také
přejde.
Debugger
Jedním z nejdůležitějších a nejnáročnějších kroků při vývoji
softwaru je jeho ladění. Roaster proto obsahuje vestavěný
debugger (viz obrázek 3), který umožňuje provádět program krok
za krokem a přesně sledovat jeho chování. Volit lze mezi
procházením bajtové nebo zdrojové verze kódu (je-li dostupný
zdrojový kód) a k dispozici jsou běžné ladicí nástroje pro
provedení dalšího kroku programu. Uživatel si může nechat
zobrazit hodnoty lokálních proměnných (nejde je ale měnit) nebo
volací sekvenci procedur. Při zobrazení běhového zásobníku a
okna Threads ale debugger vytrvale hlásil chyby, takže tato okna
nešlo používat.
Vestavěný debugger odpovídá snadností ovládání celému prostředí
Roasteru. Okna jsou přehledně uspořádána, takže ho můžete ihned
začít používat bez dlouhého studování manuálu.
Dokumentace
V poslední době se stalo zvykem, že dokumentace softwaru je
dodávána v elektronické podobě jako soubor formátu PDF, a
nejinak je tomu i u Roasteru (prohlížecí program Adobe Acrobat
Reader je přiložen). Na CD s programem byla bohužel ještě
neúplná dokumentace, kompletní verzi je možné nahrát z Webu.
Přiložena je také programová dokumentace jazyka Java s popisem
"vestavěných" tříd, jejich metod a dat. Tuto dokumentaci lze
kdykoliv vyvolat z editoru, trochu mi v ní ale chyběly příklady
použití a přesný popis toho, co daná metoda dělá.
Hovoříme-li o dokumentaci, neměli bychom opomenou schopnost
Roasteru automaticky generovat "dokumentaci" vytvářených
programů v podobě HTML stránek.
Další software
Síla Roasteru 3 není jen v integrovaném vývojovém prostředí, ale
také v množství dalšího softwaru, který dostanete jako
standardní součást dodávky. Přímo od Roaster Technologies
pochází vývojová verze softwaru Interface Brewer pro vizuální
tvorbu uživatelského rozhraní. Z tohoto pohledu je neméně
zajímavá přítomnost knihovny prvků Netscape Internet Foundation
Classes pro tvorbu uživatelského rozhraní spolu s Netscape IFC
Constructorem, což je javovská aplikace pro grafickou tvorbu
rozhraní použitím IFC (viz obrázek 4). Určitě užitečný je i
balík JDBC (Java Database Connectivity) od OpenLink Software pro
napojení javovských programů na ODBC databáze. Dále zde najdete
knihovny pro práci s 3D objekty (J3D SpaceCrafter), sadu pro
tvorbu tabulek, stromů apod. Samozřejmostí je také přítomnost
celé řady vytvořených apletů, z nichž mnohé jsou doplněny
zdrojovým textem.
Shrnutí
Roaster vyniká uživatelsky příjemným rozhraním, které tvorbu
Java apletů i aplikací zrychluje a usnadňuje. Za vyzdvižení
stojí snad vše, co obsahuje, od editoru přes Browser a Class
Tree okna až po debugger (i s jeho chybami). A to jsme se
nezmínili o možnosti tvorby přenositelných zip souborů nebo o
podpoře skriptovací technologie AppleScript.
7 0........../DĚD
Roaster 3.0
K recenzi poskytla firma: Roaster Technologies, 725 Concord
Avenue, Cambridge, Massachusetts 02138, U.S.A.
www.roaster.com
Cena: USD99
Obrázky:
1) Editor v Roasteru přehledně rozlišuje syntaktické prvky kódu
(editor.tif)
2) Browser a Class Tree nabízejí snadný přístup ke třídám,
jejich metodám a datům (classes.tif)
3) Ladicí prostředí Roasteru je přehledné a snadno ovladatelné
(debug.tif)
4) Netscape IFC Constructor nabízí vizuální tvorbu uživatelského
rozhraní (IFC.tif)