REBOL de rebel

ArticleCategory: [Kies een categorie voor je artikel]

Software Development

AuthorImage:[Hier komt een kleine foto van jou]

[Foto van de Auteur]

TranslationInfo:[Info over schrijver(s) en vertaler(s)]

original in en Georges Tarbouriech

en to nl Mylène Reiners

AboutTheAuthor:[een korte biografie over de auteur]

Georges gebruikt al lang Unix (zowel commerciële als gratis versies). Vanaf het begin is hij een Rebol fan. Als je Frans kunt lezen kun je eens naar een artikel kijken dat hij twee jaar geleden over Rebol schreef op http://www.amiganews.com/ANN/ no117/rebol.shtml

Abstract:[een kleine samenvatting/beschrijving van het artikel]

Je zou kunnen zeggen dat REBOL een taal is voor "messaging", maar eigenlijk is het veel meer. Wel is REBOL in het bijzonder gericht op communicatie via het Internet.
REBOL staat voor Relative Expression-Based Object Language.
Op http://www.rebol.com kun je de laatste versie (2.3) van Rebol/Core voor ongeveer 40 platforms downloaden. Ook zijn eerdere versies van Rebol beschikbaar in een aantal Linux distributies.
Een van de nieuwste ontwikkelingen wordt Rebol/View genoemd, en je kunt er een beta versie 0.9 (4.1) van downloaden.
Dit laatste is een van de grote verbeteringen binnen Rebol. In dit artikel zullen we een kort overzicht proberen te geven van de vele kenmerken van Rebol.

ArticleIllustration:[Titel-illustratie van het Artikel]

[Illustratie]

ArticleBody:[Het eigenlijke artikel: zet hier tekst en HTML codes]

Introductie

De idee achter Rebol was om een eenvoudige taal te maken, dicht tegen de gewone taal aan, zoals een dialect... nou ja, ongeveer. Carl Sassenrath, de grondlegger van Rebol, is bekend in de computerbranche: hij heeft gewerkt voor Apple, Commodore, HP... Ook bijvoorbeeld de Amiga-gemeenschap is hem veel dank verschuldigd.
Waarom de Amiga? Het belangrijkste dat het AmigaOS onderscheidt is compactheid. De laatste versie (3.5) van het OS is kleiner dan 20 MB. Dit moet wel vreemd klinken in de orgen van nieuwelingen die hun eerste ervaringen opdeden met OSen (of zo) die tussen de 200 en 600 MB innemen.
Dit is een van de redenen waarom men is vergeten dat ontwikkeling ook in het klein kan plaatsvinden. De tools (hulpmiddelen) zijn talrijk en scripttalen zijn absoluut nuttig. Echter: je hebt meestal een groot aantal regels coding nodig, wat je ook met ze wilt doen. Gewoonlijk zijn deze talen bedoeld voor specifieke taken. Perl of Rexx bijvoorbeeld worden bijzonder gewaardeerd door systeembeheerders. Toch kun je veel meer met talen als Perl doen dan alleen netwerkbeheer.
Als je echter over veelzijdigheid en compactheid praat, heeft Rebol een voorbeeldfunctie.
We durven te beweren dat je gewoon alles kunt met Rebol. De grenzen worden niet gezet door de taal, maar door je verbeelding.
Laten we beginnen met een korte rondleiding.

Presentatie

