REBOL der Rebel

ArticleCategory: [Choose a category for your article]

Software Development

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

en to de Sebastian Stein 

AboutTheAuthor:[A small biography about the author]

Georges ist ein langjähriger Unixnutzer (sowohl beruflich als auch privat). Er ist ein Rebol Fan der ersten Stunde. Falls sie der französischen Sprache mächtig sind, können sie einen Artikel über Rebol, den er vor etwa 2 Jahren geschrieben hat, nachlesen unter http://www.amiganews.com/ANN/ no117/rebol.shtml

Abstract:[Here you write a little summary]

Rebol ist eine hauptsächlich für die Kommunikation im Internet entwickelte Sprache, aber man kann noch wesentlich mehr damit anstellen.
REBOL steht für Relative Expression-Based Object Language (Relative ausdrucksbasierte Objektsprache).
Auf http://www.rebol.com kann man die aktuelle Version (2.3) von Rebol/Core für über 40 verschiedene Plattformen herunterladen. Rebol ist auch mit verschiedenen Linux-Distributionen erhältlich, dann aber in älteren Versionen.
Eine aktuelle Entwicklung ist Rebol/View, das ebenfalls als Betaversion 0.9 (4.1) zum Download bereit steht.
Rebol/View ist eine der letzten großen Verbesserungen von Rebol. In diesem Artikel unternehmen wir den Versuch, uns einen Überblick über all die neuen Möglichkeiten von Rebol zu verschaffen.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Einleitung

Die Idee hinter Rebol war es, eine einfache Sprache zu schaffen, die der menschlichen Sprache wie ein Dialekt verwandt ist. Carl Sassenrath, der Gründer von Rebol, ist in der Computerszene eine Bekanntheit, da er schon für verschiedene Firmen wie Apple, Commodore, HP usw. gearbeitet hat. Die Amiga Gemeinschaft verdankt ihm zum Beispiel viel.
Aber warum sollten wir über Amiga reden? Die größte Besonderheit des Amiga Betriebssystems ist die enorme Kompaktheit. Die aktuellste Version (3.5) ist nicht mal 20 MB groß. Das mag etwas komisch für denjenigen klingen, der den Einstieg in die Computertechnik mit einem Betriebssystem der Größenordnung 200 bis 600 MB erlebt hat.
Dies könnte ein Grund sein, warum Leute vergessen haben, auf kompaktes Design zu achten, als sie selber mit der Softwareentwicklung begonnen haben. Es gibt eine gewaltige Menge an Werkzeugen und auch Skriptsprachen sind sehr hilfreich. Trotzdem werden immer sehr viele Zeilen Code benötigt, um etwas sinnvolles zu machen. Meistens werden die Sprachen in bestimmten Anwendungsgebieten genutzt. Perl und Rexx zum Beispiel werden von System Administratoren verstärkt eingesetzt. Darüberhinaus kann man aber noch wesentlich mehr mit Perl anstellen, als reine Netzwerkverwaltung.
Wie dem auch sei, im Zusammenhang Kompaktheit und Vielseitigkeit ist Rebol ein Vorzeigemodell.
Man kann sagen, dass man fast alles mit Rebol realisieren kann. Die Grenzen setzt nicht die Sprache, sondern die eigene Vorstellungskraft.
Doch machen wir mal eine Rundführung durch Rebol.

Präsentation

