Hacker News new | past | comments | ask | show | jobs | submit login
REBOL 3 Source Code Released (rebol.com)
79 points by itsuart on Dec 12, 2012 | hide | past | favorite | 25 comments



Politically incorrect question for Rebol jocks: Doesn't Red (http://www.red-lang.org/) appear to have the vitality lost years ago by Rebol?

Am seriously not trying to be rude to Carl Sassenrath, Rebol's inventor. Just discovered Rebol lately so am not very tuned in to the ecosystem. But Red has been open source for some time, it appears to be dramatically faster, and seems to be free of Carl's understandable urges to keep some kind of control in an anarchic world?

I say this as someone trying to decide which one to invest my very limited non-work time in one of these two very worthy projects.


Red is like a modernized Rebol, so if you learn Rebol, you have (mostly) learnt Red too.

Red doesn't constrain the anti-complexity fight to the language itself, though. It can already set you free from the "mother of all bloatwares", the GNU compiler toolchain and the "inherently insecure" C language.

Simply (hence a bit inaccurately) put:

You can write programs with the same logic and concepts as C but with Rebol syntax. It's good because it has a simpler&less syntactic sugar and allows unicode words as identifiers.

Such a "source code" is valid Rebol DATA too, so it's easy to introspect, transform, analyze, decorate it, you don't have to parse it as string...

You can compile - for example - a Linux ELF executable for the ARM processor on an x86 Windows machine and all you need is:

1, the ~300kiloBYTE rebol.exe (just 1 file!) http://www.rebol.com/downloads/v278/rebol-core-278-3-1.exe

2, the ~400kiloBYTE https://github.com/dockimbel/Red/archive/master.zip (from which the compiler is ~100 script files...)

NO MORE automake/autoconf coming from packages depending on m4, make, awk, sed, tr, etc and of course "need" a package manager which depends on perl/python/ruby and their "standard libraries" which alone are stored as a sea of small files, theeeen u need GCC with the ocean of .h files also packaged as *-dev packages coming with their meta info in their own files, etc etc...

Feel the contrast?

So Red is really super-cool, but for now it still depends on the ultra-small Rebol binary...


not sure if you're astro-turfing or really unaware of the difference, but in its time rebol had the level of awareness of, say, the rust language now - not something a lot of people used, but with a decent profile in the technical press. a known, interesting, but unlikely to make it language. a class B if you like.

in comparison, red is class C. it's new, has little awareness and little coverage. it's even less likely to make it.

