Programování

První pohled na Borland's JBuilder IDE

V červnu 1995, když jsem poprvé slyšel, že Borland bude vyrábět Java nástroj, byl jsem docela potěšen. Borland byla jediná společnost, která dala průchod franšíze jazyka Visual Basic, kterou Microsoft vytvořil. Dále je vývojové prostředí společnosti Borland v Delphi považováno mnoha (včetně mě) za nejlepší nástroj pro rychlý vývoj aplikací (RAD) na trhu. Koncem roku 95 jsem tedy s velkým vzrušením koupil Borland C ++ 5.0 s podporou Java.

Úsilí Borlandu bohužel zůstalo hodně žádoucí. Jednou z největších nevýhod produktu bylo, že podpora Javy byla spíše doplňkovým modulem pro C ++, než samotným nástrojem. Problém s tímto přístupem spočívá v tom, že Java nebyla úplně stejná jako C ++, pokud jde o její kompilační jednotky, soubory objektů a cíle kompilace. V Javě zkompilujete soubor třídy do objektu, který můžete okamžitě vytvořit instanci s jinými objekty, které jsou již v systému. Neexistují žádné cíle „.exe“ a „.dll“, které jsou modelem používaným v obecném C ++ IDE. Budování tříd bylo tedy těžkopádné, dokumentace téměř neexistovala a zkušenost byla zcela neuspokojivá. Kompilátor C ++ však fungoval skvěle.

V patách doplňkového produktu C ++ se slovo rychle dostalo k „Latte“, což je kódový název prostředí IDE, na kterém se chystali inženýři ze skupiny Delphi pracovat a který byl napsán kompletně v Javě. Ambiciózní projekt byl sužován zpožděním; předvedla se na první vývojářské konferenci JavaOne v San Francisku v roce 1996 a poté znovu na JavaOne '97. Nakonec byl vydán jako JBuilder.

Rychlá prohlídka JBuilderu

JBuilder sdílí mnoho běžných témat se světem Delphi a cítí se dostatečně podobný nástrojům Symantec Visual Cafe. Bylo tedy pro mě snadné začít s JBuilderem - i bez přečtení dodané dokumentace. (Když já dělal máte dotaz, dokumentace byla poměrně úplná, pokud jde o popis dostupných možností.)

Prostředí se skládá z „ovládacího panelu“, což je okno plovoucího panelu nástrojů, „okna procházení“ s ovládacím prvkem vrstveného stromu vlevo a okna pro prohlížení vpravo. Existuje pouze jeden ovládací panel, ale lze otevřít několik oken prohlížeče.

Ovládací panel, který je zobrazen níže, se skládá ze standardních příkazů nabídky v horní části, palety nástrojů vlevo, které poskytují zkratky k položkám nabídky, a kolekce komponent (JavaBeans), které jsou k dispozici pro použití ve vaší vizuální aplikaci nebo applet. Pod paletou nástrojů a komponentami je stavový řádek, který je aktualizován s jakoukoli aktivitou probíhající v aktuálním čase.

Okno prohlížeče je zobrazeno níže. Toto okno je místo, kde pracujete se svým zdrojovým kódem, HTML nebo Java. Nad tímto je ovládací panel, který vám umožní zahájit akce (například znovu sestavit) a uchovává vaše kolekce JavaBeans pro použití ve vašich vlastních aplikacích. Dále každé okno prohlížeče může zobrazit projekt, který v něm probíhá, takže pokud pracujete na více projektech - například na novém JavaBean a aplikaci, která jej používá - můžete mít oba projekty otevřené najednou a snadno se mezi nimi pohybovat . Tato schopnost na mě udělala dojem, protože podporuje nejběžnější vývoj v Javě a mění několik různých částí najednou. V jednom okně prohlížeče může být projekt tříd nástrojů, v jiném prohlížeči applet, který tyto třídy používá, a ve třetím soubor stránek HTML, které tento applet používají.

Okno prohlížeče je rozděleno svisle - se stromovým zobrazením souborů vlevo a prohlížečem vpravo. Vertikální rozdělení se nazývá „opona“. Uživatelské rozhraní společnosti Borland vám umožňuje odstranit oponu, pokud chcete zobrazit zdrojový kód, na kterém pracujete, na celou obrazovku. Pod každou polovinou okna prohlížeče jsou ovládací karty, které mění sémantiku samotného zobrazení.

Při prohlížení zdrojového kódu Java jsou záložky v polovině prohlížeče označeny jako source, design a doc.

  • Karta Zdroj vám jednoduše zobrazí zdrojový kód a můžete jej upravit pomocí přiloženého editoru zvýraznění syntaxe.

  • Karta Návrh zobrazuje vizuální pracovní prostor, kde existují všechny informace o uživatelském rozhraní, které jste definovali. Například pokud váš zdrojový kód obsahoval definice panelu, tlačítka atd., Je tento panel oblastí pro přetahování, kde můžete tyto informace vytvořit.

  • Na kartě dokument se zobrazuje dokument HTML, který je generován z vnořených komentářů ve zdrojovém kódu. Dokument HTML lze extrahovat pomocí JavaDoc, nicméně neexistuje žádný automatizovaný způsob, jak tento dokument vygenerovat.

