Object C - Die Zukunft für ATARI?

Mit CPR Object C für ST steht endlich eine C-basierte OOP-Sprache zur portablen Entwicklung zwischen den Plattformen ATARI ST, AMIGA, MS-DOS (32bit), OS/2 Warp, Windows 3.X/95/NT, MacOS (68K & PPC), LINUX, SUNOS und Solaris (SPARC) zur Verfügung.

Object C ist nicht mit dem Objective C des GCC zu verwechseln, bietet aber dessen Vorteile und ist für die Systeme ATARI und AMIGA im aktuellen Release kostenlos im CompuServe Forum < GER-SOFT > (Sektion CPR) verfügbar! Für die Zukunft der ATARI-Rechner könnte Object C zum wichtigsten Hoffnungsträger werden.

Object C und die Zukunft des ATARI

Die schlechte Lage um die ATARI-Systeme ist allgemein bekannt. Dank Emulatoren wie TOS2WIN und MagiC-Mac besteht zwar die Möglichkeit, auf andere Hardware auszuweichen, doch wird hiermit langfristig eher ein Absterben des ATARI-Marktes einhergehen, denn Win95 oder OS/2 laufen auf Pentium-Rechnern nun einmal effektiver und grafisch ansprechender, als dies eine Betriebssystem-Emulation bieten könnte.

Man könnte einwenden, durch Java würde alles wieder gut werden. Das ist jedoch zweifelhaft, denn Java-Programme erfordern weit mehr Hauptspeicher und Rechenleistung als „normale" Programme. Der verbreitete SM 124 mit 640x400 SW-Pixeln wäre ebenfalls ungeeignet für Java, denn Farbbildschirme sind hierfür Grundvoraussetzung. Die vollständige Garbage Collection von Java, die durch den Pointer-Verzicht „erkauft" wurde und die hiermit zusammenhängenden indizierten Array-Zugriffe tun ihr übriges, um den Bedarf an Rechenleistung für STs untragbar zu machen. Man kann wohl auch davon ausgehen, daß Anbieter von Java-Software bald die Rechenleistung eines Pentium 133 und 16 MB an RAM als Grundausstattung ansehen werden und aufgrund des Konkurrenzdruckes aufwendige Animationen in ihre Programme integrieren werden. Zur Zeit bremst hier wohl die Leistungsfähigkeit des WWW noch etwas, das wird sich jedoch ändern. Folglich werden nur wenige Programme auf wenigen Rechnern sinnvoll einsetzbar sein.

Viele ATARI-Systeme stehen heute nur noch als Videospielzeug in Kinderzimmern. Für Softwareentwickler reduziert sich die Anzahl potentieller Softwarekäufer deshalb derart stark, daß Entwicklung, Marketing und Vertrieb sich kaum noch rechnen. Zudem sind ATARI-Kunden traditionell günstige Softwarepreise gewohnt. Damit sich die Entwicklung für STs überhaupt rentieren kann, müßte das ST-Produkt gewissermaßen als Nebenprodukt der Windows-Entwicklung anfallen. Nur wenn ein Entwicklungssystem die Effizienz der führenden Entwicklungstools für Windows bietet und die ATARI-Plattform unterstützt, dann wäre eine solche Überlegung für Softwarehäuser überhaupt interessant. Nun ist der ATARI-Markt allein leider immer noch zu klein für den zusätzlichen Entwicklungsaufwand.

Die logische Strategie ist also offensichtlich: Es müssen „Verbündete" gesucht werden. Vergessen Sie also das Feindbild AMIGA und freuen Sie sich über jeden verkauften Macintosh, denn erst durch die Möglichkeit, ohne größeren Mehraufwand portabel für ATARI, AMIGA und MacOS neue Windows-Programme entwickeln zu können, kann es eine Zukunft für STs geben! Benutzer von ATARIs und AMIGAs sind in den letzten Jahren nicht gerade durch Software verwöhnt worden.