Zoals al eerder gezegd, is Rebol beschikbaar voor meer dan 40 platforms.
Dit betreft Rebol/Core, het onmisbare programma. Met Rebol/Core kun je elk soort programma ontwikkelen, al is en blijft het favoriete terrein het Internet.
Met Rebol/Core kun je web, ftp, email communicatie en cgi scripts aan. Je kunt tekst, html en... manipuleren. Maar je kunt het ook gebruiken om systeemcommando's te schrijven, of veel geraffineerdere programma's.
De huidige versie is 2.3, en is ongeveer 350/400 Kbytes klein (ongecomprimeerd), afhankelijk van het platform. Het bestaat uit een executable (uitvoerbaar programma) en twee configuratiebestanden: rebol.r en user.r. Deze laatste bestaat niet als je het archief download. Het wordt de eerste keer als je Rebol opstart aangemaakt. Meer valt er over de installatie niet te zeggen, omdat je de bestanden alleen maar in een directory met (bijvoorbeeld) de naam Rebol hoeft te zetten.
Gewoonlijk zul je een environment variabele moeten zetten om de directory die je gemaakt hebt aan te geven.
In het archief staan nog een paar andere bestanden: 2 scripts en 2 html documenten. Een script kan gebruikt worden voor feedback (vandaar zijn naam); het andere heet rebdoc.r, en stelt je in staat om de documentatie (trefwoorden) in html formaat te maken. De beide html-bestanden betreffen installatie en aantekeningen. Meer documentatie is beschikbaar op de Rebol website.
Daarnaast heb je Rebol/View. In het kort kun je zeggen dat het de GUI (Grafische gebruikers interface) voor Rebol is. VEEL MEER hierover volgt straks!
Op het moment van schrijven is Rebol/View alleen beschikbaar voor Amiga, FreeBSD, Linux en Microsoft omgevingen. BeOS R5, Irix, HP-UX, AIX, Solaris en Sparc versies zijn aanstaande, en zouden dus binnenkort moeten verschijnen.
Rebol/View is een op zichzelf staande executable, ongeveer even groot als Rebol/Core. Het is nog een beta versie (0.9.9 release 4.1).
Zet het waar je wilt, en als je het voor het eerst opstart zal het je naar een aantal netwerk parameters vragen. Documentatie en een FAQ zijn al beschikbaar op de Rebol site.
Ter informatie: er zijn nog twee andere producten beschikbaar: Rebol/Command en Rebol/Apache.
Rebol/Command zal binnenkort uitgebracht worden, en zal een commercieel product zijn met als doel het benaderen van DLL's, programma's en databases.
Rebol/Apache wordt een plug-in module (insteekmodule) voor Apache.
Wat kunnen we er nou mee?

Rebol/Core

Als Rebol nieuw voor je is (trouwens ook als dat niet het geval is!) kun je het beste de voorbeeld scripts dowloaden. Het zijn er ongeveer 200!
Hoe je een script uitvoert zal afhangen van je machine (OS). Op OSen met een shell (en gelijksoortige machines) toets je iets ins als "rebol test.r". Het suffix (achtervoegsel) .r wijst op een Rebol script. Om te testen kun je ook "do %test.r" intoetsen.
Op OSen zonder shell, zoals MacOS (behalve natuurlijk MacOS X!) hoef je alleen het script-icoon op het Rebol programma-icoon te laten vallen. Dat is alles!
Dit werkt bijvoorbeeld ook bij Microsoft spullen.
Laten we nu naar de kern van de zaak gaan!
Hier volgt een Rebol script uit de voorbeelden, met de naam 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 [email protected] trim {
Hi there.
Just wanted to send you an email message from REBOL.
-Friend
}

Feitelijk is dit EEN regel code!
Het stuk vanaf het eerste REBOL tot de afsluitende "]", kun je beschouwen als een header, al is het verplicht voor elk Rebol script.
Het laatste stuk is de inhoud van de boodschap, en ertussenin staat de Rebol code:
"send [email protected] trim"
Wat het commando doet staat in de header "note" van het script.
Dit is alles wat je nodig hebt om mail te verzenden, zodra je machine goed geconfigureerd is.
Als jij een kortere manier kent om dat te doen, laat het ons weten!
Rebol scripts worden geïnterpreteerd en communiceren via poorten (vergelijkbaar met Rexx) en gezien hun geringe formaat, zijn ze echt snel.
Nou ja, voor diegenen die Rebol al vanaf het begin kennen, zal dit geen verrassing zijn.
Vanaf release 2 zijn er meer kenmerken, meer functies, etc. beschikbaar, genoeg om eens naar de voorbeeldscripts te kijken om de verbeteringen te zien.
Alles met betrekking tot ftp, web, en mail communicatie kan met Rebol eenvoudig gedaan worden. Met een paar regels code kun je bestanden van een ftp server downloaden, ergens een webpagina ophalen...
Daarnaast kun je text, html, etc. manipuleren. Een voorbeeld toont je hoe je tekst naar html converteert, via een script van 2083 bytes!
Ook CGI scripts kunnen gemaakt worden. Zo kun je bijvoorbeeld een CGI formulier maken, met de bijbehorende HTML code.
Een ander kenmerk stelt je in staat een Rebol script aan een html pagina toe te voegen met de script tag. Jammer genoeg zijn maar weinig browsers in staat om hier goed mee om te gaan. Je zou Rebol als CGI kunnen gebruiken om dynamisch de inhoud te genereren.
Met een voorbeeld van een adembenemende 1827 bytes maak je een webserver!!!
Voor diegenen die niet zonder hun mobieltje kunnen, bestaat er een script om berichten naar een GSM te sturen...
Het is met Rebol mogelijk om bestanden te versleutelen en te (de)comprimeren. Je kunt zelfs de gecomprimeerde bestanden weer automatisch uitpakken. Zie hiervoor de scripts autoextract.r and encrypt.r.
Je zult inmiddels wel gemerkt hebben dat deze voorbeelden een goudmijn zijn. Bekijk ze, het zal echt geen verloren tijd zijn (en het is onmogelijk om ze allemaal in een artikel te bespreken).
We kunnen stellen dat Rebol gewoon geweldig is!. De Rebol/Core is een geweldige ontwikkeling, die het rechtvaardigt om te upgraden... of om te beginnen.
Als we kijken naar Rebol/View, spreken we niet meer over een ontwikkeling, maar over een REVOLUTIE! (of waarom geen reBolutie?).