this is not a judgement on the merits of either language (although if you want that, rebol's syntax aware approach looks more interesting to me than anything red has to offer), just trying to give a historical perspective: rebol was bigger than red is now and, i suspect, still has more users, even now. on the other hand, rebol is clearly heading down while red can only go up.


oh, sorry - above is wrong if red is derived from rebol. sorry again.


apache licence. https://github.com/rebol/r3/blob/master/LICENSE isn't that significantly more free than rebol in the past? edit: yes, the original rebol licence didn't allow modification. http://www.rebol.com/license.html



Sadly, this is perhaps too late. This would've been much better timed when Rebol was more popular.

It is very, very cool, however.


Looks like REBOL community was quite seclusive: they weren't using web nor IRC to communicate, but AltME[1]. So, who knows what will happen, when they "come out".

>It is very, very cool, however

Agree. It feels* like if Clojure is a Lisp done right, then REBOL is a metacircular scripting done right.

[1] http://www.altme.com/

* It's just feeling, no intention to start holywar.


The wikipedia description makes it seem like it's cat's pajamas. Has anyone coded in this? If so, what's your experience?


I wrote a small email client in Rebol in 2001, it could download email via POP and send via SMTP directly via the protocols and a socket.

It was a TINY program and it worked cross platform due to the fact that there was a web client for Rebol. I actually used it in production just for myself. Amazingly, I just googled my name and Rebol and found the mailing list archives where I was asking about the project... ah, the power of the web's institutional memory!

Rebol (the language) took a bit of getting used to because the syntax was more functional in nature (although it is note a pure functional language). I had just come from working on some C++ and CGI/Perl programs so it was pretty different. It was a fun experiment to stretch the mind.

Honestly, I hadn't given Rebol a thought since I just saw this post... nice to know it's still alive and well.

The book (still have it on the shelf) I first used as a reference was "Rebol: The Official Guide".


Looking back I recall this article I read in 2005, it was interesting to note it had some similarities to the way data is expressed in JSON and similar ways to declare functions that we now use in javascript (myfunc = function(input) { }, etc.). JSON was released in RFC 4627 in 2006 - the timing and similarity is interesting.

http://www.rebol.com/article/0206.html


Not an accidental similarity, Douglas Crockford credits Rebol as an influence for json.

https://erikeldridge.wordpress.com/tag/crockford/


Here's Doug Crockford mentioning Rebol as an influence:

http://www.youtube.com/watch?feature=player_detailpage&v...


Douglas Crockford says JSON was influenced by REBOL.


I tried using it a couple years ago, just as a sample. It's very very unlike any other language I've ever used. Its weirdness comes from a more practical place than other weird languages, which typically have more of a mathematical or academic axe to grind (APL, *ML, Haskell). Lisp-y, and smalltalk-y with a lot of its own dialect. Lots of batteries included. Now that it's open source I'm more interested in putting the time into understanding it better.


What wikipedia descriptions of modern languages do not describe a computational utopia?


Brainfuck comes to mind, but disclaimer: I haven't looked at the wikipedia article for it in quite some time.

edit: preposition


Erm, interesting style of in-line documentation, with the function declaration embedded in the comment block. Also, alphabetically enumerated (categorized?) source files.


Where can I find stuff implemented with REBOL? Stuff like factorial, a web server, Unix tool implementations.


A pretty full featured web server: http://cheyenne-server.org/

But I also built an infrastructure configuration server from the 2kB http://www.rebol.org/view-script.r?script=webserver.r to avoid LDAP/Chef/Puppet and similar bloatwares.

What do you consider a Unix tool? File and directory handling and serial port access just as HTTP/IMAP/POP/SMTP clients are all built in. See http://www.rebol.com/docs/core23/rebolcore-12.html and http://www.rebol.com/docs/core23/rebolcore-13.html

Instead of lex/yacc it provides the parse function and instead of grep it also provides the parse function (with a more readable BNF-like syntax, which is less effective to write for very small hacks, thats true).


Rosettacode.org is great place for factorial (http://rosettacode.org/wiki/Factorial#REBOL) and other code examples (http://rosettacode.org/wiki/Category:REBOL).


The "Script library" for Rebol is here:

http://www.rebol.org/script-index.r


I am reading about Rebol the first time now. And I have some problems to understand what exactly it is.

Just a scripting language like Python but with some more stuff included, mainly a cross-platform feature-rich GUI framework? And a very own syntax...

Or more like an embedded programmable VM like Smalltalk?

Also, http://www.red-lang.org was mentioned here (and I also haven't heard about it before). How does that compare?


It's a programming language + standard library. The particular feature of REBOL that makes is special is the ease with which you can define your own DSL within the limits of the REBOL lexer. This allows libraries for specific purposes, such as making UIs or parsing text, to be very succinct yet readable.

A bit Lisp-y but with a stronger focus on what in Lisp would be macros.

When first published, REBOL was way ahead of its time, having explicit support for a variety of well-designed DSLs before the term DSL even existed (or at least, was widely known). The downsides of REBOL always were its closed source commercial model and the lack of a strong community as a (probable) result therefore, plus the fact that by default, the UIs made by the built-in UI library look absolutely horrible, which isn't a big problem really but helps scare newcomers away.

That one first downside seems to have been taken away now.

A nice REBOL showcase is, IMHO, it's oneliner page:

http://www.rebol.com/oneliners.html

Plus the (excellent) associated commentary on some mailing list:

http://www.xent.com/pipermail/fork/Week-of-Mon-20091109/0545...


Wonder if this code has survived into this version: http://ll1.ai.mit.edu/marshall.html

Added: no: https://github.com/akavel/sherman




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: