Nach fast vier Jahren Pause gibt es mit der v3.0 ein Update von ergo!pro.
Hilfsprogramme, die aus dem etwas kargen GFA-Basic ein modernes Entwicklungssystem zaubern, gibt es viele. ergo!pro ist darunter eines der beliebtesten, nicht zuletzt wegen seiner Vielseitigkeit. Grob unterteilt enthält ergo!pro folgende Programmteile, die den GFA-Programmierer während des programmierens unterstützen: GFA-Kontexthilfe, Compilershell, Programmoptimierung und Interpreterstarter. Da der letzte Test von ergo!pro über drei Jahre her ist, finden die Änderungen im Vergleich zur Vorversion am Ende des Artikels Erwähnung.
Bei umfangreichen Programmierprojekten kommt selbst der akribisch dokumentierende Programmieren ab und zu ins stolpern. Variablen, die in der 1.0-Version noch benötigt wurden, schlummern in der 2.0 ungenutzt vor sich hin, verlängern das Programm unnötig.
Die XRef-Analyse ist eine nachträgliche, automatische Analyse des Quellcodes. Das Ergebnis ist eine Dokumentation aller im Programm vorkommenden Variablen, Arrays, Prozeduren, Funktionen und Labels.
Aus der XRef-Analyse wird auch deutlich, welchen Typs bspw. eine Variable und wo sie im Programm zu finden ist. Sucht man z.B. nach der oben erwähnten, unnötigen Variable kann ergo!pro zumindest eine Suchhilfe geben. Solche Variablenrelikte sind häufig nur an einer bestimmten Stelle zu finden, evtl. als global definiert oder sogar in einer Prozedur vorhanden, die vom Programm gar nicht mehr aufgerufen wird. Diese Fälle werden von ergo!pro deutlich gekennzeichnet, ebenso wenn eine Variable mal global und dann wieder lokal verwendet wird.
Die XRef-Analyse läßt sich weitgehend konfigurieren. Die Standardeinstellung erzeugt eine ziemlich umfangreiche Analyse-Datei, wer jedoch nach bestimmten Fehlern im Programm sucht, kann die Suche z.B. auf nicht verwendete Prozeduren beschränken.
Mit dem Informer können die XRef-Funktionen auch direkt in die GFA-Datei geschrieben werden.
Die XRef-Analyse wird von ergo!pro auch noch für weitere Funktionen benutzt: Statistik, Variablenliste und Baumdiagramm.
Die Statistik zeigt die Anzahl der verwendeten Variablen/Prozeduren und deren Typ. Das Ergebnis ist eine kurze Liste, die eingeschränkt bereits für die Programmoptimierung nützlich sein kann. So ergab die Statistik des ECI (ein GFA-Basic/faceVALUE-Programm), das 77 String-Variablen verwendet wurden - davon 25 global. Ob dies bei jeder Variable notwendig ist, muss die ausführliche XRef-Analyse ergeben.
Das Baumdiagramm zeigt, welche Prozeduren/Funktionen sich gegenseitig aufrufen. Ein faceVALUE-Programm ruft bspw. in seiner Initialisierungsphase mehrere Prozeduren auf, die wiederum andere Prozeduren aufrufen. Im Baumdiagramm erkennt man auf einen Blick, welche Aufrufe eine Prozedur tätigt. Durch Einrückungen ist dabei auch die Übersichtlichkeit gewährleistet.
Die erzeugte Liste enthält alle verwendeten Variablennamen. Die Liste läßt sich auf globale Variablen beschränken, die sich oft als wahre Übeltäter entpuppen wenn es um überraschende Änderungen von Variableninhalten entpuppen.
Einer der Klassiker unter den Programmiertools ist der REM-Killer, der unerwünschte Kommentare im Programm entfernt. Auch diese Funktion kennt Ausnahmeregeln, die definieren, welche Kommentare erhalten bleiben sollen. So können die Kommentare zwischen Unterprogrammen, in Prozedur/Funktions-Zeilen oder in Unterprogrammen, die mit einem benutzerdefinierten Text anfangen. Wünschenswert wäre noch eine Funktion, die Kommentare übrig läßt, wenn sie einen bestimmten Text enthalten, z.B. alle Kommentare die mit einem "*" beginnen. Die Ausgabe erfolgt in eine GFA-Datei, das Original bleibt, wie auch bei den anderen ergo!pro-Funktionen, erhalten.
INLINEs werden in GFA-Basic häufig für das Ablegen von kleinen Assembler-Unterprogrammen verwendet. Diese können von ergo!pro aus der GFA-Datei extrahiert und einzeln oder in eine Sammeldatei ablegen.
Der Profiler ist eine Art digitaler Detektiv für den Ablauf des Programms und ist neben der XRef-Analyse wohl die wertvollste Funktion zur Programmoptimierung. Der Hypertext des Programms nennt dazu einige Beispiele. So kann der Profiler feststellen, wie häufig eine Prozedur aufgerufen wird, wieviel Zeit sie benötigt und welche Inhalte bestimmte Variablen annehmen.
Diese Funktion ersetzt die Inhalte von Strings und Data-Zeilen. Häufigstes Anwendungsgebiet ist Erleichtern von Übersetzungen. Mittlerweile dürfte diese Funktion nicht mehr allzu häufig nötig sein, denn i.d.R. ist es praktischer, alle Texte in der RSC-Datei oder als Textdateien abzulegen, die dann bei Programmstart ausgelesen werden.
Entspricht der SAVE,A-Funktion von GFA-Basic, d.h.: es wird aus einer .GFA-Datei eine LST-Datei erzeugt.
Mit dieser Funktion lassen sich nicht mehr benutzte Prozeduren entfernen, symbolische Variablen ersetzen und markierte Programmteile entfernen. Die Anwendungsgebiete sind vielfältig - so läßt sich aus der Vollversion eines kommerziellen Programmes leicht eine Demoversion erzeugen. Der Präprozessor kann mit der Compiler-Funktion kombiniert werden, so das ergo!pro gleich nach dem Präprozessor mit dem compilieren beginnt.
Neben der Programmoptimierung ist der zweite große Programmteil in ergo!pro die Compilershell. Für jedes Programm kann eine Projekt-Datei angelegt werden, die die individuellen Compiler-Einstellungen für das Programm enthält, wie z.B. die Einstellungen des Präprozessors.
Eine Neuheit in ergo!pro 3.0 sind die Projektnotizen. Diese werden von ergo!help angezeigt und enthalten neben persönlichen Notizen auch Verweise auf den Hypertext des eigenen Programms. Sofern man eine Todo-Liste und News-Liste führt, können diese Dateien direkt per Link angesprochen werden. Was im Notizfenster angezeigt werden soll, kann man durch das Ändern der Notizzettel-Datei mit der Endung NTC bestimmen. Die Syntax zum Setzen der Links ist sehr einfach. Mit der Notizzettel-Funktion sollten jetzt die Papierzettel oder temporären Dateien mit Programmiernotizen der Vergangenheit angehören - ausreichende Disziplin beim GFA-Programmierer einmal vorausgesetzt...
Die Projektnotizen können direkt vom neugestalteten ergo!pro-Projektfenster angezeigt werden.
Für den Benutzer früherer ergo!-Versionen ist das Projektfenster wohl die auffäligste Neuheit. Zwar hat sich an der Bedienung des Fensters nichts geändert, aber es sind einige Icons dazugekommen, die den Weg zur Menüleiste sparen. Die Iconleiste läßt sich ausblenden und das Fenster läßt sich resizen. Eine frei definierbare Leiste mit "Hotbuttons" erlaubt den Zugriff auf weitere ergo!pro-Funktionen.
Dem alten ergo!pro 2.5 sieht man im Jahr 2000 sein Alter deutlich an. Bei der v3.0 hat sich in diesem Bereich erwartungsgemäß einiges getan. Alle Fenster lassen sich per Iconify schnell verkleinern und die Dialoge unterstützen BubbleGEM, was die ST-Guide-Hilfe fast überflüssig macht. Letztere war zum Testzeitpunkt noch nicht ganz fertiggestellt, ist aber leicht verständlich formuliert und sinnvoll gegliedert.
Die meisten Dialoge von ergo!pro wurden einem "Lifting" unterzogen und der Inhalt neu strukturiert. Für Benutzer der alten Version ist dies sicherlich erst gewöhnungsbedürftig, aber schnell erscheint die neue Anordnung logischer.
Lange Dateinamen werden von ergo!pro nun voll unterstützt. Praktisch unter Multitasking-Umgebungen ist das Drag & Drop: Einfach vom Desktop eine GFA-Datei auf das Projektfenster ziehen und ergo!pro ist bereit das Programm weiter zu bearbeiten.
Da fehlt eigentlich nur noch eine Unterstützung des DHST-Protokolls, um Projektdateien z.B. von StartMeUp! aufzurufen.
Dieses Freeware-Utiltiy liegt ergo!pro gleich bei, liegt aber auch auf der Website von Run! Software. Bei BASTARD handelt es sich um eine Starthilfe für den GFA-Interpreter, die einige ältere Patches überflüssig macht und einige interessante Neuheiten bietet. Mit ergo!pro läßt sich der BASTARD leicht konfigurieren. Der Speicher für den Interpreter kann begrenzt werden. Soll GFA in Farbtiefen mit mehr als 16 Farben laufen, ist der notwendige Patch gleich in BASTARD enthalten - Scrambler oder A la Card (das ergo!pro ebenfalls beiliegt) werden damit praktisch überflüssig. Der Interpreter-Name, mit dem sich das GFA-Basic beim Betriebssystem anmelden soll. Dies ist nur dann von Bedeutung, wenn sich andere Programme mit dem GFA-Programm "unterhalten" möchten.
Eine kleine Sensation ist wohl aber, dass der GFA-Interpreter durch BASTARD auch unter N.AES benutzbar wird - und das im Multitasking-Betrieb. Einige kleine Unsauberkeiten muss man zwar im Kauf nehmen, ansonsten funktioniert das Programmieren jetzt absolut reibungslos. PRINT-Ausgaben werden in das Konsolen-Fenster umgelenkt. Grundsätzlich beschützt BASTARD den Interpreter vor allen fremden Anwendungen die sich in den Vordergrund schieben möchten. Für Fileselectoren, die sich als eigenständige Anwendungen anmelden, kann jedoch eine Ausnahme gemacht werden.
Das Help-Accessory wurde komplett überarbeitet und verfügt jetzt über eine Menüleiste. Geblieben ist die Möglichkeit aus dem GFA-Interpreter die passenden Help-Seiten aufzurufen. Vom Komfort ist das Accessory dem ST-Guide mindestens ebenbürtig, die Blockmarkierung ist sogar besser gelöst und kann auch Teile von Zeilen markieren. Leider kann das ergo!help-Accessory nicht gleich noch die HYP-Dateien des ST-Guide einlesen.
Die GFA-Hilfe in ergo!help macht das GFA-Handbuch so gut wie überflüssig. Auf die Nachteile einiger GFA-Befehle aus heutiger Sicht wird hingewiesen.
Erst ergo!pro macht aus GFA-Basic ein modernes Entwicklungssystem, das auch den systemübergreifenden Vergleich nicht zu scheuen braucht.
Die neue Version zeigt Verbesserungen in der Bedienung, den unterstützten Protokollen und ergo!help. Echte Kritikpunkte lassen sich an ergo!pro nicht finden, die 98 DM (bei Neuerwerb) ist das Programm mehr als wert.
Update-Konditionen:
Neu: 98 DM
Update von v1.0: 59 DM
Update von v2.0: 49 DM
Update von v2.5: 39 DM
ergo!pro 3.0 + faceVALUE 3.0: 159 DM
Bezugsquelle:
RUN! Software
Holger Herzog
Vorgartenstr. 9
D-66424 Homburg
http://www.run-software.de