Rebol/View

Degenen onder jullie die Rebo/View niet kennen zouden nu moeten gaan zitten en zich ontspannen!
Met Rebol/View krijg je hetzelfde als met Rebol/Core... plus een hoop extra.
Een woord om het samen te vatten: ONGELOOFELIJK!
Laten we beginnen met een voorbeeld.
Hier een script met de naam 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"
]

En hier is het resultaat:

lftest.jpg

Dit zou een nieuwe manier kunnen zijn om binnen LF de verschillende talen te benaderen...

Laten we verder gaan... Een script van 1413 bytes creëert een grafische text editor (tekst-bewerkingsprogramma)!!! Geloof je het? Hier is het bewijs:

texted.jpg

En hier is het script.

Wil je nog meer? Het script image-sort.r maakt een tool om afbeeldingen te tonen en te sorteren! Bekijk het eens:

imed.jpg

Deze afbeelding is beschikbaar gesteld door NeXTstep(TM)

Tot nu toe hebben we alleen de compactheid van de code en de geweldige karakteristieken van Rebol/View gezien.
Je zou de volgende vraag kunnen stellen "kun je dat ook met een andere taal met zo weinig regels code?" zonder vervolgens een schildpad met remmen te moeten gebruiken om het te compileren... (je kent toch dat ding, JIT genaamd!). Niet kwaad worden, ik maak een grapje.... (nou ja, niet echt... maar dit is alleen mijn mening... en ik deel hem!). Hoe dan ook, zoals mijn vriend Atif zegt: TIMTOWDI (there is more than one way to do it)... maar zijn persoonlijke favoriet onder de programmmeertalen is Perl!
En nu, Dames en Heren, iets heel anders.
In de jaren 80 maakten we verbinding met BBSsen met, afhankelijk van het OS, min of meer geavanceerde hulpmiddelen. De jaren 90 verschaften ons browsers. De grootte van de grafische browsers groeide en groeide, en nu zijn ze (tenminste de meeste van de "beroemde") enorm. Websites gebruiken steeds meer Java (sorry!) en surfen op het web wordt soms een nachtmerrie, zelfs met een snelle verbinding. Het hangt af van de machine, de verbinding, maar ook van de browser.
Nu komt de 21ste-eeuwse manier om op het web... of het Reb te surfen!
Rebol/View stelt je in staat om op het... reb te surfen zonder browser!!!
Met Rebol/View kun je verbinding maken met sites, en alles doen wat je ook met een browser zou doen: bestanden downloaden, de site bekijken, software updaten...
Bovendien heb je niet het probleem dat je browser bepaalde versies of producten niet ondersteunt, of erger, dat de website jouw OS niet ondersteunt!
Hoe dan ook, een voorbeeld zegt meer dan woorden.

connex.jpg

Dit is echt een verbinding met het Internet! Test zelf maar... maak en verbinding met een Reb-site via Rebol/View.
Een ander voorbeeld. Het volgende is de index van de uitgave van Juli van LF. Het script is 2197 bytes, en het voorbeeld werkt. Dat betekent dat het drukken op een knop je naar het overeenkomstige artikel voert... je browser wordt wel geopend.

