(in Bearbeitung)

X-Talk-Sprachen

Überblick: Gemeinsamkeiten von Hypercarddialekten


aus: Einführung in die Programmierung mit Hypercarddialekten (Sanke 2004)

1. Hypercard (Mac, Claris)
2. HyperPad (DOS, IQ-Technologies)
3. Plus (Mac + Windows, ObjectPlus)
4. Toolbook (Windows, Asymetrix)
5. Supercard (Mac, Allegiant)
6. Oracle Media Objects (Windows + Mac, Oracle)
7. Metacard (Windows + Mac + Unix + Linux, Metacard)
8. Revolution (Windows + Mac + Unix + Linux, Runtime Revolution)


Von den hier aufgeführten Autorensystemen sind inzwischen HyperPad, Plus und Oracle Media Objects vom Markt verschwunden. Hypercard ist seit Jahren nicht weiterentwickelt worden und beschränkt sich wie Supercard auf die Mac-Umgebung. Toolbook ist nur unter Windows benutzbar und hat eine Preisebene von mehreren 1000 Euro erreicht, so dass dieses Programm für schulische Einrichtungen kaum mehr in Frage kommt.
Metacard läuft unter den meisten verfügbaren Betriebssystemen, wobei die erzeugten Dateien leicht von einer Plattform auf die andere portiert werden können und liegt in einer kostenlosen "Starter Kit"-Version vor. Die einzige Einschränkung dieser Einstiegsversion ist eine Begrenzung der Programmzeilen im Skript der Objekte, die jedoch sogar überwunden werden kann.

Revolution ist eine Weiterentwicklung von Metacard, die eine Reihe neuer Funktionen enthält, jedoch im gegenwärtigen Entwicklungszustand noch mit Defiziten behaftet ist, die das Arbeiten mit Revolution beeinträchtigen können. Ebenso ist bei Revolution keine kostenlose "Starter Kit"-Version mehr vorhanden, sondern nur eine auf 30 Tage beschränkte Trial Version.
Revolution hat 2003 die "Metacard engine", d.h. das Kernstück von Metacard, aufgekauft. Die Kaufvereinbarung sieht jedoch vor, dass Metacard-Nutzer die Metacard engine unter den bisherigen Bedingungen weiter verwenden können.
Neue Interessenten an Metacard können von Runtime Revolution (www.runrev.com) beim Erwerb einer Lizenz auf Wunsch gleichzeitig eine kostenlose Metacard-Lizenz erhalten.

Die Weiterentwicklung der Metacard IDE wird von einer Gruppe von erfahrenen Metacard-Nutzern betrieben, die unter der Email-Adresse metacard@lists.runrev.com angesprochen werden kann.

Metacard ist wesentlich leichter zu erlernen als beispielsweise Macromedia "Director" und bietet trotzdem eine Funktionalität, die der der C-Sprachen nahe kommt.
Metacard ist daher ein für schulische Einrichtungen geeignetes Werkzeug zur Entwicklung von Multimediaanwendungen. Metacard ist kein Programm zur Entwicklung von Webseiten, kann aber auf Webseiten zugreifen oder sie aufrufen (oder kann Emails verschicken) und erlaubt es, Metacardprogramme online aufzurufen und sie dann on- oder offline zu verwenden; andererseits kann Metacard sogar in cgi-Skripten (wie Perl etc.) zur Programmierung von Internet-Servern verwendet werden.
Die gesamte Programmierumgebung von Metacard umfasst zip-komprimiert nur 1,4 MB; sie benötigt keinerlei DLLs und kann deshalb ohne spezielle Installation von jedem Verzeichnis und jedem Datenträger gestartet werden.-

Die gemeinsamen Merkmale der X-Talk-Sprachen sind:

Integrierte Entwicklungsumgebung (IDE)

Direkte visuelle Gestaltung der Oberfläche (visual design)

"Objekte" als Programmelemente:

a) Dateien/Files: stacks, books, pads, projects

b) Seiten: pages, cards - bestehend aus den Teilelementen

1. backgrounds (Hintergrund)
2. page, card (Seite)
3. fields (Felder für Text, Graphik oder "Mal"-Objekte)
4. buttons (Schaltflächen, Tasten)
5. images (Bilder)
6. player, stage (für Video- und Sound-Dateien)
7. graphics (intern erstellte Graphiken)

"Objektorientierte" Programmierung,

d.h. keine lineare bzw. sequentielle Programmierung in einem File, sondern Verteilung des
Programmcodes auf die Scripte der einzelnen Objekte (s. III.)

Natürlichsprachige Programmiersprache,

die den Aufwand an Kommentierung drastisch vermindert.

Vordefinierte Programmelemente zur Sprachmanipulation,

auf die unmittelbar zugegriffen werden kann:

a) characters (chars)
b) words
c) items
d) lines

Herstellung von Hypertext

mit Verknüpfungen über "go to" oder "linktext" und "clicktext"

Leichter Einstieg in die Programmierung

mit elementarem Befehlssatz von 10 - 20 Befehlen

Globale und lokale Variablen ohne weitere Typdefinition möglich

und ohne vorherige Deklaration (+ Spezial-Variable "it")

Voller Befehlssatz mit Kontrollstrukturen

wie bei anderen Programmiersprachen (C, Delphi, Pascal, Basicdialekte etc.)

Ergänzung der Sprachen
durch eigene Prozeduren und externe Befehle möglich


I. Objekte

Die 8 Hypercarddialekte (Hypercard selbst, Supercard, Toolbook, WinPlus, HyperPad, Oracle Media Objects und Metacard/Revolution) haben als gleichartige Elemente (-> Objekte):

