Ein erster Blick auf Borlands JBuilder IDE

Als ich im Juni 1995 zum ersten Mal hörte, dass Borland ein Java-Tool erstellen würde, war ich sehr zufrieden. Borland war das einzige Unternehmen, das das von Microsoft geschaffene Visual Basic-Franchise in Mitleidenschaft gezogen hat. Darüber hinaus wird die Delphi-Entwicklungsumgebung von Borland von vielen (einschließlich mir) als das beste RAD-Tool (Rapid Application Development) auf dem Markt angesehen. Mit großer Aufregung kaufte ich Ende 1995 Borland C ++ 5.0 mit Java-Unterstützung.

Leider ließen die Bemühungen von Borland zu wünschen übrig. Einer der größten Nachteile des Produkts war, dass die Java-Unterstützung ein Zusatzmodul zu C ++ war und kein eigenständiges Tool. Das Problem bei diesem Ansatz ist, dass Java in Bezug auf Kompilierungseinheiten, Objektdateien und Kompilierungsziele C ++ nicht allzu sehr ähnlich war. In Java kompilieren Sie eine Klassendatei zu einem Objekt, das Sie sofort mit anderen Objekten instanziieren können, die sich bereits auf dem System befinden. Es gibt keine ".exe" - und ".dll" -Ziele, die von der generischen C ++ - IDE verwendet werden. Das Bauen von Klassen war daher umständlich, die Dokumentation war fast nicht vorhanden und die Erfahrung war völlig unbefriedigend. Der C ++ - Compiler hat jedoch hervorragend funktioniert.

Nach dem C ++ - Add-On-Produkt wurde schnell von "Latte" gesprochen, dem Codenamen für eine IDE-Umgebung, an der die Ingenieure der Delphi-Gruppe arbeiten wollten und der vollständig in Java geschrieben wurde. Das ehrgeizige Projekt war mit Verzögerungen behaftet; Es wurde 1996 auf der ersten JavaOne-Entwicklerkonferenz in San Francisco und dann erneut auf der JavaOne '97 vorgeführt. Schließlich wurde es als JBuilder veröffentlicht.

Eine kurze Tour durch JBuilder

JBuilder teilt viele gemeinsame Themen mit der Delphi-Welt und fühlt sich den Symantec Visual Cafe-Tools ähnlich genug. Daher war es für mich einfach, mit JBuilder loszulegen - auch ohne die mitgelieferte Dokumentation zu lesen. (Wenn ich habe eine Frage, war die Dokumentation ziemlich vollständig in Bezug auf die zur Verfügung stehenden Optionen zu beschreiben.)

Die Umgebung besteht aus einer "Steuerleiste", einem schwebenden Symbolleistenfenster, einem "Browserfenster" mit einem mehrschichtigen Baumsteuerelement links und einem Anzeigefenster rechts. Es gibt nur eine Steuerleiste, es können jedoch mehrere Browserfenster geöffnet sein.

Die unten gezeigte Steuerleiste besteht aus den Standardmenübefehlen oben, einer Palette von Werkzeugen auf der linken Seite, die Verknüpfungen zu den Menüelementen bereitstellen, und einer Sammlung von Komponenten (JavaBeans), die zur Verwendung in Ihrer visuellen Anwendung oder zur Verfügung stehen Applet. Unterhalb der Werkzeugpalette und der Komponenten befindet sich eine Statuszeile, die mit den aktuellen Aktivitäten aktualisiert wird.

Das Browserfenster wird unten angezeigt. In diesem Fenster interagieren Sie mit Ihrem Quellcode, entweder HTML oder Java. Darüber befindet sich die Steuerleiste, mit der Sie Aktionen (z. B. eine Neuerstellung) starten und Ihre JavaBeans-Sammlungen zur Verwendung in Ihren eigenen Anwendungen speichern können. Darüber hinaus kann in jedem Browserfenster ein Projekt angezeigt werden, das darin ausgeführt wird. Wenn Sie also an mehreren Projekten arbeiten, z. B. an einer neuen JavaBean und einer Anwendung, die diese verwendet, können Sie beide Projekte gleichzeitig öffnen und problemlos zwischen ihnen wechseln . Diese Funktion hat mich beeindruckt, da sie die gängigste Form der Java-Entwicklung unterstützt und mehrere verschiedene Teile gleichzeitig ändert. In einem Browserfenster kann es ein Projekt von Dienstprogrammklassen geben, in einem anderen Browser das Applet, das diese Klassen verwendet, und in einem dritten eine Reihe von HTML-Seiten, die das Applet verwenden.