lfissue.jpg


Het zou wat langer duren om deze artikelen ook leesbaar te maken in Rebol/View. Hier is de broncode als je het voorbeeld wilt testen.
Als je de Rebsites bekijkt met Rebol/View kun je de code van elk voorbeeld downloaden. Dat toont je hoe het werkt.
Een andere plek om nuttige informatie te vinden is de public directory die door Rebol gemaakt wordt. Elke verbinding maakt een subdirectory met de naam van de URL. Vandaaruit kun je de broncode, afbeeldingen etc. bekijken.
Er is duidelijk veel te vertellen over deze fantastische tool en we zouden een boek in plaats van een artikel nodig hebben om alles te behandelen. Zoals we eerder gezegd hebben, lijkt Rebol geen grenzen te kennen. De enige grens die je zult vinden is je voorstellingsvermaogen.
Een paar opmerkingen: voor dit artikel is Rebol/Core getest op AmigaOS 3.5, BeOS 5, MacOS 7.1 (sorry, het is de enige die ik heb!), Solaris Sparc 2.6, Irix 6.5.7, NT 4.0 aen natuurlijk Linux (RH 6.2).
Rebol/View is getest op AmigaOS, NT and Linux. Experimentele versies zijn getest op Irix, BeOS 5 and Solaris 2.6.
De scripts en de schermafdrukken zijn gemaakt op Linux, maar op alle 6 de platforms getest.
De scripts werkten hetzelfde op elk platform (behalve sommige experimentele releases van Rebol/View, maar dat is begrijpelijk.)
Het enige verschil is de snelheid, simpelweg omdat de snelheid van de gebruikte machines ligt tussen de 25 Mhz en 400 Mhz! Al maakt dit niet alle verschil uit... volgens de wet van de trechters (flessenhalzen of bottlenecks). (Weer dank aan mijn vriend Javi, die een groot filosoof is, al heb ik de betekenis van zijn theorie veranderd!).
Dus, Mijnheer Intel, hebt u ooit gemerkt dat als je een 1 GHz CPU hebt en een 100 MHz bus (of zelfs een 133 MHz), het smalle deel van de trechter nog smaller wordt?
Excuses voor deze zijsprong!!!
Terug naar Rebol/View kunnen we zeggen dat het echt snel is. Als we het reb surfen met Rebol/view kunnen we zeggen dat het sneller gaat dan het traditionele websurfen. Als ontwikkeltool voor programma's is Rebol ook bijzonder indrukwekkend.
Als je nu niet de neiging hebt om dit fantastische stukje software te gaan proberen, ben je niet bepaald nieuwsgierig aangelegd!

De toekomst

Om te beginnen kunnen we rekenen op versie 1.0 van Rebol/View. Zoals we al besproken hebben zijn er nog een aantal andere producten in de maak. Maar we hebben niks gezegd over dat "wat nog moet komen". Rebol werkt aan een enorm groot product met de naam Rebol/Express. Dit wordt een commercieel product, volledig gericht op communicatie.Een soort Internet software. Je kunt meer over dit product te weten komen via http://www.rebol.com/products.html
Rebol/Express zou een concurrent kunnen worden van Backweb of Marimba. Wacht maar af!
Maar gezien de bekwaamheid van de mensen van Rebol kunnen we nog andere geweldige softwareproducten verwachten.
Zoals je misschien al gemerkt hebt, heb ik nog niets gezegd over de licenties. Ter informatie: Rebol/Core is gratis, maar niet onder de GPL.
Verder zijn de mensen bij Rebol net als hun producten: geweldig!
Ze houden altijd rekening met je feedback, ze vragen er zelfs om! Vandaar het feedback.r script dat meegeleverd wordt. Ze beantwoorden je vragen, geven je documentatie en een FAQ. Alles GRATIS!
Ook kunnnen we hen voortdurende verbeteringen in hun werk toevertrouwen.
Ik geloof echt dat Rebol een van de belangrijke spelers zal worden op het gebied van communicatie in de loop van de komende jaren.
Het enige dat ik hier nog aan kan toevoegen is: test Rebol producten en probeer op de hoogte te blijven!
We leven niet alleen in een geweldige tijd, hij wordt nog beter ook!