Snad jedním z nejchytřejších aspektů implementace prohlížeče je to, že když procházíte soubor třídy, prohlížeč načte soubor třídy a dekompiluje jej natolik, aby vám ukázal strukturu zdrojového kódu. To může být velmi užitečné, pokud jste zvyklí číst zdroj, místo abyste se dívali na diagram objektů. Dále, když vyberete některou ze standardních tříd Java nebo vlastní třídy Borland, kliknutím na záložku doc ​​vrátíte stránku JavaDoc pro danou třídu. To vám umožňuje dělat věci jako: zvýraznit třídu systému, vybrat „procházet vybraný symbol“ a zobrazit rekonstruovaný zdroj nebo dokumentaci ke třídě. Dávám přednost této metodě, která zachovává formátování HTML, které je vloženo do dat JavaDoc, před systémy, které převádějí dokumentaci Java do souborů „nápovědy“ společnosti Microsoft.

Debugger JBuilder

Psaní kódu je samozřejmě snadné. Začíná to tvrdě fungovat. Snad nejdůležitější funkcí jakéhokoli IDE je jeho debugger. Naštěstí ladicí program Borland JBuilder nezklame. Níže je uveden snímek obrazovky debuggeru.

Při ladění se okno prohlížeče překonfiguruje tak, aby podporovalo sledování stavu vaší třídy. Zobrazení stromového strukturovaného souboru je rozděleno do horního okna obsahujícího stav vlákna a dolního okna obsahujícího informace o aktivních proměnných. Levá polovina prohlížeče také získá v dolní části některé další ovládací prvky karty, které řídí činnost debuggeru.

Vyskakovací okna navíc zobrazí hodnotu proměnné ve zdrojovém okně stejným způsobem, jakým funguje ladicí program společnosti Symantec. Jsou k dispozici všechny standardní funkce ladění: jeden krok, sledovací body, body zlomu, podmíněné body zlomu atd. Za zmínku stojí podpora vláken, která je vynikající. V okně podprocesu v levém horním rohu můžete kliknout na aktuálně prováděný řádek libovolného kódu v libovolném vlákně a na toto místo v kódu se objeví okno zdroje. Dále bude v levém dolním okně zobrazen jakýkoli místní a globální stav, který je pro dané vlákno viditelný. Debugger JBuilderu rozhodně představuje nový standard, proti kterému budou měřeny ostatní debuggery Java.

Na levé straně okna zdroje jsou malé tečky označující čáry, kde lze instalovat zarážky. Kliknutím na tečku se zvýrazní čára a zobrazí se symbol zarážky. Další užitečnou funkcí je „běh na kurzor“ - pro ty časy, kdy nechcete procházet každou iterací a pro smyčka. Jednoduše klikněte na řádek, vyberte možnost „spustit na kurzor“ a spuštění se zastaví přímo tam.

Zpracování výstupu

Poslední oblastí, ve které jsem zjistil, že JBuilder je obzvláště užitečný, bylo zpracování výstupu z provádění aplikace Java. Protokol provádění je okno, které obsahuje všechna data odeslaná do System.out z aktuálního běhu. Když je však otevřeno více projektů, protokol provádění udržuje pro každý projekt samostatné karty! Příklad toho je uveden níže.

Jak vidíte na obrázku, jsou zde dvě karty, jedna pro „příklad“ a druhá pro „BASIC“, aktuální projekt. Toto oddělení je nezbytné při vytváření více knihoven tříd najednou, protože vám brání ve smíchání výstupu ze dvou projektů.

Co se mi na JBuilderovi líbí

Někdy jsou to maličkosti. Já opravdu jako by jeden mohl tisknout zdrojový kód Java na barevnou tiskárnu a nechat to vyjít se svými fonty a zvýrazněním syntaxe neporušené. Kdybych mohl přizpůsobit záhlaví a zápatí stránky a určit výstup "dva nahoru" (dvě stránky zdrojového kódu vytištěné vedle sebe na výstupní stránce na šířku), bylo by to perfektní.

Podpora Java 1.1 je velmi pěkná. Zatímco JDK 1.1 je již nějakou dobu mimo a společnost Symantec má podporu beta verze 1.1, není nic jako mít IDE, které je od základu navrženo pro práci s 1.1.