Wie bereits erwähnt ist Rebol für mehr als 40 Plattformen verfügbar.
Das betrifft hauptsächlich Rebol/Core als zentrale Anwendung. Rebol/Core bietet die zur Entwicklung nötigen Werkzeuge, selbst dann, wenn der größte Teil der Applikation Internetfunktionen nutzt.
Mit Rebol/Core kann man Web und FTP Zugriffe, Email Kommunikation und CGI Skripte verwalten. Man kann nicht nur Text- und HTML-Dateien manipulieren, sondern auch Systemprogramme oder noch höherentwickeltere Ideen verwirklichen.
Die aktuelle Version ist 2.3, etwa 350 bis 400 KB (unkomprimiert), je nach Plattform. Das Paket besteht aus 2 ausführbaren und 2 Konfigurationsdateien: rebol.r und user.r. Die letztgenannte existiert aber nicht in den verfügbaren Paketen. Diese Datei wird erst während des ersten Starts erstellt. Es muss eigentlich nichts weiter über die Installation gesagt werden, da man einfach diese Dateien in ein Verzeichnis, das man z.B. rebol nennt, entpacken muss.
Man kann noch einige Umgebungsvariablen setzen, die dann auf das erstellte Verzeichnis verweisen.
In den verfügbaren Paketen sind weitere Dateien: 2 Skripte und 2 HTML Dokumentationsdateien. Mit dem einen Skript kann man Feedback (feedback.r) an die Autoren senden und mit der anderen Datei namens rebdoc.r wird die Erstellung der Dokumentation (Schlüsselwörter) im HTML Format möglich. Die beiden HTML Dateien beinhalten allgemeine Hinweise und die Installationsanleitung. Weitere Dokumentation und Anleitung ist auf der Rebol Internetseite verfügbar.
Als nächstes sollte man sich Rebol/View ansehen. Man könnte sagen, es ist Rebols graphische Benutzeroberfläche (GUI). Mehr dazu weiter unten!
Im Moment der Erstellung dieses Artikels ist Rebol/View nur für Amiga, FreeBSD, Linux und das Microsoft Betriebssystem verfügbar. In der Entwicklung sind aber noch Versionen für BeOS R5, Irix, HP-UX, AIX und Solaris Sparc Version, die hoffentlich bald veröffentlicht werden.
Rebol/View ist eine einzige ausführbare Datei, etwa von der Größe wie Rebol/Core. Man sollte noch hinzufügen, dass es sich um eine Betaversion (0.9.9 release 4.1) handelt.
Die Dateien sind in ein beliebiges Verzeichnis zu entpacken und beim ersten Start wird zur Eingabe von einigen Netzwerkparametern aufgefordert. Eine Anleitung und eine FAQ (Sammlung häufig gestellter Fragen) ist auf der Rebol Internetseite verfügbar.
Weiterhin sind 2 weitere Produkte verfügbar, nämlich Rebol/Command und Rebol/Apache.
Rebol/Command wird sehr bald veröffentlicht. Es wird ein kommerzielles Produkt zum Zugriff auf DLLs, Applikationen und Datenbanken sein.
Rebol/Apache wird ein integrierbares Modul für den Apache Web Server.
Nun fragt man sich, wozu das alles gut ist?

Rebol/Core

Falls man mit Rebol noch nicht vertraut ist, dann sollte man sich die Beispiel-Skripte herunterladen und ausprobieren. Es stehen mehr als 200 Stück zur Verfügung!
Wie die einzelnen Skripte auszuführen sind, hängt von dem benutzten System (z.B. Betriebssystem) ab. Auf Systemen mit einer Kommandozeile (Shell) lassen sich die Skripte über einen Befehl wie "rebol test.r" starten. Die Endung .r zeigt an, dass es sich um ein Rebol Skript handelt. Um das Skript zu testen, kann man dann "do %test.r" eingeben.
Unter Betriebssystemen ohne Kommandozeile, wie z.B. MacOS (abgesehen von MacOS X natürlich!) reicht es oft schon, das Skript Icon auf das Rebol Icon zu ziehen und fallen zu lassen. Mehr nicht!
Das funktioniert z.B. unter den Microsoft Sachen auch.
Doch gehen wir etwas mehr ins Detail!
Hier ist ein Rebol Skript aus dem Beispiel namens mailsend.r.