Gerade deshalb könnten Softwareentwickler frühe Versionen ihrer Windows-Software für ATARI und AMIGA anbieten. Die ATARI und AMIGA-Kunden würde diese Software dankbar annehmen und somit die Weiterentwicklung der eigentlichen Zielplattform „Windows" mitfinanzieren. In der Version 2.x wäre die erstellte Software dann möglicherweise den Konkurrenzprodukten des Windows-Marktes gewachsen, und die Durststrecke bis zu ersten Einnahmen aus diesem Marktsegment würde weiter durch Verkäufe im ST/AMIGA-Bereich überbrückt.

Bild 1: Object C unter „Mupfel"
Bild 2: Object C Compiler-Optionen.

Sollte das Produkt sich wider erwarten nicht am Windows-Markt durchsetzen können, dann würde die Firma im Gegensatz zur normalen Entwicklung nicht konkursgefährdet, denn einerseits wären große Teile der Entwicklungskosten bereits durch den ST/AMIGA-Markt abgedeckt, andererseits unterstützt die GUI-Klassenbibliothek von Object C auch die Zusatzmärkte MacOS und OS/2.

Zur Ankurbelung des beschriebenen Entwicklungsprozesses wären alle aufgerufen:

  1. Der Erwerb von alternativen Betriebssystemen für STs und Empfehlungen dieser Systeme durch Zeitschriften sollte nur dann stattfinden, wenn hierdurch keine Aufsplittung der ATARI-Gemeinde in Gruppen von Nutzern inkompatibler Software einherginge.
  2. Die ATARI- und AMIGA-Magazine sollten ihre Bemühungen zur Unterstützung von Entwicklungshäusern und deren Marketingbemühungen koordinieren (z.B. durch kostenlose Werbung im WWW-Server der Zeitschriften und Zusammenarbeit mit Shareware-Autoren und Shareware-Vereinigungen). Bei Verkaufsabwicklung über die WWW-Seiten eines Verlages könnte ein Kostenzuschuß an den Verlag weitergeleitet werden.
  3. User-Groups und Verlage sollten Autoren besonders interessanter Shareware anderer Plattformen bitten, ihre Software über Object C auf den ATARI und AMIGA zu portieren. Hierzu wäre es sinnvoll, den Autoren das komplette Paket aller kostenlosen Object C Tools zuzuschicken. Der Autor könnte hierzu den Preis eines ZIP-Mediums per Nachnahme bezahlen, womit der Absender lediglich ein paar Mark Porto zahlen müßte. Im Gegenzug könnte der Autor eine Gratislizenz der Software der alten Plattform bzw. der ATARI-Plattform per Fax bestätigen.
  4. Hobby-Programmierer sollten den Quellcode nützlicher Object C Module CPR kostenlos zur weiteren kostenlosen Verteilung anbieten und eine entsprechende Kurzmeldung an die ATARI-Zeitschriften weiterleiten.
  5. Als Koordinationsstelle für alle Object C Belange immer die Sektion CPR des CompuServe Forums GER-SOFT bzw. die demnächst verfügbare CPR Homepage verwenden bzw. von anderen Home-Pages hierauf verweisen.

Object C auf MagiCMac oder ATARI ST

Object C benötigt nicht besonders viel RAM und läuft sowohl auf ATARI 1040 STs als auch auf MagiCMac und somit voraussichtlich auf den meisten ATARIs. Object C benötigt einen ANSI C kompatiblen C-Compiler. Für ATARI-Entwickler ist GCC also zwingend. Wenn vom GNU-Paket lediglich „libc" (also StdIO, malloc, etc.) verwendet wird, dann werden keine kommerziellen Bibliotheken von GNU gelinkt, und der GCC kann zur Erstellung kommerzieller Software verwendet werden. CPR gestattet AMIGA-und ATARI-Entwicklern ebenfalls die kostenlose kommerzielle Nutzung und freie Distribution des vorliegenden Object C Compilers einschließlich vorhandener Bibliotheken. Weil die Version gcc 2.7.2 des „Software Service Seidel" sehr stark an Minix orientiert ist, wurde der alte Release 1.5.4 des CompuServe Forums „Atari ST Prod." verwendet, der übrigens gut mit der „Mupfel"-Shell der „Seidel-CD" zusammenarbeitet. Der „Software Service Seidel" hat sich freundlicherweise bereit erklärt, CPR mit kleinen Hardware-Spenden zu unterstützen. Im Gegenzug bemüht sich CPR stärker um die Integration der Object C Software auf die Minix GCC-Umgebungen der Seidel CDs. (siehe Bild 1)

