REBOL and what could be
After dismissing REBOL as an amusing diversion, I have over the last few days started looking at it again, after seeing a reference to it in a post by why the lucky stiff. And if someone with why’s standing in the community says it’s cool, it must be, right?
By the way, I never told you this, but after dis(mis)sing the poignant guide as the ramblings of a madman, I actually went and read it again, and the second time around, I actually enjoyed it. It reminded me of that zany romp through the universe that was the Hitchhiker’s Guide to the Galaxy. (Plus I learnt some Ruby along the way). It makes you wonder why someone with why’s creative brilliance is a programmer and not an author of humorous science fiction (unless you’re counting the poignant guide to the galaxy), until you realize that Ruby in fact allows you the freedom to express yourself creatively thus.
But I digress. This post is about REBOL, a very interesting language with no keywords, but a concept of dialects. Now, as far as I can tell, the REBOL core is not open source (that is, the interpreter isn’t), and its maker, Carl Sassenrath, famed Amiga OS inventor, provides a commercial (as in it costs money) REBOL SDK.
To me, unfortunately, that is one of the downsides. I believe that even though a closed source project has a vibrant community, it still runs the risk of going the way of the dinosaur if its benefactor loses interest in its development and stops innovating. It adds a bit of uncertainty to any faith you put in such a project, and has an effect much like the sword of Damocles. (Maybe that’s not a problem when the backing company is a big player in the market, but it’s not the case here).
The other thing that nags a bit is that I cannot see anywhere that REBOL ships with a debugger. Sure, there is no shortage of helpfulness as to how you can pinpoint problems in your scripts, but I think a debugger is vital if you’re going to deliver enterprise grade applications with it, and the site claims it can. (I haven’t checked, but maybe the SDK includes one).
Something interesting on the REBOL site is a page of one-liners; amazing things that you can achieve in Rebol in 132 characters or less. Some of them make you think: “Well, if someone took the trouble to bundle a lot of functionality into a function in, say, C, you could also just call the_big_and_astounding_wall_clock_and_i_still_have_some_characters_to_spare() and achieve the same effect”, but I must admit, many of those are really nifty and highlight the power and potential of the language.
So what would be some of the critical success factors that could drive REBOL over the point of critical mass and rocket it into super-language-stardom?
One of them, I think, would be to open source the core of REBOL. Not just because it’s the fashionable thing to do, but because that could potentially spin off another factor: the so-called “killer app”, something like what Rails did for Ruby. I think though, that this would be dependent on the first factor. I sincerely doubt that you could enthuse a large community to invest in and grow around a project if the underlying core is not open, and therefore perhaps not open to innovation or its direction is unpredictable.
Perhaps REBOL requires a bigger benefactor, someone who could afford to make it open source and foster innovation and provide the marketing and support to make it big, something like what Sun Microsystems does for Netbeans and OpenOffice amongst others.
Whoa, but I’ve given you a lot of negative things to think about. I still think REBOL is neat, at least the little I’ve had the time to delve into. Going to delve some more…
I mulled a lot over this post after writing it (quite late) last night, and realized that I hadn’t offered a very balanced perspective (but then, it doesn’t have to be balanced – it’s a blog, right?). There were two aspects I failed to mention though:
Firstly, I believe REBOL could be immensely successful as a closed, commercial offering, but then only with the backing of someone the size of Microsoft or one of those. (Just by way of example, I’m not endorsing Microsoft here!). I don’t think that REBOL Technologies (the company behind REBOL) has the muscle, and especially the support capacity, that is needed to push this product, as fantastic as it is, to greater heights.
Secondly, while we’re speaking about support, as a motivating factor for making REBOL open source, I forgot to mention how great open source community support is; that is to say, when the community is big enough. I think open source projects and communities are wonderfully self-regulating. When there is a need or a desire for something, a community will form around it, and it doesn’t need to be kept alive artificially (as may be the case with proprietary offerings). That’s one of the wonders of open source.
Good, now I think I’ve said everything.