The new version 3 of the REBOL programming language supports extensions written in other languages. Extensions are implemented on top of the modules framework, which is also new. Extensions can be separate dynamically loaded libraries, or they can be embedded in the REBOL executable. In fact, REBOL 3 is now highly modularised: a number of its subsystems are embedded modules, and subsystems written in C and C++ are embedded extensions. Those modules and extensions are part of the open host kit, so that custom collections can be compiled into REBOL executables.
Syllable is now running its first REBOL extension (screenshot on Syllable Desktop). It’s an example extension in the style of the traditional Hello World that shows the ease of interfacing. It works without changes on both Syllable Desktop and Syllable Server. The source code is in Syllable’s build system. It should work on all Linux systems and the makefile also has hints for Windows (using the MinGW GNU environment). It should be easy to adapt to the other platforms that the REBOL host kit supports. To compile and load the extension on Syllable Desktop, do the following. See the previous article for the requirements.
build update<br />
build log<br />
build get HelloREBOL-Extension--current<br />
build patch HelloREBOL-Extension--current<br />
build HelloREBOL-Extension--current<br />
cd HelloREBOL-Extension--current<br />
r3<br />
import %./hello-extension.so<br />
hello-once<br />
hello-twice
To compile on Syllable Server:
s build update<br />
build log<br />
build HelloREBOL-Extension--current<br />
cd HelloREBOL-Extension--current<br />
r3<br />
import %./hello-extension.so<br />
hello-once<br />
hello-twice
W00t!
no return… If I’m writing code in another language it may be time for me to simply move to that language completely and say good bye to the legacy. This forces more than just ‘experimentation’ and a bunch of requirements to grow for a future programmer to take the position I’m in or job I hold. Just say no to REBOL and use what works better, just about anything.
So you’re promoting switching from REBOL to C as a measure of moving forward and leaving legacy behind? That’s what most REBOL extensions are written in.
What’s legacy?
I am not a REBOL developer, but usually there isn’t a better reason for such comments. The primary reason for talking bad about an other programming language is that there is a personal preference for an other language.
Oh there are also other things, like current hype, FUD and tons of nonsense getting written.
See the OO. Nobody has ever been able to provide a study that OO is better. This also doesn’t mean it is worse. Same for functional programming or anything else.
The best programming language is the one that fits you and therefore allows you to achieve whatever you want to achieve.
Today it really bad. Everyone has to learn Java. Why? I don’t think Java is a bad choice per se, but it’s just one language and like there is not just one programmer there is not just one right language.
Just because a programming language is newer or older it doesn’t mean it is better/worse. They are all completely artificial and to me it is like saying Harry Potter is better than MacBeth, because it’s more modern. Or Triprock (just looked up on Wikipedia. The newest thing I could find) is better, because it’s a newer genre.
We shouldn’t create such artificial norms and borders. I mean after all we have computers, so that we don’t have that they do all this rational thinking stuff. The programming language is just an interface, so that we don’t have to be like computers. We humans should do the stuff we are good at and therefore we should use the language which allows us to do so. Our brains are optimized for our lives, but they are all different and therefore we all have different ways to think and therefore there are different ways (programming languages) to communicate with computers.
Legacy? REBOL is only a 12 year old language. Perhaps you are confusing REBOL with COBOL?
You either never coded, or you are a coder running on a dried batteries ๐ I think that anyone’s brain having at least a bit of a juice can understand, what the extension is good for and what the word “extension” stands for ๐
So if you have some usefull packages, as e.g. Image Magick, or external environments like Matlab, you are supposed to re-code all that stuff in a language of your choice? Surely not. Extension is an API to external world. With REBOL dialecting capabilities, it makes for a nice combination.
Some extensions are starting to pop-up:
http://colineau.fr/rebol/R3_extensions.html – Image Magick, Matlab, Text to Speech, Windows API
http://www.diefettenjahresindvorbei.de/odbc/odbc-docs.html – ODBC
Extensions surely have some drawbacks – they are platform dependant, so unless someone ports them, such extensions are not available for other rebollers to use.
I am glad OS News gives some space for non mainstream stuff. REBOL is surely not used by millions, but it does a good job to those using it. Putting it down is really not necessary …
As an Amiga fan I’ve had an interest in REBOL since the mid 90s (it was hyped for a while even before it was released) but I’ve always been put off by it being closed source. I heard rumours of Carl finally opening up REBOL but I can’t find any links to confirm it. So, is REBOL 3 finally getting an OSI compliant license? There seems to be source code on Github but I can’t find a license text.
The Open Host Kit link in the article has a licensing section at the bottom.
The core REBOL interpreter is closed source freeware. The open host kit is planned to have two licenses: an open source one and a mixed one.
Note that an LGPL licensed REBOL implementation called <a href=”http://urlan.sourceforge.net/boron/“>Boron is also available.
REBOL is still not fully open source. But – RT isolated REBOL into two parts:
– platform agnostic interpreter code, which is delivered in a form of static or dynamic library
– the rest, including stuff like graphics, networking, tasking, event model, simply everything else. And that part is open-sourced and downloadable
You can e.g. watch the progress of Amiga OS 4.1 port here: http://solie.ca/ (please note that UI skin is just experimental)
As for the licence – licence is still not imo final. You can use REBOL for commercial or non-commercial purposes for free. But – as for the hostkit code, I think you will be prohibited to use it with the R3 interpreter clone/replacement.
We will see – once R3 stabilises, and sometimes in the near future, maybe Carl will fully open-source the interpreter itself too. But – the process of development of the kernel itself is open enough for us. All enhancements, fixes, are either proposed by, or implemented by the community itself, and that is imo enough to feel rather safe with R3, in opposition to R2, maybe except the open-source die-hards …