Object C 2.1.8 ist auf allen Plattformen eine StdIO-Version (für Windows und MacOS sind kompatibel hierzu 2.3.3 Versionen mit GUI verfügbar) und kann ähnlich einem C-Compiler mit Parametern gestartet werden, läßt sich aber auch parameterlos aufrufen und bietet dann *eine kleine Mini-Shell, deren Hauptzweck vor allem darin besteht, durch Eingabe von 1, 2 usw. die Datei „cmdfile.1", „cmdfile.2" usw. bequem starten zu können. Weil Object C sich selbständig um Dateimodifikationszeiten kümmert, sehen solche Cmdfiles sehr einfach aus. Üblicherweise verwendet man je Object C Modul (1-254 Quelldateien) ein Cmdfile und ein übergeordnetes (Master-) Cmdfile zur Ausführung aller Modul-Cmdfiles. Wenn Ihre GCC-Um-gebung also gut eingerichtet ist, dann muß vor dem Start des normalen C-Make also nur „objc -ecmdfile.l" ausgeführt werden, um alle ".c"-Dateien und ".h"-Dateien für den normalen GCC-Zyklus vorzu bereiten.

Während Object C mit reduziertem Buffersize (Option -b20000) sogar auf einem ATARI 1040 ST mit 1 MB RAM läuft, benötigt GCC schon etwas mehr Speicher. Im übrigen werden Sie hauptsächlich die Optionen ""-ddeclfile.h" zur Angabe des Namens der automatisch erzeugten Deklarationsdatei benötigen. Die Bedienung des Object C Compilers ist also relativ trivial. Die README-Datei gibt detaillierte Installationstips (siehe Bild 2).

Bild 3: Der Object C Ordner

Was bietet Object C im Vergleich zu C++ und ANSI C?

Object C bietet die wesentlichsten Vorteile von C und C++. Objektorientierte Bestandteile werden jedoch modularer als in C++ aufgebaut. Dabei verwendet Object C einfachere aber flexiblere Konzepte als C++, wodurch Object C Programme übersichtlicher und pflegeleichter als C++ Quellcode sind. Ein Beispiel: Object C gestattet den direkten Zugriff auf Objektattribute durch Anwendung von „objp->attrname" bzw. der Kurzform „..attrname", während C++ neben „this->attrname" auch „attrname" zuläßt, wobei hierbei ungeklärt ist, ob auf eine globale Variable, eine lokale Variable, ein Parameter oder eben das Attribut zugegriffen wird. Object C verlangt die explizite Anforderung eines Datenzeigers auf geerbte Attribute, während C++ den „attmame" ebenso auf alle geerbten Attribute anwendet, wodurch sich unerwünschte Nebeneffekte in C++ viel leichter verstecken können. Um dieser Probleme Herr zu werden, werden in C++ diverse Zugriffsmodifizierer eingeführt, was nichts anderes bedeutet, als zu sagen: „Diese Klasse darf hier nur lesen, diese kann das Attribut auch schreiben und eine andere sieht es nicht einmal usw." Object C bemüht sich also um klare und einfache Regeln, bietet eine dynamische Vererbung, stellt eine leistungsfähige und nach Bedarf nutzbare listenbasierte halbautomatische Garbage Collection zur Verfügung, was ungefähr bedeutet, der Programmierer muß seine Objekte selbst freigeben, Object C entfernt die Referenzen aus allen Objektlisten. Durch geeignete Belegung dieser Listen hat man dann zwar etwas mehr GC-Programmieraufwand, erhält dafür aber auch deutlich mehr Geschwindigkeit. Rechnet man die Summe aller Vor- und Nachteile zusammen, erhält man im Vergleich zu Java und C++ etwa 50% effizientere Entwicklung unter Object C. Zur Anwendung von C++-Bibliotheken ist ggf. ein Object C Interface Modul zu entwerfen. Aufgrund der übersichtlichen Sprachstruktur ist Object C in wesentlich kürzerer Zeit zu erlernen als C++ (in 1-2 anstatt in 6-9 Monaten) und eignet sich besser zur Wiederverwendung alter C-Bibliotheken.

