Neu fĂŒr den ATARI-ST, aber auf GroĂrechnern, Minis und Supermicros (Workstations) weit verbreitet: APL. Hier ist der Test. Zur EinfĂŒhrung wird der Artikel in der ST 9/87 empfohlen, der die Programmiersprache APL allgemein vorstellt.
Ich halte es fĂŒr eine gute (anglo-amerikanische) Sitte, zu Beginn des Artikels fĂŒr zwei Klarstellungen zu sorgen: Zum Einen verdiene ich mit APL-Programmen seit 9 Jahren meine Brötchen und bin ĂŒberzeugt, daĂ ohne APL die Brötchen kleiner ausfallen wĂŒrden â ich bin also voreingenommen. Zum Anderen war ich zur Erstellung eines grĂŒndlichen Tests auf die Hilfe des deutschen Distributors angewiesen: Die gdat-mbH in Bielefeld war zum Beispiel als APL-Systemhaus so freundlich, die APL-EinschĂŒbe zu setzen. - Zeitschriftenverlage tun sich mit den Spezialzeichen schwer. Auch eine solche Kooperation könnte als Befangenheit ausgelegt werden. Andererseits sind von gdat Hinweise auf Fehler gekommen, die bei einem Test gemeinhin nicht auffallen. Zudem danke ich fĂŒr die vergleichenden Benchmarks und fĂŒr Hintergrundinformationen.
Das bisher einzige APL fĂŒr den ATARI-ST heiĂt APL/68000. Dieses APL wird seit 1981 auf immer neuen Rechnern implementiert, denen nur eines gemeinsam ist: Eine CPU aus der 680xx-Serie von Motorola. Die Herstellerfirma MicroAPL in London hat bisher Anpassungen fĂŒr Betriebssysteme wie UNIX, CPM/68k, TOS und MIRAGE, fĂŒr Workstations wie die SUN, fĂŒr Mehrplatzrechner (z. B. Hewlett Packard) und fĂŒr âWIMPâ-Rechner (Windows, Icons, MĂ€use, Pull-down-MenĂŒs) vorgenommen: APL/ 68000 gibt es u. a. fĂŒr den MAC, die AMIGA und fĂŒr den ST. Der âRumpfâ des APL/68000 ist bei allen Maschinen weitgehend identisch, egal ob die Betriebssysteme multitasking-fĂ€hig sind oder nicht (das lĂ€Ăt fĂŒr den ST hoffen). Lediglich das âInterfaceâ zur AuĂenwelt wird aktuell angepaĂt.
Getestet wurde die Version 6.00A (Erstversion fĂŒr den ATARI) sowie ein Vorabexemplar der Version 6.05. Letztere Version ist bei Erscheinen des Artikels nach Angaben des Distributors im Handel. Da ich von der ST-Computer in keinster Weise abhĂ€ngig bin, darf ich sie wohl mal loben: Ich konnte APL/68000 ein halbes Jahr testen. Sie lesen also gewiĂ keinen SchnellschuĂ, sondern einen grĂŒndlichen Test. Dies ist einer so komplexen Programmiersprache wie APL nur angemessen.
âSpeedy Gonzalesâ
Das APL/68000-ST kommt in einem professionell aufgemachten Schuber. Das Handbuch (ein Ringbinder im Format DIN-A5) ist in Englisch gehalten, kommt aber ohne âFachchinesischâ aus und ist hervorragend geschrieben. Es werden nicht nur alle Sprachelemente (mit Beispielen!) beschrieben, auch ein Index und ein Tutorial (sehr empfehlenswert) sind enthalten. ZusĂ€tzlich gibt es ein Manual fĂŒr die ATARI-Implementation, worin die Besonderheiten der ST-Version beschrieben sind. Liebe zum Detail zeigt sich bei einer Kurzreferenz, die beim Programmieren immer dabei sein kann, ohne der Maus den Platz streitig zu machen. Eine (deutschsprachige) EinfĂŒhrung in die Besonderheiten von APL komplettiert das Paket. Eine (einseitige) Diskette mit dem APL gibtâs natĂŒrlich auch. Kein Kopierschutz oder Ă€hnliche Bosheiten. Zudem legt gdat in der BRD eine eigene Disk bei, die einige Tools enthĂ€lt. Besonders nĂŒtzlich: der Feld-Editor fĂŒr Anwenderprogramme.
ZusĂ€tzlich standen mir zwei Software-Pakete von gdat zur VerfĂŒgung: Ein Druckertreiber (APLPRINT) und ein Grafik-Workspace (Line Al). Diese Tools sind zwar bei der Arbeit mit APL ausgesprochen hilfreich, können aber in diesem Test aus PlatzgrĂŒnden nicht weiter berĂŒcksichtigt werden.
âEchteâ APLer hassen HandbĂŒcher. Sie legen einfach los. Diskette einschieben und APL.PRG angeklickt - kurze Ladezeit - voil: Eine GEM-Applikation. Mit eigenem Fenster, MenĂŒbalken usw. - Schön! Erste Tests mit Programmen, die ich vom IBM-PC ĂŒbernommen habe, frustrieren mich: Warâs das schon? Das Ding ist entweder unglaublich schnell, oder es simuliert nur. Na warte. Der ST hat keinen Mathe-Chip (im Gegensatz zu meinem alten PC). Bei FlieĂkomma-Arithmetik in gewohnter APL-PrĂ€zision kommt der Bursche bestimmt inâs Schwitzen? - Pech gehabt. Das Biest rennt wie verrĂŒckt. Eine Stoppuhr muĂ her. Tausend Integers sortieren. Ich tippe die fĂŒnf Zeichen ein, drĂŒcke RETURN - Fertig! Mein Daumen war nicht schnell genug. Ich kombiniere: APL/ 68000 ist blitzschnell.
Die Benchmarks bestĂ€tigen diesen Eindruck. Nicht nur, daĂ APL (unter BerĂŒcksichtigung der höheren Rechengenauigkeit) mit dem GFA-Basic mithalten kann. Ein solcher Vergleich hinkt immer, wenn man an die vielen Sprachelemente denkt, die in keiner anderen Sprache eingebaut sind. Nein, der wirkliche Hammer ist, daĂ es APL auf dem ST mit einer reinen Softwarelösung mit dem Arithmetik-Prozessor des PC aufnehmen kann. Das zeugt von sorgfĂ€ltiger Codierung. Nur bei der Potenz-Funktion muĂ jemand bei Micro APL einen schlechten Tag gehabt haben.
Dem Paket liegt auch eine Fehlerliste bei. Angesichts dessen, daà es kaum fehlerfreie Programme gibt, ist diese Praxis lobenswert. Da gdat an alle registrierten Benutzer die Version 6.05 verschickt, sobald sie freigegeben ist, erhÀlt jeder APL-Eigner eine komplette Fehlerkorrektur und einige neue Features: gegen Porto. So ein Nulltarif ist angesichts der meist kleineren Bugs sehr nobel. Andere SoftwarehÀuser sollten sich daran ein Beispiel nehmen. Der einzige Bug, der mich nachhaltig nervte, betraf einen gelegentlichen Ausstieg des Rechners bei dem Versuch, einen Workspace zu laden.
Bombensicher
Apropos Bomben: Der ATARI ist ja in dieser Disziplin ein echter Anarchist. Aber auĂer in dem eben beschriebenen Fall konnte ich unter APL keinerlei AbstĂŒrze provozieren. APL ist von Haus aus so konzipiert, daĂ ein Benutzer von den Ărgernissen des Betriebssystems abgeschirmt bleibt. APL/68000 unter GEM bildet da keine Ausnahme. Ich bin bezĂŒglich dessen, was der ST gemeinhin bei der Programmentwicklung an Tretminen bereithĂ€lt, regelrecht fahrlĂ€ssig geworden. APL/68000 hĂ€lt das aus. Erste Versuche mit Version 6.05 zeigten absolut keine Fehler mehr. Und das will was heiĂen: Ich habe immerhin einige hundert Kilobytes an Programmen auf dem ST unter APL laufen lassen.
Per Mausklick ist auch ein Editor erreichbar, der fĂŒr die ĂŒblicherweise sehr kurzen APL-Funktionen (Modu-le) mehr als ausreichend ist. Die âCCPâ-FĂ€higkeiten (Cut, Copy, Paste) sind sehr hilfreich. Leider lassen sich mit diesem Editor keine Variablen bearbeiten. Diese FĂ€higkeit hatte ich auf einem APL fĂŒr PCâs doch sehr zu schĂ€tzen gelernt. Zwar ist eine diesbezĂŒgliche Erweiterung geplant, aber ein Termin steht laut gdat noch nicht fest.
# Technische Daten des APL/68000-ST
VerfĂŒgbarer Arbeitsspeicher (DWA): 725k
(bei 1040ST. Allg.: RAM abzĂŒglich ca.275k)
Numerischer Darstellungsbereich:
von ~3.59538626972463 E 308
bis 3.59538626972463 E 308
Darstellgenauigkeit ([]PP): <=15 Nachkommastellen
Vergleichstoleranz, relativ (DCT): >1E~307
Genauigkeit des Timers (DTS): 20 msek.
Datentypen:
Character (8 Bit)
Boolean (1 Bit)
Integer (32 Bit)
Reals (IEEE, 64 Bit)
GröĂe von Variablen:
nur durch verfĂŒgbaren Arbeitsspeicher begrenzt
Anzahl der Dimensionen: maximal 8
GröĂe einer Dimension: unbegrenzt
Rekursionstiefe (Stack): nur durch verfĂŒgbaren Arbeitsspeicher begrenzt
Symbol-Table: maximal 6021 EintrÀge
APL.PRG V.6.05 (auf Disk): 118k
APL.RSC (auf Disk): 3,5k
Belegter Diskspace (incl. Bibliotheken): 275,8k
Betriebsarten:
monochrom (640 x 400)
4-farbig (640 x 200)
16-farbig (320 x 200)
Die APL-Befehle bestehen aus âIconsâ, die auf Ă€lteren Systemen oft nur schwer zu erreichen waren: Tastatur und Bildschirm gaben oft nur die herkömmlichen ASCII-Zeichen her. Schon bei den Umlauten wurde es schwierig.
Der ST zeigt sich hier von seiner besten Seite. Alle APL-Zeichen sind auf dem Bildschirm darstellbar, die Tastatur lĂ€Ăt sich (mit CONTROL/TAB oder unter Programmkontrolle) zwischen der vom PC bekannten APL-Tastatur und dem (deutschen) Tastenlayout umschalten. Der APL-Zeichensatz enthĂ€lt sĂ€mtliche europĂ€ischen Sonderzeichen, das komplette ASCII-Repertoire und viele ATARI-Symbole (wer hat eigentlich schon mal das âPfeifenmĂ€nnchenâ gebraucht?). Die APL-Belegung lĂ€Ăt sich mit Tastaturaufklebern markieren. Sie gehören zum Lieferumfang. In der neuen Version kann man sogar beide ZeichensĂ€tze (16x8; 8x8) als Bitmaps lesen und verĂ€ndern.
# Systemfunktionen
FĂŒr jedes APL gibt es Spracherweiterungen. Sie werden "Systemfunktionen" bzw. "Systemvariablen" genannt und beginnen mit einem Manche, wie 'âĄIO', gibt es in jedem System (damit wird festgelegt, ob APL beim ZĂ€hlen mit 0 oder mit 1 anfangen soll). Hier gibt es aber nur eine (höchst unvollstĂ€ndige) Ăbersicht bezogen auf SpezialitĂ€ten des APL/68000.
âĄA Alphabet (GroĂbuchstaben)
âĄa Alphabet (Kleinbuchstaben)
âĄBOX - zur Umwandlung von Matrizen in Vektoren mit Delimitern, und umgekehrt (gĂŒltig fĂŒr Zeichen und Zahlen!)
âĄCC "Console Control" - GerĂ€teunabhĂ€ngige Bildschirmfunktionen
âĄD "Digits" (Ziffern 0-9)
âĄDBR "Delimited Blank Removal" - Entfernen ĂŒberflĂŒssiger Leerzeichen
âĄDR - zur Kontrolle oder zum Ăndern der(internen) Daten-ReprĂ€sentation
âĄFMT - dient der Tabellenformatierung (mit Tabs, TexteinschĂŒben, Rundung etc.)
âĄM Liste der Monate
âĄOV Overlay-Funktion.Damit lassen sich unterschiedliche Variablen (auch mit verschiedenen Strukturen und: Text und Zahlen gemischt!) sowie Funktionen in eine einzige Variable stecken bzw. wieder herausholen.
âĄSS Funktion zum Suchen (wahlweise mit Ersetzen) von Zeichenketten in Vektoren. Es können mehrere Begriffe gleichzeitig gesucht/ersetzt werden.
âĄW Liste der Wochentage
Wie gesagt, es handelt sich nur um eine kleine Auswahl. Es fehlen etwa die Funktionen zur Fehlerdiagnose, Trace- und Stop-Funktionen und viele mehr.
Abb. 2
APL/68000 besteht aus einem âSupersetâ, einer Ubermenge, des APL.SV. Letzteres ist derzeit eine Art âIndustriestandardâ (made by IBM). Damit ist das APL des ST bestens fĂŒr BĂŒro-Anwendungen gerĂŒstet, wo meist KompatibilitĂ€t zu bestehender Software gefordert ist. Und APL selbst ist (nach Cobol und Fortran) der Industriestandard. Fragen Sie mal âBig Blueâ IBM! - âSupersetâ heiĂt: da ist mehr drin. Stimmt. Es ist etwa möglich, auch Textstrukturen zu sortieren. Die Kriterien sind beliebig. Die Funktionen âKomprimierenâ und âExpandierenâ sind erweitert: APL/68000 lĂ€Ăt als linkes Argument auch Integer-Elemente zu. FĂŒr das maĂstĂ€bliche VergröĂern/ Verkleinern von Bitmaps keine unwesentliche Erleichterung. Und neben dem âFormatâ-Befehl und der System-Funktion âQUAD-FMTâ gibt es eine Cobol-Ă€hnliche âALPFLAâ-Funktion, die fĂŒr zusĂ€tzlichen Komfort bei der Anzeige von Tabellen sorgt. Kommentare können am Ende jeder Funktionszeile stehen. Mehrere unabhĂ€ngige AusdrĂŒcke in einer Zeile sind möglich.
Zugaben
APL ist eine ânackteâ Sprache. Streng genommen gehören weder ein Dateisystem noch irgendwelche Interfaces zum Rechner zur Sprachdefinition -APL ist zwar eine Sprache, aber nicht unbedingt eine Computersprache. Die GĂŒte einer Sprachversion hĂ€ngt daher nicht unwesentlich von den gebotenen âExtrasâ ab. Dazu gehören neben einem Dateisystem alle Systemfunktionen und Systemvariablen. Beim ATARI ist zudem die Grafik-UnterstĂŒtzung von Interesse - wo doch APL mit seinen Bitmaps und trigonometrischen Funktionen wie geschaffen ist fĂŒr visuelle Anwendungen.
Aber der Reihe nach: Das Dateisystem des APL/68000 ist hervorragend. So einfach habe ich noch nie mit meinen Daten umspringen können (siehe Kasten). In Kombination mit den APL-KĂŒnsten bezĂŒglich der Listenverarbeitung ist selbst bei komplexen Anwendungen ein separates Datenbankpaket nicht mehr nötig. Meine Datenbank heiĂt APL.
GrundsĂ€tzlich werden bei Systemfunktionen zwei unterschiedliche Wege beschritten. Die Einen, nicht schĂŒchtern, packen rein, was immer gerade nĂŒtzlich erscheint. Die Anderen sind eher vorsichtig, um gröĂtmögliche KompatibilitĂ€t zu anderen Systemen zu wahren. MicroAPL zĂ€hlt eher zur letzteren Sorte. Sicherlich ist alles enthalten, was ich von IBM-Rechnern her kenne. Die sparsamen Erweiterungen sind aber auf jeden Fall vom Feinsten: Keine Spielereien, sondern Hilfsmittel, bei denen sich mir nur noch die Frage stellt, warum âdie Anderenâ sie nicht haben. Am wichtigsten: Die Funktion zum Suchen und Ersetzen in Characterstrings und die Funktion zum Umwandeln von Matrizen in platzsparende Strings (mit Delimitern) und umgekehrt.
Abb. 3
Die Funktionen zur Fehlerbehandlung sind sehr ausgefeilt. In meinen umfangreichen Anwenderprogrammen konnte ich auftretende Programmfehler nicht nur (unmerklich fĂŒr den Benutzer) registrieren, sondern meist auch, dank detaillierter Information ĂŒber Lokalisierung und Art des Fehlers, reparieren.
FĂŒr die Anbindung des APL an den ATARI gibt es eine Reihe von Bibliotheken (Workspaces), die im Lieferumfang enthalten sind. Alertboxen, MenĂŒs und Dialogboxen sind mit Hilfe von Coverfunktionen sehr einfach zu handhaben. Stundenlange Sitzungen mit dem Resource-Construction Set entfallen. Auch die VDI-Funktionen stehen zur VerfĂŒgung. Hier sind meine EindrĂŒcke etwas zwiespĂ€ltig: Zum Erstellen von GeschĂ€ftsgrafiken, Diagrammen und Kurven sind die Coverfunktionen hervorragend geeignet, da sie sehr bequem zu handhaben sind (kein Stochern in den Kontrollstrukturen). FĂŒr CAD-Anwendungen ist aber der Overhead zu groĂ. Das ist ausgesprochen schade, gerade weil APL an sich fĂŒr rechenintensive Applikationen wie geschaffen ist.
Abb. 5
Nach Angaben von gdat wird es zwei Lösungen geben: MicroAPL arbeitet an einer Dokumentation der internen Schnittstelle zum VDI. Direkter Zugriff auf dieses Interface beschleunigt die Grafik auf VDI-Speed. Das konnte ich eigenhĂ€ndig testen. AuĂerdem gibt es bei gdat einen Set von Funktionen, die direkt auf den Line-A Variablen operieren. Damit sind Geschwindigkeitsprobleme bei der Grafik pass. -Aber der Blitter spielt mit, wenn er soll.
Ein weiterer Workspace dient dem Zugriff auf das TOS-Dateisystem. Die darin enthaltenen Funktionen haben es mir gestattet, mit Ist Word editierte Texte einzulesen, um sie unter APL weiter zu âbehandelnâ und mit einer Adressdatei zu verknĂŒpfen, die doch einiges mehr kann als Ist Mail. Auch DEGAS-Bilder (monochrom) konnten problemlos gelesen, verarbeitet und wieder abgelegt werden. Mit den APL-SprachkĂŒnsten ist es eine reine Freude, Zeichnungen zu mischen, zu manipulieren (Drehen, Spiegeln ...), oder etwa AusschnittsvergröĂerungen herzustellen.
Zukunftssicher
Manchen Entwickler ĂŒberkommt der nackte Horror, wenn er an die Ăbertragung seiner Programme auf andere Rechner denkt. APL ist da recht angenehm: Es gibt Interpreter fĂŒr alle gĂ€ngigen Rechner, vom Micro bis zum Mainframe. Durch Coverfunktionen lassen sich maschinenabhĂ€ngige Stellen leicht isolieren. Wenn Sie mal Lust auf die SUN (Workstation unter UNIX) verspĂŒren, sollten Sie die rechnerunabhĂ€ngige Systemfunktion QUAD-CC benutzen: Selbst auf einem seriellen Terminal lĂ€uft Ihre Software ohne Ănderungen. Interessanter ist allerdings die Portierung auf MAC oder AMIGA. Haben Sie schon mal eine Dialogbox fĂŒr den ST entworfen, die sofort auf dem MAC lĂ€uft? Oder eine GeschĂ€ftsgrafik auf die AMIGA portiert? - Ich konnte mich davon ĂŒberzeugen, daĂ beide FĂ€lle möglich sind, ohne auch nur ein Zeichen im Code zu verĂ€ndern.
Und die Zukunft auf dem ST? APL/ 68000 lĂ€uft nach Angaben von MicroAPL auf allen Modellen, vom alten 260-ST bis hin zum Mega-ST mit Blitter und 4 Megabytes RAM, sowie in allen Auflösungen. Da MicroAPL grundsĂ€tzlich keine unsauberen Tricks verwendet, hat kein ST-Besitzer Ărger mit neuen TOS-Versionen zu befĂŒrchten. Ein Test mit dem Mega-ST (4 Mb, neues TOS) verlief einwandfrei. Und da schon APL-Versionen fĂŒr die CPU 68020 (mit Coprozessor-UnterstĂŒtzung) existieren, ist auch fĂŒr kommende ATARI-Entwicklungen vorgesorgt.
Abb. 6
Der ST ist (dank GEM) leicht zu benutzen. Mit APL ist er nun auch leicht zu programmieren. Es soll VĂ€ter geben, die ihren schulpflichtigen Kindern einen ST nur unter der Bedingung hinstellen, mit APL zu arbeiten. Das könnte sich nĂ€mlich ĂŒber eingesparte Nachhilfestunden schnell bezahlt machen. FĂŒr die Lösung von ad hoc-Problemen ist APL sowieso die Sprache der Wahl, und im Profi-Bereich hat APL seinen Platz im sogenannten âPrototypingâ sowie bei Anwendungen, die flexibel und anpassungsfĂ€hig sein mĂŒssen. Und ein MUSS ist APL immer dort, wo es auf kurze Entwicklungszeiten ankommt. Ein Run-Time System ist kostenlos verfĂŒgbar. Damit ist die letzte HĂŒrde fĂŒr die Verbreitung professioneller Software gefallen.
Ich kann dem APL/68000-ST in der Version 6.05 bescheinigen, daĂ es alle AnsprĂŒche erfĂŒllt, die von einer professionellen Programmiersprache verlangt werden. Angesichts der vielen Features, die bei anderen Sprachen zu den Extras zĂ€hlen (oder nicht existieren), ist der Preis von DM 428,- als âbilligâ zu bezeichnen. Es sollte mich wundern, wenn dieses APL nicht binnen kĂŒrzester Zeit vom Geheimtip zum Massenschlager avanciert. - Eigentlich schade um den Hauch von ExklusivitĂ€t, den ich beim Gebrauch von APL auf dem ST bisher genieĂen konnte.
Name: APL/68000-ST
Hersteller: MicroAPL Ltd., London
Preis: ca. DM 298,-
Bezugsquelle:
gdat mbH
Stapelbrede 39
48 Bielefeld 1
Abb. 4