Das Browserfenster ist vertikal geteilt - mit der Dateibaumansicht links und dem Viewer rechts. Die vertikale Aufteilung wird als "Vorhang" bezeichnet. Über die Benutzeroberfläche von Borland können Sie den Vorhang entfernen, wenn Sie eine Vollbildansicht des Quellcodes wünschen, an dem Sie arbeiten. Unter jeder Hälfte des Browserfensters befinden sich Steuerungsregisterkarten, die die Semantik der Ansicht selbst ändern.

Beim Anzeigen von Java-Quellcode sind die Registerkarten in der Viewer-Hälfte des Browsers mit Quelle, Design und Dokument gekennzeichnet.

  • Auf der Registerkarte Quelle wird lediglich der Quellcode angezeigt, und Sie können ihn mit dem enthaltenen Syntaxhervorhebungseditor bearbeiten.

  • Die Registerkarte Design zeigt einen visuellen Arbeitsbereich an, in dem alle von Ihnen definierten Informationen zur Benutzeroberfläche vorhanden sind. Wenn Ihr Quellcode beispielsweise Bedienfelddefinitionen, Schaltflächen usw. enthält, ist dieses Bedienfeld der Drag & Drop-Bereich, in dem Sie diese Informationen zusammenstellen können.

  • Auf der Registerkarte doc wird das HTML-Dokument angezeigt, das aus den verschachtelten Kommentaren im Quellcode generiert wird. Das HTML-Dokument kann mit JavaDoc extrahiert werden. Es gibt jedoch keine automatisierte Möglichkeit, dieses Dokument zu generieren.

Möglicherweise ist einer der cleversten Aspekte der Browser-Implementierung, dass der Browser beim Durchsuchen einer Klassendatei die Klassendatei einliest und sie so weit dekompiliert, dass Sie die Struktur des Quellcodes sehen können. Dies kann sehr hilfreich sein, wenn Sie es gewohnt sind, die Quelle zu lesen, anstatt ein Objektdiagramm zu betrachten. Wenn Sie eine der Java-Standardklassen oder die benutzerdefinierten Borland-Klassen auswählen, wird durch Klicken auf die Registerkarte doc die JavaDoc-Seite für diese Klasse zurückgegeben. Auf diese Weise können Sie beispielsweise eine Systemklasse markieren, "Ausgewähltes Symbol durchsuchen" auswählen und sowohl die rekonstruierte Quelle als auch die Dokumentation für die Klasse anzeigen. Ich bevorzuge diese Methode, bei der die in die JavaDoc-Daten eingebettete HTML-Formatierung beibehalten wird, Systemen, die die Java-Dokumentation in Microsoft-Hilfedateien konvertieren.

Der JBuilder-Debugger

Das Schreiben von Code ist natürlich einfach. Es ist hart, es zum Laufen zu bringen. Das vielleicht wichtigste Merkmal für jede IDE ist der Debugger. Glücklicherweise enttäuscht der Borland JBuilder-Debugger nicht. Ein Screenshot des Debuggers ist unten dargestellt.

Beim Debuggen wird das Browserfenster neu konfiguriert, um die Anzeige des Status Ihrer Klasse zu unterstützen. Die baumstrukturierte Dateiansicht ist in ein oberes Fenster mit Thread-Status und ein unteres Fenster mit Informationen zu aktiven Variablen unterteilt. Außerdem erhält die linke Hälfte des Browsers unten einige zusätzliche Steuerelemente für Registerkarten, die den Betrieb des Debuggers steuern.

Darüber hinaus zeigen Popup-Fenster den Wert einer Variablen im Quellfenster ähnlich an wie der Debugger von Symantec. Alle Standard-Debugging-Funktionen sind vorhanden: Einzelschritt, Überwachungspunkte, Haltepunkte, bedingte Haltepunkte usw. Bemerkenswert ist die hervorragende Fadenunterstützung. Im Thread-Fenster in der oberen linken Ecke können Sie auf die aktuell ausgeführte Zeile eines beliebigen Codeteils in einem beliebigen Thread klicken. Das Quellfenster wird an dieser Stelle im Code angezeigt. Darüber hinaus zeigt das Fenster unten links alle lokalen und globalen Status an, die für diesen Thread sichtbar sind. Der Debugger von JBuilder stellt definitiv den neuen Standard dar, an dem andere Java-Debugger gemessen werden.