Der BIN-Ordner enthält neben dem Object C Compiler noch ein Hilfsprogramm zur Wandelung von Cr-Nl Formaten (gcc benötigt NL als Zeilentrenner), während manche Editoren CR oder CRNL bevorzugen.

Die komplette Dokumentation befindet sich im DOC-Ordner (sogar in Deutsch und Englisch). Die deutsche Dokumentation wurde in ASCII-Form zur Verfügung gestellt und kann somit per Doppelklick geöffnet werden, während die englische Dokumentation als Sammlung von Screenshots der Seiten im GIF-Format vorliegt (z.B. durch das PD Programm WATCH_IT zu öffnen).

Die Klassenbibliothek OCC (Object C Classes) ist kostenlos im Quellcode über das CompuServe Forum verfügbar und wurde bisher auf MacOS 7.x (68K & PPC), OS/2 Warp und Windows 3.X/95/NT angepaßt. Dabei kann Aaron-Look (System 8 Standard) auch auf System 7.x Systemen ohne installiertes Aaron-Init verwendet werden. Gleiches gilt für Windows 95-look und Windows 3.x.

Im Resource-Paket des OCC 1.3 sind etliche Picture-Buttons zum Design von Toolbars enthalten. Alle Controls sind für alle Plattformen verfügbar (also auch OS2-NoteBooks unter MacOS) und können mit Hintergrund bildern verwendet werden. Für die Erzeugung des oben gezeigten Fensters sind lediglich etwa 2 Seiten Quellcode nötig, der dann auch auf allen Plattformen lauffähig ist.

Bild 5: Eine Dialogbox unter OCC 1.3

Hintergrundbilder lassen sich automatisch im Mosaic-Style auf Fenstergrößen anpassen. Die Größe von Listboxen kann ebenfalls zur Laufzeit bequem geändert werden. Sogar Hintergrundbilder für Listboxen sind möglich. Ein Object C Kurs wird demnächst an diesen Artikel anknüpfen. Derzeit portiert das Magazin „ST Computer & ATARI Inside" die OCC-Klassenbibliothek auf TOS. CPR kümmert sich in Zusammenarbeit mit ehemaligen Mitarbeitern von AMIGA Technologies um die AMIGA Adaption der Klassenbibliothek. Es wird wohl 4-5 Ausgaben der „ST Computer & ATARI Inside" dauern, bis OCC für diese Systeme fertig ist. In der Zwischenzeit wird in der „ST Computer & ATARI Inside" auf die allgemeine Programmierung mit Object C eingegangen. Wer es eiliger hat, der kann die aktuelle Shareware Object C 2.3.3 B für Macintosh bzw. für Windows aus dem GERSOFT Forum laden (dem MacOS-StuffIt-Archiv fehlt die Resource Fork, also nicht mit dem Extraktor, sondern mit der Stuffit Lite Shareware (Option: „alle Dateien erkennen") extrahieren. Denn für diese Plattformen ist OCC bereits im Forum vorhanden.

Weitere Materialien zu Object C

Die Zeitschriften „SE-Software-Entwicklung/Awi-Verlag" und „Toolbox und Multimedia" (mit CD) berichten regelmäßig über Object C. Insgesamt sind in den letzten 20 Ausgaben der „Software-Entwicklung" etwa 12 Artikel zu Object C veröffentlicht worden. Die Ausgaben 5-8/96 der „Toolbox" enthalten die Windows/Mac-Shareware und einen OCC-Kurs. Einige Artikel der „Software-Entwicklung" sind im JPG-Format im GERSOFT-Forum von CompuServe (Sektion CPR) zu finden. Die Ausgabe 11/96 des DOS-Magazins lobt Object C in einem unabhängigen 3-Seiten-Test. Wäre der DOS-Tester selbst auf die Idee gekommen, in der hierfür vorgesehenen OCC OpenWindows_()-Funktion durch „$new(Window,...)" ein Fenster für sein Programm zu erzeugen, wäre die Dokumentation der einzige Kritikpunkt des Tests gewesen. Wie erwähnt, wird die „GNU gcc"-CD von „Seidel" zukünftige ATARI-Inhalte zum Thema Object C enthalten. Auf der AMIGA-Seite integriert der führende C++-Anbieter „Haage und Partner" Object C in sein „Storm C++"-Paket. Unter AOL kann Object C Software z.B. aus dem „Metrowerks" Forum oder dem „Apple Entwickler" Forum geladen werden.

