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…

UPDATE

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.

Tags: , ,

  • There is considerable change in the open/closed source model of REBOL 3 versus REBOL 2:

    http://www.rebol.com/rebol3/architecture.html

    To put it short: Everything in REBOL 3 is open source except the very core of REBOL 3.

  • Patrick

    The advantages of Open Source is indeed great. With the ability to scale, innovate new ways to do things, and add more functionality to an already powerful language is something to consider.

    But I would argue against it for REBOL.

    Why? Consider REBOL’s central theme, to be small, lightweight and portable to many computer platforms.

    Look at what has happened to Linux. How many distros are there for it? How bloated have some of these distros become? Look at other types of software. How many video drivers do we need to simply play a video?

    All of these different versions work,but the strongest versions will win out over the weaker ones given time.

    You would think this would be a good argument for REBOL? No it doesn’t. REBOL is a hybrid version, where the CORE is closed and controlled by one company, under one vision. To make the best, most flexible, maliable language possible, under a unified set of beliefs. It approaches it as one master chef making the best possible set of dishes to saver.

    REBOL is also open in the fact that anyone can create a “dialect” that utilizes REBOL’s potential.

    Anyone can also create a library of their own REBOL utilities and commands that can be shared among the community at large. And since the language is so maliable, even REBOL commands can be re-defined in ways that we have not dreamed of.

    Many websites already have REBOL cookbooks and libraries that are searchable to assist others looking for solutions.

    The REBOL interpreter is free to the public and has a good community of people that will share their ideas and help others learn REBOL. It is a small and vibrant community that continues to grow.

    I think REBOL is on the right track by improving, testing, and innovating the REBOL core by a master carpenter and allowing those tools to be used among the masses as openly as they can. Otherwise, REBOL will fork into so many different variants and distros that it will loose its core beliefs and ultimatly its own identity.

  • admin

    Thanks Henrik and Patrick for your input.

    Patrick, thanks especially for sharing your insights.

    I must however, contend with you on some of the points. Firstly, because technically, Linux is a kernel, and of that, there is only one project. That happens to be the case with many or most companies where the product has been open sourced: Even though the opportunity to fork the whole project is there, hardly anyone does it (it happens extremely seldom). Take MySQL, Compiere, Sun, JBoss, Ignite Realtime, to name a few, and the list grows longer every day.

    Nobody has yet forked some of their open source projects, though they have been around for years. Why? That is a good question. Probably, it’s not worth it for anybody to create and maintain their own fork. Companies that open source their products usually make their money from providing consulting services, but they have the expertise and the vision to build the product, so forks either die out or fade into obscurity.

    So if REBOL Technologies were to open source REBOL Core, it doesn’t mean that many forks would appear overnight, or if they did, they would mostly die out soon, because like you say, they do not have the vision that REBOL themselves have.

    However, if (heaven forbid!) the sponsoring company were ever to shut their doors (and it has happened, you know) or stop working on the product, you know you would have the option to take the source and make the project live on.

    Moreover, the company benefits from people in the community who do pinpoint bugs and can possibly improve the code. Truly with open source, everybody wins.

    And even, let’s say, in the most unlikely event that there was even one fork of REBOL, would that be so bad? Like you said: “the strongest versions will win out over the weaker ones given time”, and that is a good thing! The original REBOL would keep its identity because REBOL Technologies maintain it and choose what goes into it.

    Lastly, please understand that none of this is a criticism against the REBOL language. I’ve only looked at it for a few days and am tremendously impressed, so much so that I hope to do more with it. Thanks for a lively discussion!

  • -pekr-

    It is indeed cool to hear about open-source on site talking ABAP stuff :-) R3 is gonna be 90% open-sourced. The only thing being kept closed source is the very kernel, which is platform agnostic code, interpreter itself. This is dramatic change from R2 model. Some of top community members cooperate very closely with REBOL Technologies. REBOL source is also in the escrow, so if RT would go bancrupt, the code would be available, so no worries here.

    I have completly different measurement for what is important with ANY product – how complex it is? What can I do with it? And here, REBOL often wins with simplicity. Once someone’s first question is “is it open-source” instead of “what can I do using REBOL”, I find the rest of the discussion pointless, because open source does not equals quality automatically …

  • admin

    Hi Pekr, thanks for the input. What can I say? You got me there :-)

    Well, I have to say nice things about ABAP, because it is my bread and butter 😀 I am not defending SAP’s position to keep the ABAP kernel closed though!

    In my own defense, if you have read what I wrote in the update, you will see that I did consider how REBOL could be hugely successful with a closed-source core, but only with the backing of a much bigger market player than RT is.

    Even with the escrow agreements in place, if worst came to worst, the code would only be available to the customers that had bought those licenses, but it would not be available to the anyone else.

    I agree with your one comment though – the debate about open vs closed source does come in the way sometimes of the more practical application of the technology.

    As for your last comment, I think Carl Sassenrath would agree (judging by his complexity/daylight saving post) that neither open nor closed source guarantees quality, but simplicity does.

  • hostilefork

    8 years later…

    Well, if you’re not aware, Rebol was open sourced in 2012. It sat for a bit in limbo, given Carl’s state of mind at the time he wasn’t willing to put in the time to organize the efforts of contributors. And most potential contributors didn’t understand the code.

    With my background, I could understand the code (by applying scrutiny over time). And among the things I understood was how distant it was from the vision it was trying to accomplish. Fixing the things I thought were oversights in the language model or hostkit model would be very difficult. Even after that, getting feature parity with Rebol2 would be difficult also.

    But there’s been a lot of progress, slowly but surely. Please come talk to us at:

    http://forum.rebol.info

    There is also an alternative project, with a different agenda, called Red. I’m no longer affiliated with that, but it may resonate in a different way with some people.

  • Hey there. I only saw this comment now, but thanks for coming back to the article. You may not know this, but you and I have chatted a bit online. I know about R3, but when I looked at it last, it had not made so much headway and the official Github repo (rebol/rebol, right?) looks dead. I am actually rather on the Red bandwagon now, but I do not expect a 1.0 release for a few years, given the frequency of releases. It’s a pity that neither community makes any quick headway, because I still consider this to be the ultimate programming language.