REBOL [

Title: "Email Message Sender"
File: %mailsend.r
Date: 10-Sep-1999
Purpose: {A very simple way to send an email.}
Note: {
The TRIM function below is used to remove the blank
lines from the head of the email, so that the first
line of text gets used as the subject.
}
Category: [email net 1]
]
send luke@rebol.com trim {
Hi there.
Just wanted to send you an email message from REBOL.
-Friend
}

Wie man sieht gibt es nur eine Zeile Code!
Alles zwischen dem ersten REBOL und dem schließenden "]" kann man als Kopf betrachten, auch wenn es für das Rebol Skript zwingend erforderlich ist.
Der letzte Teil ist der Inhalt der Nachricht und dazwischen ist der eigentliche Rebol Code:
"send luke@rebol.com trim"
Was das Kommando genau tut, steht im Kopf des Skripts unter "note".
Mehr ist nicht nötig, um eine Email zu versenden, wenn der Computer richtig konfiguriert wurde.
Wem ein Weg bekannt ist, das noch kürzer auszudrücken, der sollte uns das wissen lassen!
Rebol Skripte werden interpretiert und kommunizieren über Ports (ähnlich wie bei Rexx). Durch ihre enorme Kompaktheit lässt das Ergebnis auch nicht lange auf sich warten.
Naja, für Leute, die Rebol schon lange kennen, ist das nicht wirklich verwunderlich.
Wie dem auch sei, mit der Version 2 gibt es mehr Möglichkeiten, mehr Funktionen... Genug um an den Beispiel Skripts die Weiterentwicklung zu zeigen.
Alles, was mit FTP, WEB und Email Kommunikation zusammenhängt, kann sehr einfach mit Rebol realisiert werden. Mit nur wenigen Zeilen kann eine Datei von einem FTP Server runtergeladen werden oder eine Webseite von irgendwoher geholt werden...
Darüberhinaus kann man Texte und HTML Dateien manipulieren. Ein Beispiel zeigt, wie man mit einem nur 2083 Byte großen Skript einen Text in HTML umwandeln kann!
CGI Skripte können ebenfalls benutzt werden. So kann man z.B. ein CGI Formular mit dem dazugehörigen HTML Formular auf sehr einfache Weise erzeugen lassen.
Weiterhin kann man Rebol Skripte auch direkt in eine HTML Seite über ein spezielles Tag integrieren. Leider gibt es erst sehr wenige Browser, die das unterstützen. Um das zu umgehen, kann man aber Rebol auch als CGI Skript für die Generierung von dynamischen Inhalten benutzen.
Ein atemberaubendes Beispiel von nur 1827 Bytes erzeugt einen Webserver!!!
Für diejenigen unter uns, die nicht ohne ihr Handy leben können, gibt es ein Skript, dass eine SMS an ein anderes Gerät schicken kann...
Man kann mit Rebol Dateien verschlüsseln, komprimieren und entpacken. Auch die Erstellung von selbstentpackenden Dateien ist möglich. Bei Interesse sollte man einen Blick auf die Skripte autoextract.r unnd encrypt.r werfen.
Wie vielleicht schon bemerkt, sind diese Beispiel eine wahre Fundgrube. Da es unmöglich ist in diesem Artikel alle zu nennen, sollte man unbedingt selber einen Blick drauf werfen. Das wird keine Zeitverschwendung!
Kurz gesagt, Rebol ist großartig! Die Evolution Rebol/Core bietet jetzt einen guten Zeitpunkt für ein Update... oder sich jetzt damit zu beschäftigen.
Bezüglich Rebol kann man gar nicht mehr von einer Evolution sprechen: Es ist schon eine REVOLUTION! (oder sollten wir vielleicht sagen REBOLution?)

Rebol/View

Für all diejenigen, die sich noch nicht mit Rebol/View beschäftigt haben, hier eine kleine Einführung!
Mit Rebol/View hat man die gleichen Möglichkeiten wie mit Rebol/Core... plus noch viele zusätzliche.
Oder mit einem Wort ausgedrückt: UNGLAUBLICH!
Fangen wir mit einem Beispiel an.
Hier ist ein Skript namens lftest.r.