Jak jsem uvedl dříve, ladicí program je také velmi pěkný: Poskytuje velké množství informací snadno srozumitelným způsobem. Hodně z ladění je styl „point-and-shoot“, který se některým uživatelům líbí (líbí se mi) a některým ne (věří, že „gdb“ znamená Boží DeBugger). Věřím, že stačí najít i ty nejobtížnější chyby zablokování vlákna.

Co se mi na JBuilderovi nelíbí

Konfigurovatelné IDE JBuilderu ve skutečnosti není konfigurovatelné dvěma zásadními způsoby:

  • Nejprve nelze nastavit výchozí barvy pozadí a popředí na displeji. Místo toho je nejprve musíte nastavit pro celou plochu a poté si JBuilder všimne změn. Můžete je však nastavit pomocí některého z jejich „konzervovaných“ barevných schémat.

  • Druhou závažnou vadou je, že nemůžete přizpůsobit úhozy editoru. Mými dvěma oblíbenými editory v tomto ohledu jsou EMACS a programátorský editor souborů (PFE). Karta přizpůsobení editoru JBuilder spočívá v možnosti vybrat některá předbalená mapování klíčů - jsou zahrnuta výchozí, krátká, klasická a Epsilon - a v možnosti vybrat, jak fungují věci, jako je automatické odsazení, zvýraznění a zalomení. Stále hledám editor, který vám umožní definovat balíčky maker v Javě.

V oblasti prezentace JBuilder trpí několika jednoduchými chybami, které podle mého názoru budou opraveny v prvním vydání patche. Například pokud má vaše pracovní plocha vybrána možnost „Velká písma“ (což Microsoft trvá na tom, že vezme Arial 10 a „vynásobí“ ji nějakým faktorem), výpočet toho, kolik místa je potřeba, se zalomí na panelu nástrojů a ikony knihoven komponent se oříznou vypnuto. Pokud na druhou stranu nastavíte vzhled písma explicitně v části „Vzhled“ vlastností plochy, například 14bodový Arial, pak se lišta komponent vykreslí správně. Je zřejmé, že jde o bosu Microsoftu (kde se písmo 10 bodů ne vždy vykresluje jako písmo 10 bodů), ale lidé v Borlandu se s tím musí vypořádat.

Další oblastí, která se mi nelíbí na všech IDE pro Javu, je závislost na vývoji jejich vlastního „vlastního“ virtuálního stroje Java. Doufám, že v budoucnu budou IDE použitelná se standardním prostředí Java Runtime Environment (JRE) a několika vlastními knihovnami. Nikdo to ještě neudělal správně.

Co bych si přál, aby to mělo

Žádný produkt samozřejmě není vhodný pro všechny, takže to, co bych rád viděl, lze považovat za hluk pro ostatní lidi. Ale v duchu mluvení jsou to tři hlavní věci, které bych rád viděl v JBuilderu (nebo jakémkoli pevném IDE):

  • Jemnější ovládání konfigurace IDE - mapování kláves, barvy displeje a rozložení

  • Podpora profilování v debuggeru - trasování / načasování volání, využití haldy, mapy odpadků atd

  • Ovládání zdrojového kódu - jedná se o oblast, kde je Java slabá (kontrola verze), a inteligentní kontrolní systém, který si všimne, kdy došlo ke změně smlouvy (změny nekompatibilní třídy) a co se kdy změnilo, by bylo skutečným zážitkem

Balení

Nástroj JBuilder je velmi schopný vstup na stále přeplněnější trh IDE. Poskytuje na některých místech mimořádné funkce - například JavaBeans, ladění, více projektů a design uživatelského rozhraní. Toto vydání JBuilder má několik hrubých okrajů kolem prezentace a konfigurovatelnosti IDE, ale toto se dá očekávat ve verzi 1.0. Jeho podpora Java 1.1 je také lepší. Můj názor je, že poprvé mají kluci a holky ve společnosti Symantec vážnou konkurenci pro svůj produkt Visual Cafe Pro.

Chuck McManis je v současné době ředitelem systémového softwaru ve FreeGate Corp., start-upu financovaném společností, který zkoumá příležitosti na internetovém trhu. Před nástupem do FreeGate byl Chuck členem skupiny Java Group. Do skupiny Java se připojil těsně po založení společnosti FirstPerson Inc. a byl členem skupiny přenosných operačních systémů (skupina odpovědná za část operačního systému Java). Později, když byl FirstPerson rozpuštěn, zůstal se skupinou během vývoje alfa a beta verze platformy Java. Vytvořil první domovskou stránku „all Java“ na internetu, když v květnu 1995 programoval pro Java verzi domovské stránky Sunu. Vyvinul také kryptografickou knihovnu pro Java a verze zavaděče tříd Java, které mohly třídit obrazovky na základě digitálních podpisů. Před příchodem do FirstPerson pracoval Chuck v oblasti operačních systémů SunSoftu a vyvíjel síťové aplikace, kde provedl počáteční návrh NIS +. Podívejte se na jeho domovskou stránku.