Lambda the Ultimate

inactiveTopic On the future of REBOL.
started 3/14/2002; 11:09:45 AM - last post 3/14/2002; 2:17:04 PM
Brian Lee - On the future of REBOL.  blueArrow
3/14/2002; 11:09:45 AM (reads: 332, responses: 1)
Thought I would share an e-mail I recently sent in response to an article written about REBOL at the URL below. It's what I see hapening with the REBOL language. I admit it's a bit windy, but it's a subject (and language) that are important to me. If you note any conceptual mistakes I may have made in my analysis to the author, please let me know.

Main article:


Hi Kurt,

It's good to see more articles on REBOL. Carl Sassenrath has built a language that I really believe can easily compete with .NET and Java. The main problem that I see with the language is also it's most powerful feature; it's high self-extensibility. Thus, the more one extends and changes the language, especially when built up from the core language, the more it deviates into a new, non-standard implementation, at least as far as I can see. eg. Want a different visual interface dialect? No problem. Extend the language and build it yourself. It's no longer the standard VID, but it's still technically "legal" REBOL. It ultimately suffers from the same problem as Forth. (Which, incidently, I believe Carl used as a base for REBOL. I asked him about it, and received my answer via an expected lack of reply. Thus I'm trying to duplicate REBOL, using Forth, to satisfy my hypothesis. Note: Not to compete with him, but to ensure REBOL is not lost for good.) A common saying in the Forth community is that "once you've seen one [implementation of] Forth, you've seen one Forth". That's because, even with an ANSI standard, it is so flexible, even to the point of changing the kernel itself, that it leads to something completely non-standard the further you build on it. I can see this happening with REBOL, and told Carl as much. I believe he feels the same, and is therefore leery of open-sourcing it. Frankly, he's been saying he'd eventually open-source REBOL since 1997, and I really don't see him doing it at any time in the future. Period. I think he'd rather let his baby die then relinquish control of it. That's the feeling I've gotten from him, right or wrong. I've also kept an eye on his company for some time now, and if you look closely at his website, it becomes apparent he hasn't made much, if any, market penetration. Even his partnering with Morpheus will not boost REBOL, as Morpheus is currently having problems sustaining itself in the competitive world of P2P networking. He has a great product, but really doesn't know where to take it, or how to market it. The longer he stays in this stasis, the harder it's going to persuade people to switch over from, or use in conjunction with, Python and other open-source languages, especially due to REBOL's unusual language structure. What Carl should do is what I will do, if my "REBOL is extended Forth" hypothesis is correct and workable: Use Guido van Rossum's highly effective style of maintaining decisive control over core implementation of an open-source language.

Well, that's about it. Thanks for reading my rant :) You did read it, didn't you? ;) Hehe... Feel free to correspond on this, or to share this with Carl. He can use the help.


Brian Lee.

Bryn Keller - Re: On the future of REBOL.  blueArrow
3/14/2002; 2:17:04 PM (reads: 354, responses: 0)
REBOL is a funny one. My experience with REBOL (especially the VID) was intially quite pleasant. I was stunned at how easy it was to knock together some screens and start playing. It seemed a lot like a cross between Forth and Scheme to me. But then I realized some of the down sides of the language:

  • It's not extensible. Sure you can make your own struct ("object") types, but they're second-class citizens. For instance, in functions you can specify that an argument must be of type object!, but you can't get any more specific. If you decide REBOL's builtin date! or money! type isn't adequate for your purposes, you're out of luck - the handy syntax doesn't help anymore, you've got to do the same amount of typing you would in a more traditional language.
  • No modules, and weird scoping. Forget to declare a local variable in your function or object and the next time you assign to it, it'll get bound at the GLOBAL level, perhaps wiping out something you had no intention of assigning to... Also, I can't quite remember the details, but there was something weird about function local variables - maybe they are static (in the C sense, shared between invocations) by default?
  • Not safe for tail-recursion. This doesn't bother some folks, but it bothers me.
  • No free reference implementation. I don't mind people charging for a language if they want to, but it's not something I'm likely to use, and I hate when they act like the language is a grass-roots movement to unseat the evil empire. Rebol, inc. is a business, just like M$. And their prices will go up just like M$'s, once the demand is higher.
  • No threads. Nor is REBOL ever likely to have them.
  • There were others, but I can't recall now, it's been awhile...

Lately I've been thinking, couldn't I just have something very like VID for mzScheme?