1. Dateien ("stacks" in Hypercard und Metacard und "books" in Toolbook), die aus mehreren
Seiten bzw. aus mindestens einer Seite bestehen.

2. Seiten mit einem Hintergrund (background), auf denen Felder und Buttons sowie
Graphikobjekte angebracht werden.
In Hypercard und Metacard werden die Seiten als "cards", in Toolbook als "pages" bezeichnet.

3. Hintergrund (background): Auf dem Hintergrund einer oder zumeist mehrerer Seiten
mit einem gemeinsamen Hintergrund werden Objekte, d.h. Felder und Buttons
angebracht, die auf allen zugehörigen Seiten benötigt werden.

4. Felder (fields), die der Aufnahme von Text dienen. Innerhalb der Felder und zum
Textausstausch zwischen den Feldern kann wie mit einer einfachen Textverarbeitung
gearbeitet werden, d.h. es stehen neben einer automatischem "wordwrap"-Funktion
"cut", "copy" und "paste" zur Verfügung. Ebenso können in allen Dialekten (mit
Ausnahme von HyperPad) in einem Feld unterschiedliche Schrifttypen, Größen, Farben
etc. zur Strukturierung und Hervorhebung verwendet werden.

5. Buttons ("Tastern" oder "Schaltflächen" - z.B. in der deutschen Version von Toolbook -), die als
primäre Schaltelemente den Hauptteil des Programmcodes aufnehmen.

6. Images, d.h. importierte Bilder oder Zeichnungen.

7. Graphics, intern mit Zeichenwerkzeugen erstellte Graphiken

8. Toolbook, Metaard und Revolution haben ein zusätzliches Player- oder Stage-Objekt für Video- und Sound-Dateien (Quicktime, MPEG, AVI, Flash)

9. Metacard und Revolution haben separate Scrollbars, die u.a. zur Fortschrittsanzeige verwendet werden können.

II. Adressen

Alle diese Objekte können generell auf verschiedene Weise angesprochen werden:

a) mit ihrem Namen, der ihnen vom Programmentwickler zugeordnet wird:

card "Einführung", field "Lexikon", button "Start" etc., wobei die Namen in Anführungszeichen zu setzen sind.

b) mit einer automatisch zugeteilten ID-Nummer, die für das einzelne Objekt unverändert bleibt, auch wenn z.b. ein Objekt mit einer niedrigeren ID-Nummer gelöscht wird (z.B. button ID 5 von insgesamt 10 Buttons):

card ID 1234, field ID 1006, button ID 1004, group ID 1103.

c) mit einer laufenden Nummer für das einzelne Objekt, die sich automatisch ändert, wenn Objekte, z.B. Seiten (cards, pages), zwischen anderen Objekten eingefügt oder gelöscht werden:

card 1, button 10, field 4.


Die Objektadressen a - c werden kombiniert, wenn z.B. von einer Seite auf ein Objekt einer anderen Seite zugegriffen werden soll:

button "Aufgabe" of card ID 1016 of stack "Grammatik"
field 5 of card "Lexikon"
field ID1005 of card "Auswertung" etc.

III. Programmiersprache

Jedes der oben unter I. beschriebenen Objekte kann mit einem Skript zur Steuerung des Programmablaufs versehen werden, d.h. der Programmcode wird mit den einzelnen Objekten verknüpft bzw. auf sie verteilt. Die einzelnen Objekte rufen sich ggf. durch ihre Skripte gegenseitig auf oder warten auf Nutzereingaben z.B. durch Mausklick oder Texteingaben.

Die Programmiersprachen der Hypercarddialekte entsprechen weitgehend einem in Syntax und Vokabular vereinfachten Englisch, so daß man streckenweise ohne Kommentierung des Programmcodes auskommen kann. Beispiele:

put first word of card field "Lexikon" into line 2 of card field "Aufgabe" of card "Übung"

Bei Toolbook muß bei allen Textmanipulationen (notwendigerweise, aber im Entwurf der Programmiersprache logisch nicht erforderlich) das Wort "text" hinzugefügt werden; die obige Hypercardzeile lautet danach in Toolbook:

put the first word of the text of field "Lexikon" into textline 2 of the text of field "Aufgabe" of page "Übung".

(Der Artikel "the" ist optional und dient nur der besseren Lesbarkeit).

Weitere Beispiele in der Sprache von Metacard:

put field "Eingabe" into Eingabe (d.h. plaziere den Text des Feldes "Eingabe" - der
eingetippt wurde - in die Variable Eingabe)
if Eingabe is Loesung then (falls der Inhalt der Variable Eingabe gleich der
Variable Loesung ist, dann ...)
show field "richtig" (zeige das Feld "richtig")
wait 2 seconds (warte 2 Sekunden)
hide field "Richtig" (verstecke das Feld "richtig")

put the number of words of field "Lexikon" into Anzahl
(zählt die Anzahl der Wörter im Feld und plaziert sie in die Variable Anzahl)

go to next card (schaltet zur nächsten Seite).

Soweit einige Beispiele, die innerhalb eines Skripts zeilenweise kombiniert werden können.

Die Skripte der Objekte werden durch Anwenderaktionen, d.h. durch Mausklicks oder Eingaben über die Tastatur oder indirekt von den Skripten anderer Objekte aus ausgelöst.

Die grundlegende Aktion ist der Mausklick auf einen Button, der in den Skriptsprachen von Hypercard und Metacard im Skript des Buttons mit "on mouseup" abgefangen wird. Ein Button, der zur nächsten Seite weiterschaltet, muß folgendes Skript enthalten:


"on mouseup
go to next card
end mouseup"

"on mouseup" und "end mouseup" sind in jedem Hypercard- und Metacardbutton bereits als Skripttext dieser Grundfunktion enthalten.


 

Kontakt über Email