REBOL [

Title: "New way to access LF languages"
File: %lftest.r
Date: 28-Jul-2000
Purpose: {Shows how easy to create buttons.}
Category: [view VID 1]
]
view layout [
title "LF the multilingual magazine"
across
button "English" button "Français" button "Castellano" return
button "Deutsch" button "Nederlands" button "Italiano"
]

Und hier das Ergebis:

lftest.jpg

Ist doch eine gute Möglichkeit der Sprachauswahl für den LinuxFocus...

Doch weiter... Ein 1413 Byte großes Skript erstellt einen kompletten Grafikeditor!!! Das geht nicht? Doch, hier ist der Beweis:

texted.jpg

Und hier das Skript dazu.

Noch mehr Beispiele? Das Skript image-sort.r erzeugt ein Werkzeug zum Anzeigen und Sortieren von Grafiken mit nur 3442 Bytes! Hier ist es:

imed.jpg

Dieses Bild entstand mit freundlicher Unterstützung von NeXTstep(TM).

Bis jetzt haben wir nur die unheimliche Code Kompaktheit und die vielen Möglichkeiten von Rebol/View gezeigt.
Man könnte sich fragen, ob es nicht noch eine andere Sprache gibt, mit der man sowas mit so wenig Zeilen Code machen kann? Doch wozu sich das Leben mit Compilern (ich denke an den JIT) vermiesen, wenn es doch auch wesentlich einfacher geht?!
Und nun, meine Damen und Herren, etwas komplett anderes.
Während der 80er benutzte man Mailboxen (BBS) mit mehr oder weniger guten Werkzeugen je nach Betriebssystem. Die 90er brachten uns die Browser. Diese wurden mit der Zeit immer größer und größer und sind heute wahre Ungetüme. Immer mehr Seiten nutzen Java und surfen im Internet wird selbst mit schneller Verbindung immer mehr zum Alptraum. Das hängt dann alles vom Betriebssystem, der Bandbreite und natürlich auch vom Browser ab.
Doch nun im 21. Jahrhundert hat eine neue Ära begonnen, durch das Web... oder sagen wir das Reb zu surfen!
Mit Rebol/View kann man durch das Reb ohne Browser surfen!!!
Mit Rebol/View kann man Verbindung zu einigen Seiten aufbauen und all das machen, was man mit einem normalen Browser auch tun kann, z.B.: Dateien runterladen, Seiten anschauen, Updates für Software saugen...
Man braucht sich keine Gedanken mehr über Probleme machen, ob z.B. der Browser die Seite unterstützt oder ob die Applikation auf dem eigenen Betriebssystem läuft!
Doch ein Beispiel sagt mehr als tausend Worte.

connex.jpg

Das ist wirklich eine Internetverbindung! Jeder kann es selber austesten... einfach mit Rebol/View zu Reb Seiten verbinden.
Ein anderes Beispiel. Hier ist das Inhaltsverzeichnis der Juliausgabe des LinuxFocus. Das Skript ist 2197 Bytes groß und funktioniert natürlich. Wenn man auf den entsprechenden Button klickt, erscheint der gewählte Artikel im nun geöffneten Browser.

lfissue.jpg