Ausblick

Demnächst wird eine komplexe Speicherverwaltungsstruktur „Mangrove Manager" (Inhalte: Parser, beliebig verknüpfbare Datensätze, Garbage Collection, Suchautomatismen, Speichern/Laden von Teilbäumen etc.) und eine kostenlose Vollversion des ADABAS SQL mit 100 MB Fassungsvermögen und 5 gleichzeitig arbeitenden Clients (ATARI-Rechner werden jedoch über ein Netzwerk auf den Windows95-Server zugreifen müssen) mit Object C ausgeliefert werden. Die ADABAS-Datenbank (ursprünglich von Siemens/Nixdorf, jetzt von der Software AG gepflegt) ist schneller als Oracle, so daß auf sie Oracle-kompatibel zu-gegriffen werden kann. Sollten mehr als 100 MB oder mehr als 5 Clients benötigt werden, dann ist ADABAS immer noch weit preisgünstiger als Oracle oder Sybase. Zusätzlich hierzu wird eine neue KI-Sprache (u.a. abwärtskompatibel zu LISP) Teil des Object C Paketes werden. Sowie OCC auf ATARI portiert wurde, kann das derzeit entwickelte Object C 2.5 mit Quellcode-Manager/Browser und allen zugehörigen Tools wie GUI-Builder dann direkt auf STs angepaßt werden. Parallel wird derzeit an einer OCC-Anpassung für Motif (Solaris/LINUX) gearbeitet. Wie die Laufzeitbibliotheken ist auch dieser OCC-Release dann kostenlos verfügbar. Sollten Sie als professioneller Softwareentwickler Entwicklungssupport wünschen bzw. kommerzielle Programme für Windows oder MacOS vermarkten wollen, dann können Sie Ihre MacOS bzw. Windows-Version registrieren lassen (MacOS 198,- DM, Windows 998,- DM).

Bei der Registrierung der Windows-Shareware werden Ihnen dann neben dem Registrierungsmeldungsdeaktivierungscodes weitere Object C 2.1.8 Compiler für DOS, OS/2 und LINUX zugeschickt, die sich Ideal in den Make-Prozess von Watcom C++ oder ähnlichen Systemen integrieren lassen.

Für Multi-Plattform-Entwickler lohnt es sich, vorerst auf den 2.5 Release zu warten und solange mit der Shareware zu arbeiten. 2fach Updates haben bei CPR den Preis einer Vollversion. Das Bündle Object C 2.5 Light (mit optionalen Updates) bzw. das „normale" Object C 2.5 (mit 2fach Updates) reicht also bis zur Version 3.0 (2.5->2.7->3.0) und bietet dann ein exzellentes Preis-/Leistungsverhältnis.

Selbstverständlich werden alte Releases in eingeschränkter Form (wahrscheinlich wird beispielsweise der GUI-Builder nicht freigeschaltet sein) als unregistrierte Shareware nutzbar sein. Für Hades-Entwickler Carasys sind TOS und Object C ebenfalls von Interesse. Carasys ist deshalb bereit, das Magazin „ST Computer & ATARI Inside" nötigenfalls bei der OCC-Portierung zu unterstützen.

Wer am Object C-Projekt Interessiert ist, weitere Informationen benötigt oder sogar daran partizipieren möchte, wendet sich bitte an:

Anschrift:
Cross Platform Research Germany
Flurweg 70b
12357 Berlin


Andreas Guthke
Aus: ST-Computer 04 / 1997, Seite 37

Links

Copyright-Bestimmungen: siehe Über diese Seite