Auf der linken Seite des Quellfensters kennzeichnen kleine Punkte Linien, in denen Haltepunkte installiert werden können. Durch Klicken auf den Punkt wird die Linie hervorgehoben und das Haltepunktsymbol angezeigt. Eine weitere nützliche Funktion ist "Zum Cursor ausführen" - für Zeiten, in denen Sie nicht jede Iteration einer forSchleife einzeln ausführen möchten . Klicken Sie einfach auf die Zeile, wählen Sie "Zum Cursor ausführen" und die Ausführung wird genau dort gestoppt.

Ausgabe verarbeiten

Ein letzter Bereich, in dem ich JBuilder als besonders nützlich empfand, war die Behandlung der Ausgabe beim Ausführen einer Java-Anwendung. Das Ausführungsprotokoll ist ein Fenster, das alle Daten enthält, an die System.outvom aktuellen Lauf gesendet wurde . Wenn jedoch mehrere Projekte geöffnet sind, enthält das Ausführungsprotokoll separate Registerkarten für jedes Projekt! Ein Beispiel hierfür ist unten dargestellt.

Wie Sie im Bild sehen können, gibt es zwei Registerkarten, eine für "Beispiel" und eine für "BASIC", das aktuelle Projekt. Diese Trennung ist wichtig, wenn Sie mehrere Klassenbibliotheken gleichzeitig erstellen, da Sie die Ausgabe der beiden Projekte nicht verwechseln können.

Was ich an JBuilder mag

Manchmal sind es die kleinen Dinge. Ich mag es wirklich, dass man Java-Quellcode auf einem Farbdrucker drucken und ihn mit intakten Schriftarten und Syntax-Hervorhebungen herausbringen kann. Wenn ich die Kopf- und Fußzeilen der Seite anpassen und eine "Zwei-Aus" -Ausgabe angeben könnte (zwei Seiten Quellcode, die nebeneinander auf einer Querformat-Ausgabeseite gedruckt werden), wäre dies perfekt.

Die Unterstützung für Java 1.1 ist sehr nett. Während JDK 1.1 schon eine Weile nicht mehr verfügbar ist und Symantec Beta-Unterstützung für 1.1 hat, gibt es nichts Schöneres als eine IDE, die von Grund auf für die Arbeit mit 1.1 entwickelt wurde.