Mit wenig Mehraufwand könnte man die Artikel lesbar für Rebol/View machen. Hier ist der Quellcode zum selber testen.
Wenn man im Reb mit Rebol/View surft, kann man sich den Code jeder Seite anzeigen lassen, um das Funktionsprinzip zu verstehen.
Eine weitere Informationsquelle sind die Unterverzeichnisse, die Rebol bei jeder Verbindung anlegt. In diesen Verzeichnissen, die nach der URL benannt werden, findet man den Quellcode, Bilder usw.
Es gibt natürlich noch viel mehr über dieses fantastische Werkzeug zu berichten, aber dann bräuchten wir ein ganzes Buch und nicht nur einen Artikel. Wie bereits weiter oben erwähnt: Rebol hat keine Grenzen. Die einzige Grenze ist die eigene Vorstellungskraft.
Einige Hinweise: für diesen Artikel wurde Rebol/Core auf folgenden Systemen getestet, auf AmigaOS 3.5, BeOS 5, MacOS 7.1 (eine andere Version hatte ich leider nicht!), Solaris Sparc 2.6, Irix 6.5.7, Not Terminated 4.0 und natürlich Linux (RH 6.2).
Rebol/View wurde getestet auf AmigaOS, NT und Linux. Eine experimentelle Version wurde für Irix, BeOS 5 und Solaris 2.6 getestet.
Die Skripte und Bilder wurden unter Linux realisiert, aber auf 6 verschiedenen Plattformen getestet.
Was die Skripte betrifft, funktionierten diese auf allen Plattformen gleich, abgesehen von den experimentellen Versionen von Rebol/View.
Der einzige Unterschied bestand in der Geschwindigkeit der verwendeten Maschinen (25 MHz bis 400 MHz)! Auch wenn die CPU Taktfrequenz nicht immer entscheidend ist... zumindest nach dem Trichtergesetz. (Dank an meinen Mitstreiter Javi, der ein großer Philosoph ist, auch wenn ich die Aussage seiner Theorie verdreht habe!).
Übrigens, Herr Intel, haben Sie schon bemerkt, dass bei einer 1 GHz CPU und einem 100 MHz (oder 133 MHz) Bus, die schmale Seite des Trichters noch schmaler wird?
Entschuldigung für diese Abschweifung!!!
Um auf Rebol/View zurückzukommen, kann man sagen, das es wirklich schnell ist. Mit Rebol/View durch das Reb zu browsen geht wesentlich schneller als auf dem herkömmlichen Weg durchs Web. Außerdem ist es sehr eindrucksvoll Rebol als Werkzeug für die Entwicklung von Applikationen zu benutzen.
Wer jetzt noch immer nicht entschlossen ist diese Software auszuprobieren, der kann nicht ganz vernüftig sein!

Zukunft

Als nächstes können wir Version 1.0 von Rebol/View erwarten. Wie bereits erwähnt, sind noch einige andere Produkte in Arbeit. Aber wir haben noch nicht darüber gesprochen, was für die Zukunft zu erwarten ist. Rebol arbeitet zur Zeit an einem sehr großen Projekt namens Rebol/Express. Das wird ein kommerzielles Produkt sein, dass sich voll und ganz der Internet Kommunikation widmet. Mehr über dieses Produkt unter http://www.rebol.com/products.html.
Rebol/Express wird ein echter Herausforderer für Backweb oder Marimba. Aber warten wir es ab!
Doch wer die Leute hinter Rebol kennt, kann mit einer weiteren großartigen Software rechnen.
Bis jetzt haben wir noch kein Wort über die Lizenzproblematik verloren. Rebol/Core ist natürlich frei, steht aber nicht unter der GPL.
Bleibt eigentlich nur noch zu sagen, dass die Leute von Rebol großartig sind!
Sie kümmern sich sofort um jede Rückfrage. Mit dem feedback.r Skript, das in jedem Archiv enthalten ist, kann man auf einfache Weise in Kontakt treten. Sie beantworten alle Fragen, veröffentlichen Dokumentationen und Sammlungen von häufig gestellten Fragen (FAQ). Und das alles kostenlos!
Wir können Dank ihnen auf eine stetige Weiterentwicklung vertrauen.
Ich glaube fest daran, dass Rebol in den nächsten Jahren ein Hauptvertreter der Kommunikation wird.
Also: Rebol testen und auf Empfang bleiben!
Wir leben nicht nur in einer großartigen Zeit, sondern es wird sogar noch besser!