I wrote this: http://freeconsignmentsoftware.com It's been on the first page of Google results for "consignment software" for several years now. I've also written a lot of production software for a variety of businesses. Rebol is still ridiculously productive for certain types of work. Maintaining old projects in Rebol is always simpler than with any other development tool/language I've used in 30+ years.
I've always felt that REBOL suffers horribly from being misnamed. It sounds like it's short for something like "Reimagined COBOL".
When I first heard of REBOL in the '90s, I assumed it's some kind of scripting-oriented COBOL variant. That's pretty much the worst association for a modern and convenient language.
Imagine if Ruby were named "NuBASIC" -- everyone involved with it would first have to spend time explaining that it has nothing to do with BASIC. That's how bad it is for REBOL, in my eyes.
That's an interesting example, as the name of Ruby (as well as its purpose and syntax) evoked memories of Perl when it first became well-known enough. And even back in those days, that wasn't necessarily a good thing.
REBOL had some things going for it: Small executable, interesting syntax, data types and features and the pedigree of its developer.
On the other hand, it was a proprietary contender in a field with a plethora of open source contributors, and where developers actually cared about this.
And with that comes a lack of community and packages. Not sure if REBOL even has a package system/repository, which is quite important, no matter how good your standard library is (one of the things that, well, mortally wounded Tcl).
I used to do a lot of REBOL programming, back in the day. I even wrote some tutorials for an old webdev site called Gelicon.
Back then, there was no Django or Ruby on Rails, and while PHP worked, it wasn't always suitable for a lot of tasks. With REBOL, for instance, I could (and did) build a client that would read from some early web services, parse the data, and then interface with IRC servers to both stream some of the data to a channel and act as a control interface for further parsing, along with generating static webpages from the data. Implementing each part of that was a lot easier than most languages I've used (assuming you're not using third-party modules for things like IRC).
What made REBOL cool, back when it was new, was just how easy it was to work with the Internet and parse results. For instance, see the one-liner in example 42 on that link, which scrapes a page for all links:
parse read http://www.rebol.com [any [thru "A HREF=" copy link to ">" (print link)] to end]
That reads from www.rebol.com and sets up a parser for it with the given rules. Those rules state that it should skip all bytes through "A HREF=", then copy any bytes up until the ">" into a "link" variable, and then print the variable. Simple example, but it's fairly easy to write something a lot more complex.
The language can be a bit wonky at first, but especially back then, once you learned it, it was fantastic and fun. Writing a parser for a protocol like IRC was just easy. You could easily output a file that was both data and a valid self-parsing REBOL program. Writing a self-modifying program to store the state for the next run was almost trivial. You could write little DSLs for whatever you wanted. Like LISP, the code was data.
I think REBOL had the potential at the time to go far, but it really suffered from the restrictions the company placed on it as an attempt to monetize the language. The core of REBOL was free, and you could do a lot with that, but you could not invoke external programs or bind to any native libraries. To gain that functionality, you had to pay a decent amount (at least for me, at the time) for a full license. There may have also been restrictions on bundling the core REBOL interpreter.
I believe that's all free now, but then, the world's grown beyond Perl and PHP since then. REBOL had a lot of time to grow beyond where it seems to be now. I still think about coding something up in REBOL every so often, but I usually just reach for Python instead.
My first big website was written in this language around 1998-2000 (before being converted to PHP). Loved how concise Rebol is, with everything being blocks, and how you could write a website or GUI based app with minimal effort. I also loved how PHP had a function for practically everything so it won and still continues to win (despite trying stuff like Ruby/Perl/Go/etc).
If you are interested in Rebol, have a look at http://www.red-lang.org/ which is more modern (and not just interpreted but also compilable) language very close to Rebol. And it's OSS of course. It's still alpha version in development, but with good backing and very dedicated team.
Rebol 3 has been free in both senses since its development. It is still in development by the community, but is completely usable. For instance, see my Rebol 3 tutorial (I started developing the tutorial a few days ago) running on a webserver running Rebol 3. The pages are created in real-time by a Rebol 3 dialect called JSID that outputs HTML and JS.
I was interested in rebol back when I first started to program, but I moved to php and dhtml because I wanted to focus on web development.
In the advent of the internet of things, I am looking to pick something up again for those little embedded devices. Perhaps controlling servos or something. I've been thinking of nodejs or ruby, but perhaps I should consider r3 now.
14 comments
[ 2.7 ms ] story [ 34.8 ms ] threadBut I guess I can't quite say that any of those is prominent.
When I first heard of REBOL in the '90s, I assumed it's some kind of scripting-oriented COBOL variant. That's pretty much the worst association for a modern and convenient language.
Imagine if Ruby were named "NuBASIC" -- everyone involved with it would first have to spend time explaining that it has nothing to do with BASIC. That's how bad it is for REBOL, in my eyes.
REBOL had some things going for it: Small executable, interesting syntax, data types and features and the pedigree of its developer.
On the other hand, it was a proprietary contender in a field with a plethora of open source contributors, and where developers actually cared about this.
And with that comes a lack of community and packages. Not sure if REBOL even has a package system/repository, which is quite important, no matter how good your standard library is (one of the things that, well, mortally wounded Tcl).
Back then, there was no Django or Ruby on Rails, and while PHP worked, it wasn't always suitable for a lot of tasks. With REBOL, for instance, I could (and did) build a client that would read from some early web services, parse the data, and then interface with IRC servers to both stream some of the data to a channel and act as a control interface for further parsing, along with generating static webpages from the data. Implementing each part of that was a lot easier than most languages I've used (assuming you're not using third-party modules for things like IRC).
What made REBOL cool, back when it was new, was just how easy it was to work with the Internet and parse results. For instance, see the one-liner in example 42 on that link, which scrapes a page for all links:
That reads from www.rebol.com and sets up a parser for it with the given rules. Those rules state that it should skip all bytes through "A HREF=", then copy any bytes up until the ">" into a "link" variable, and then print the variable. Simple example, but it's fairly easy to write something a lot more complex.The language can be a bit wonky at first, but especially back then, once you learned it, it was fantastic and fun. Writing a parser for a protocol like IRC was just easy. You could easily output a file that was both data and a valid self-parsing REBOL program. Writing a self-modifying program to store the state for the next run was almost trivial. You could write little DSLs for whatever you wanted. Like LISP, the code was data.
Oh, and the selection of data types was pretty neat. For example, e-mail addresses were a valid datatype (http://www.rebol.com/docs/core23/rebolcore-16.html#section-2...). So was currency (http://www.rebol.com/docs/core23/rebolcore-16.html#section-3...), HTML tags (http://www.rebol.com/docs/core23/rebolcore-16.html#section-2...), URLs (http://www.rebol.com/docs/core23/rebolcore-16.html#section-2...), etc.
I think REBOL had the potential at the time to go far, but it really suffered from the restrictions the company placed on it as an attempt to monetize the language. The core of REBOL was free, and you could do a lot with that, but you could not invoke external programs or bind to any native libraries. To gain that functionality, you had to pay a decent amount (at least for me, at the time) for a full license. There may have also been restrictions on bundling the core REBOL interpreter.
I believe that's all free now, but then, the world's grown beyond Perl and PHP since then. REBOL had a lot of time to grow beyond where it seems to be now. I still think about coding something up in REBOL every so often, but I usually just reach for Python instead.
Still, fun language. Worth playing with sometime.
I'm following Red development, hoping for it to become a free (in both senses) modernized REBOL:
http://www.red-lang.org/
It's not there yet, obviously, but it looks promising.
Had it been free from the start who knows what impact it would have had.
http://video.respectech.com:8080/tutorial/r3/index.r3
This is just one example of real-world applications for Rebol 3. And if you learn Rebol 3, Red is almost exactly identical.
BTW, I'd love to hear feedback on the tutorial. :-)
I was interested in rebol back when I first started to program, but I moved to php and dhtml because I wanted to focus on web development.
In the advent of the internet of things, I am looking to pick something up again for those little embedded devices. Perhaps controlling servos or something. I've been thinking of nodejs or ruby, but perhaps I should consider r3 now.