Wie ich bereits sagte, ist der Debugger auch sehr nett: Er liefert eine große Menge an Informationen auf leicht verständliche Weise. Ein Großteil des Debuggens ist ein "Point-and-Shoot" -Stil, den einige Benutzer mögen (ich tue) und andere nicht (weil sie glauben, dass "gdb" für God's DeBugger steht). Ich glaube, es reicht aus, selbst die schwierigsten Thread-Deadlock-Fehler zu finden.

Was ich an JBuilder nicht mag

Die konfigurierbare IDE von JBuilder kann tatsächlich nicht auf zwei entscheidende Arten konfiguriert werden:

  • Erstens können Sie die Standardfarben für Hintergrund und Vordergrund in der Anzeige nicht festlegen. Stattdessen müssen Sie sie zuerst für Ihren gesamten Desktop festlegen, und dann bemerkt JBuilder die Änderungen. Sie können sie jedoch mithilfe einiger ihrer "eingemachten" Farbschemata einstellen.

  • Der zweite schwerwiegende Fehler besteht darin, dass Sie die Tastenanschläge des Editors nicht anpassen können. Meine beiden Lieblingseditoren in dieser Hinsicht sind EMACS und der Programmer's File Editor (PFE). Die Registerkarte zum Anpassen des Editors von JBuilder besteht aus der Auswahl einiger vorgefertigter Tastenzuordnungen - Standard, Brief, Classic und Epsilon - und der Auswahl, wie Dinge wie das automatische Einrücken, Hervorheben und Umschließen funktionieren. Ich suche immer noch nach dem Editor, mit dem Sie Makropakete in Java definieren können.

Im Bereich der Präsentation leidet JBuilder an einigen einfachen Fehlern, von denen ich erwarte, dass sie in der ersten Patch-Version oder so behoben werden. Wenn auf Ihrem Desktop beispielsweise "Große Schriftarten" ausgewählt ist (Microsoft besteht darauf, dass Arial 10 verwendet und mit einem bestimmten Faktor "multipliziert" wird), wird die Berechnung des Platzbedarfs der Symbolleiste unterbrochen und die Symbole der Komponentenbibliotheken werden abgeschnitten aus. Wenn Sie andererseits die Schriftdarstellungen explizit im Abschnitt "Darstellung" Ihrer Desktop-Eigenschaften festlegen, z. B. 14-Punkt-Arial, wird die Komponentenleiste korrekt gerendert. Es ist eindeutig ein Microsoft-Schwindel (bei dem eine 10-Punkte-Schrift nicht immer als 10-Punkte-Schrift dargestellt wird), aber die Leute bei Borland müssen sich damit befassen.

Ein weiterer Bereich, den ich an allen IDEs für Java nicht mag, ist die Abhängigkeit von ihrer eigenen "benutzerdefinierten" virtuellen Java-Maschine für die Entwicklung. Ich hoffe, dass die IDEs in Zukunft mit der Standard-Java-Laufzeitumgebung (JRE) und einigen benutzerdefinierten Bibliotheken verwendet werden können. Noch hat niemand dies richtig gemacht.

Was ich wünschte, es hätte

Natürlich passt kein Produkt perfekt zu jedem, daher kann das, was ich sehen möchte, für andere als Lärm angesehen werden. Aber im Geiste des Aussprachens sind dies die drei wichtigsten Dinge, die ich in JBuilder (oder einer soliden IDE für diese Angelegenheit) sehen möchte:

  • Feinere IDE-Konfigurationssteuerung - Tastenzuordnungen, Anzeigefarben und Layout

  • Profiling-Unterstützung im Debugger - Aufrufverfolgung / Timing, Heap-Nutzung, Garbage Maps usw.

  • Quellcode-Kontrolle - Dies ist ein Bereich, in dem Java schwach ist (Versionskontrolle), und ein intelligentes Kontrollsystem, das feststellt, wann sich der Vertrag geändert hat (inkompatible Klassenänderungen) und was sich wann geändert hat, wäre ein wahrer Genuss

Einpacken

Das JBuilder-Tool ist ein sehr leistungsfähiger Einstieg in den zunehmend überfüllten IDE-Markt. Es bietet an einigen Stellen außergewöhnliche Funktionen - wie JavaBeans, Debugging, mehrere Projekte und Design der Benutzeroberfläche. Diese Version von JBuilder weist einige Ecken und Kanten in Bezug auf die Darstellung und Konfigurierbarkeit der IDE auf. Dies ist jedoch in einer Version 1.0 zu erwarten. Die Unterstützung von Java 1.1 ist ebenfalls überlegen. Ich gehe davon aus, dass die Jungs und Mädels bei Symantec zum ersten Mal ernsthafte Konkurrenz zu ihrem Visual Cafe Pro-Produkt haben.

Chuck McManis ist derzeit Director of System Software bei FreeGate Corp., einem von Venture finanzierten Start-up, das nach Möglichkeiten auf dem Internetmarkt sucht. Vor seinem Eintritt bei FreeGate war Chuck Mitglied der Java Group. Er trat der Java-Gruppe kurz nach der Gründung von FirstPerson Inc. bei und war Mitglied der Portable OS-Gruppe (der Gruppe, die für den OS-Teil von Java verantwortlich ist). Später, als FirstPerson aufgelöst wurde, blieb er durch die Entwicklung der Alpha- und Beta-Versionen der Java-Plattform bei der Gruppe. Er erstellte die erste "All Java" -Homepage im Internet, als er im Mai 1995 die Programmierung für die Java-Version der Sun-Homepage durchführte. Außerdem entwickelte er eine kryptografische Bibliothek für Java und Versionen des Java-Klassenladeprogramms, mit denen Klassen überprüft werden konnten basierend auf digitalen Signaturen. Bevor Sie zu FirstPerson kommen,Chuck arbeitete im Bereich Betriebssysteme von SunSoft und entwickelte Netzwerkanwendungen, wo er das erste Design von NIS + entwarf. Schauen Sie sich seine Homepage an.