To celebrate the 1000th article of the magazine Obligement, Carl Sassenrath returns through this long interview on its origins at Amiga Inc. in the 1980’s (Manager of AmigaOS and Amiga CDTV system development, among others), the bankruptcy of Commodore, its passages at Apple Computer and Viscorp, Amiga NG, or on its new revolutionary language REBOL. A classic name in the Silicon Valley!
+1
Very insightfull interview, however I thought that the following bit put in to question his intellectual honesty.
`Note however, there will still be a kernel of REBOL that is not open source. This factor lets us keep the language 100% compatible between different computers and operating systems. We want there to be one central place that anyone can go to download (yes, for free) the REBOL system and its components and applications.’
Simply put – Carl will keep closed source only the interpreter itself and only platform independent code (his know how). All platform specific stuff will be in a operating system abstrastion layer — OSAL? 🙂 — and this will be open allowing a community to help with porting, etc. Once done, we can compile the REBOL language library for the target OS/processor platform.
What is wrong with that?
It is going on my EFIKA as soon as I can manage it…
/rasmus
This is a good link to read on the architecture of REBOL 3:
http://www.rebol.com/docs3/architecture.html
It’s only a small part of it that will be closed, namely the language core. The rest is open so you can write the necessary parts you need to run REBOL 3 on a specific OS and support various hardware.
Edited 2007-05-05 22:20
Nothing is wrong about writing a proprietary software, but claiming that there is a need to make it proprietary for compatibility reason instead of the real reason (money) is dishonest, the GP is right.
Thanks for your opinion, renox. I am long time Rebol supporter and I would not like this tread to look like rebol loyal community member all defending Rebol in most possible ways 🙂
But, back to your point. I am not sure money is the reason to keep the core closed source, or at least not the only one. And if so, you are right that it would be more honest for RT to admit it. However – to provide you with another perspective. Rebol is a bit different language (as functional languages tend to be :-), and when new member joins rebol community, we can see the typical questions – why it does not do it that way? Simply put – I remember Carl stating, that he put long years of thought into Rebol, and having it open sourced NOW could mean “contamination” of ideas by users not understanding his ideas properly, and makeing Rebol something different. You simply has to put the thingy into some few months usage, to actually think “the Rebol way”.
So, for me R3 is definitely the step in the right direction – platform independent (easily recompillable) core is going to be kept private, the rest is simply becoming open-sourced. Fair enough to me. Later on, some +x years RT might eventually decide to open even core, who knows.
OTOH, sometimes the OS arguments sound funny to me, as one of my friends told me – hey, it is not open-sourced, I don’t want to use it. I asked him, how often does he download php or python sources, or if he is able to eventually patch it himself – after some thought his answer was – well, I never download source nor am I able to fix things myself 🙂
The community might be small, but is very friendly and open. Connect to AltME private chat, and you get your answers in minutes. From time to time you can chat with Carl himself, that is both educative and encouraging. Carl listens to every possible idea, he is a smart guy.
Well, someone mentioned docs, wxWidgets – well, we might wrap to those too, it was just not done yet. But look e.g. into community alternative UI, called RebGUI:
http://www.dobeash.com/rebgui.html
some screenshots of my custom colored/shaped RebGUI:
http://www.jablunkovsko.cz/pekr/rebgui-screenshot1.jpg
http://www.jablunkovsko.cz/pekr/rebgui-screenshot2.jpg
It provides developer with some fine detailed docs too …
cheers & sorry for longish post …
-pekr-
But, see, even if it were open source, it doesn’t corrupt his vision. Just because someone can build, modify or even fork a project, doesn’t mean that the original vision is corrupted. As long as the original visionary is working on his project, his vision is intact. If someone decides to take off and run with it, how does that hurt the original vision?
If I come out with “Willbol”, a REBOL derivative, does that hurt REBOL? Or if “Willbol” makes some change that is against the vision of the original creator, yet somehow manages to explode the adoption of REBOL (Willbol) 1000%, is that bad?
Most folks don’t hack the cores of languages. Most folks download and use them. They’d rather do other things than write languages.
But, by letting folks poke around in the source, the ideas and concepts that make up the vision actually get more exposure. Not only are these things documented in white papers and power point slides, they’re implemented. You can’t improve a white paper, but you can improve an implementation.
OSS the implementation does not hurt the implementation. It can be OSS without having to take commits from every Tom, Dick and Harry. If Tom, Dick, or Harry is that passionate about their commit or change, they’ll fork it. But I haven’t seen that done with any of the major languages save for reimplementations on the JVM.
But with a closed source implementation, of course, he’ll get nothing back from the community on how to improve the implementation.
The entire purpose of a language is to communicate ideas. If too many variations of a language exist, then it becomes impossible to use it to reliably communicate, unless you have a reliable way to communicate what those changes are. Rinse, lather, repeat. Vision has nothing to do with it. A language designer must have some way of protecting the INTEGRITY of their language.
Perhaps it would be a good idea to submit REBOL 3.0 to ECMA for standardization at some point, but even that is not foolproof, because the most ubiquitous distribution will always win. For example, we still have plenty of websites that use IE specific code despite the existing standard, just because it is more widespread on the devices they are targeting.
Every language I know of that has been ‘sold’ commercially has failed. This is why we’re not all using Smalltalk at this point . A programming language itself, while valuable, is not something most people will buy, and such markets remain small, and marginalize the language.
The question is, who is using it in anger, and for what? Where are the projects and success stories? If you’re considering learning a scripting language, consider Python. You have thousands, probably tens of thousands of pages of documentation at all levels, you’ve wxpython, pythoncard, lots of ide’s. There is no problem finding examples. Rebol, search for yourself on Amazon – you’re stuck with several year old used copies of manuals.
It makes it hard to judge usability and stability. It is a very attractive concept. I just wonder how serious a proposition it is to get committed to, given the alternatives.
I’m a full time REBOL software developer and use it to make crossplatform applications that work on Mac, Linux and Windows. Furthermore, I’m also depending very much on REBOL for the development pipeline from prototyping, coding, testing and all the way to software deployment, update and hopefully soon I’ll be able to use REBOL to sell the software as well and then use it to handle customer feedback.
Actually I also use AltME, which is built in REBOL, to communicate with other REBOL developers. Most stable communications system I’ve ever used.
http://www.altme.com
It is simply way more immersive than any other language could ever hope to be.
I fell into the rabbit hole that is REBOL a few years ago and it’s both fun and frustrating. It’s fun, because you can practically do anything with it as long as it’s not requiring super high performance, like 3D gaming. Well, not 3D gaming yet, at least, but perhaps that will be covered soon as well. The language design is exquisite and extremely well thought out. You don’t notice this for real until after a few months of usage.
The code is so damn small, I’ve seen people flat out not believing that’s what’s required to create a full program.
It’s frustrating because still only a few people use it and all of us are tied 100% to development and growing the platform ever larger with a more comprehensive software library.
It’s frustrating, because so few people are getting it and not really trying to use it, scoff it, because it’s “strange” or “weird”, when it’s actually exceptionally cleverly put together. I’ve talked to developers, who’ve nearly been fired for using it, because it’s not popular, or the boss has never heard of it (“REBOL? Rebel? Is that something those criminal hackers use?”), despite being able to solve problems far more effectively than other languages. This is why you don’t hear so many success stories.
It’s also a bit frustrating to be waiting for REBOL 3 which will solve 8 years of collecting design problems and shortcomings with REBOL 2 and add a ton of new things, such as being freed from using an underlying OS. REBOL 3 has been under construction since early 2006, so we’ll probably see something soon.
Success stories are few, simply because there are so few REBOL developers, but here’s a little one from me:
A friend of mine had to take the content of a German website with a bad layout and convert it to Danish with a prettier layout, suitable for putting it on a projector screen with live updating. This meant using a webserver, read content from another webserver, parse the content and put it in a separate HTML file that could be displayed as a normal webpage.
He was given 2 days to solve it and asked me how to do it. I helped putting a solution together for him in less than 2 hours, which involved a 9 kB webserver written in REBOL, parsed the original site and delivered the new content with less than 100 lines of code.
I’m sure other REBOL developers have better stories than this one, but these time savings are pretty typical.
It’s too bad that the core is remaining closed source. Frankly, that just doesn’t make sense.
The primary concern mentioned in the interview was that it would keep the language “100% compatible”. Which means, basically, that “it won’t fork”.
But it’s pretty clear to me that REBOL has little chance of forking. Python, PHP, and Ruby have forked with their Java versions, but the primary implementations are single sourced, much like Perl.
There are valid concerns with the consequences of Java forking, mostly because Java is such big business, so there are true economic factors that could potentially motivate a fork (though, of course, Java IS forked already with several closed source implementations).
But truth be told, even if the GPL Java were to fork, it would most likely be the JVM that forked, but using the OSS class library as the value add of a Java fork is really in the JVM.
But if the REBOL core were OSS’d with a compatible license, who knows what might happen if someone decided to try and port the Java GC or JIT code to it, the real crown jewels of the JVM frankly.
Or, perhaps, if they created a JREBOL (dunno how practical that really is).
I appreciate that they have a business to protect, but, as he said in the interview, the language alone isn’t the the value that people are looking for. It’s an application of the language. And there’s nothing that would stop him from marketing and leveraging a REBOL based application built on top of a free REBOL implementation. His IOS could easily remain closed source if he wanted.
Java and the JVM are the classic examples of this. The vast majority of money in the Java space are from commercial applications built on an, essentially, free platform (even before it was OSS’d).
I think it’s easy to argue that REBOL adoption has been hindered by it’s closed source roots. I don’t believe there has been a 3rd party rush to reimplement the previously closed source libraries built on top of the fairly limited, albeit free, REBOL core. That implies that there simply isn’t a 3rd rush for much at all with REBOL.
I think the merits of REBOL outweigh its inventors desire (and right) to keep the core closed.
The issue of open/closed is not the sole reason for adoption or lack thereof, IMHO.
People develop for Windows, perhaps one of the most aggressively proprietary systems on the planet. Most using commercial, proprietary development environments with the goal or creating closed, proprietary, commercial applications.
Many people develop for GNU/Linux with barely a hint of commercial success, and yet rarely, if ever, rebuild Ruby, Python or PHP from source, let alone look at said source.
There are other factors at play here.
What factors? I cannot opine.
I will opine that I enjoy REBOL programming, and it does not feel “closed”. As a relative newcomer I’ve had more open communication with the language designer than I could ever had hoped for with other programming environments.
Brian Tiffin
The fact that Linux developers doesn’t rebuild Perl/Ruby/Python is not an indicator that they don’t care whether they are open-sourced or not: witness the problems that Java has/had because it isn’t/wasn’t open sourced.
That said, it’s true that Windows developers care less about the closed/open nature of the language, so it’s not the only explanation: maybe Ruby lack of recognition before Ruby on Rails is a better explanation: there are so many good languages that to ‘sell’ a language, it needs a killer app..
…I’ve been waiting for REBOL to break out of its slow development scheme the last 5 or 6 years. Back in 2001-2002 I was an avid REBOLer that saw the potential of this (mostly) fantastic language. However, it always seemed to me that it’s development scheme held it back.
Essentially, what RT is doing now feels “too litte, too late” for me.
I agree with everything above
I have been following and programming in REBOL since 2000, and I have to say that I will welcome REBOL 3 when it comes out. REBOL 3 promises to be more like an operating system than any other language that I have seen before. However, what I will welcome the most is the opening of the platform-specific interface code.
The main limitation I’ve run into with REBOL isn’t the name, or the closed source, or the non-C-like syntax, or any of the standard complaints. The reason I haven’t been able to use REBOL more is how awkward it has been to integrate with non-REBOL systems. I’ve seen too many projects where services and systems are reimplemented in REBOL because it was easier than integrating with existing implementations. It has been getting better over time, but you still see it happening. Fortunately, REBOL 3 will change that with its plugin architecture and open source interface code.
REBOL is addictive. What Henrik said about it is true – after programming in REBOL you get endlessly frustrated with the limitations of other languages. You find yourself looking for excuses to use it. I’ve found that I even use it to generate the code that I program in other languages because it is much more efficient than coding directly in those languages. I can’t count the number of times that REBOL has saved me months of work.
I look forward to the next few months – the developments should be interesting.
I looked at REBOL a couple of times, but the closed source nature of the core turned me away. It looked like this was affecting their support for some platforms (OS X). This closed source nature limits developers and makes it harder to integrate with other software,
Also, if the big concern is keeping to a spec across platforms, then use trademark law and only allow those implementations that pass a certification test to use the trademark.
The open vs. closed discussion has been going on for ages and ages. I believe the desire for a closed core is to avoid contaminating it or forking it. Version 2 was the culmination of 20 years of one man’s thoughts on language design and now with REBOL 3 with even greater investments on the design, it’s wildly important that you can’t go in and fork it, because there are so many little details that must not be glossed over. Some debates with fellow REBOL developers can go for days over a single detail in the language.
The language itself isn’t too feature limited, because you can add whatever you need. It’s a clever combination of native functions and so-called mezzanine functions: Low-level things like TCP are native, while protocols like HTTP are not, so if you find a bug in HTTP, you can fix it, because you can bring the source right up in the console. This has been used to extend the original built-in HTTP protocol with asynchronous abilities, independently of REBOL Technologies.
You can build your own protocols as well. Here is a very small and very fast MySQL driver for REBOL:
http://rebol.softinnov.org/mysql/
The surrounding architecture that isn’t part of the language is the limiting part, currently. The core is essentially too monolithic, too big, so if you want to improve the console for Windows, you can’t, because it’s tied into the executable, but it has nothing to do with the language itself.
REBOL 3 will solve these things, while keeping the language pure. This helps also RT to focus purely on the language, while hardcore developers or “lieutenants” can create and improve the supporting architecture under an open source license. This has been a problem and a large burden that has slowed down REBOL 2 development.
REBOL 2 is built in more than 150 different product variations at RT, so it’s a fairly complex process to manage.
The core of REBOL 3 will solve some low-level problems, like adding real multithreading, reducing memory usage with graphics, better font handling, proper sound, better network ports, code modules, better debugging abilities and hundreds of other things.
Oh, there will also be Rebcode built-in, which is a CPU independent assembly language. 🙂
rebol is very lisp like. ’nuff said.
you have to, love it
::
http://www.rebol.net/cgi-bin/r3blog.r
::
http://musiclessonz.com/rebol_tutorial.html
Edited 2007-05-06 10:44
I’ve been told that this little video, I made to experiment with video tutorials, won over a person. It shows how much it takes to produce a GUI. It’s very short and does not show much, but:
http://hmkdesign.dk/rebol/old/movies/rebol.html
Edited 2007-05-06 11:49
Maybe the Rebol browser plugin has future
http://www.rebol.com/web-plugin.html
Only 346kb! but it seams abandoned….
Hi Megatux – Rebol browser plug-in surely is not abandoned. The thing is, that plug-in development came in two phases – in first one, emphasis was put on IE and IE only. Well, many community members objected, and hence we gathered materials to enable creation of NS compatible plug-in 🙂
So, the second phase brought us some improvements, as semi-automatic updates, FF/Mozilla, Opera support, multiple browser plug-in instances, etc.
But – RT started to work on R3 then, which should be much better Rebol, and what is more – we needed better security scheme for plug-in. Those things are going to be adressed with R3, so I think that plug-in was just postponed, not actually abandoned. IIRC they also said it will be open-sourced (plug-in interface, not Rebol)
http://lambda-the-ultimate.org/search/node/REBOL