REBOL the "Messaging Language"
FunkflY writes "
From the Rebol Hompage"REBOL (pronounced "REB-ul"), the first in a new breed of Internet messaging languages, today revolutionized the exchange and interpretation of network-based information by allowing programs authored in REBOL/core 2.0 to run on more than 15 popular computing platforms without modification. As a messaging language, REBOL provides seamless network connectivity to the Internet protocols such as HTTP, FTP, SMTP, POP, NNTP, Finger, and others."
" A new version came out recently-worth checking out.
I do not mean to poo-poo on someones new toy,
but why should people use a "new language" just
to do simple little tasks like downloading
a webpage or sending mail? There are already
powerful scripting tools out there. Tcl, Perl,
and Python have been around for a lot longer
and they can do all of this and more. Perhaps
someone can clue me in about why this tool
is any better than the existing ones.
Look at the email examples. In one of them answers are sent to the From: address (instead of the Reply-To address if available), in another one the From: address is used to trust the sender ... talk about security holes
Having the basic Internet protocols built into the core is a nice idea. But the language looks like candygrammar, with all the pain that entails. I don't see support for regex, either.
-Philip
All the whining and crying about Rebol's logo and why it's nothing to even look at. At how Perl pounds the daylights out of it. Crimeny-sakes!
I emailed Rebol last fall and asked if it would be available for the PalmPilot. Within a day they emailed me and said that they would investigate. It's now atleast listed as pending on the site. Did anyone else notice this? You might be geeks but you aren't going to get a functional Perl dist on the PalmPilot. (And CPAN won't help in this arena.) I think it's a niche language for niche applications that looks promising for communications between portable devices and 'regular' systems.
Rebol is something new (as compared to C,C++,Perl). Something cool to learn. Maybe even useful. Why's this group so condescending to 'new' technology? I even saw a gripe about it being Freeware. Geez-oh-whiz! Only here.
Did any of the nay-sayers, at the dawn of Perl say, "Ohhh, that's junk. What do we need that for? I don't see the application for it."?
I've used it a bit in the past and I must say that it really is nothing like C. To me it feels very LISP like. The heavy use of []. Blocks (which are often just lists of things) being used to store most data, and the everything-is-data-until-executed way of working. Also, Rebol is a hell of a lot more dynamic and lose than C. Any 'word' (or function) can be redefined anywhere, anytime.
Try it out, it's fun. But you won't get very far using a C like programming mentality.
Open Your Mind (tm)
--Simon.
Ugh.
That's not a question of being a die-hard or not. The real question is why the f*&% people still invent new syntax. The beauty of Scheme (or Common Lisp, for that matter) is that you learn one basic syntax, and you can construct most any domain-specific syntax in terms of it. Yes you can have infix math in Lisp. Do your homework or something.
All this glitzy networking stuff could be a nice Scheme or Lisp extension, along with the syntax. But noooo, we have to invent a new damn language to have the networking. We'll have Perl for text processing, Lisp for heavy AI, Rebol for networking and Python for, uh, "rapid prototyping" (slow prototyping, anyone?).
Disclaimers:
1. I needed to vent.
2. I think the computing field needs more people that know what they are doing, and "easy" languages only help impostors and give people unfounded hopes (like, hey, I'm a bad-ass algorithm designer. I know Basic).
3. I don't take parentophobes seriously. If you have such problems distinguishing syntax from semantics, than you probably don't have a good grasp of the distinction between content and representation.
There, I feel better now.
-- LIVE FATS DIE YO GNU
It's not very C-like; if I had to pick a language it _is_ like, it'd be Forth, but with the ability to have syntax. Not at all unpleasant.
Anyhow, one interesting result of the Forth-like nature is that there are a huge number of datatypes which are not possible in other languages; for example, URLs are actually formal datatypes, not just another string (a malformed URL is a compile-time error).
They've obviously learned from Perl and Python otherwise; it's a nicely dynamic language which seems to be error-tolerant, and has quick, easy syntax for most needs.
I'm reasonably happy with it. It doesn't look as _nice_ as Python, but at least its braces and brackets have a purpose.
I suppose I'll have to build a Lojbanic version. Now that would be interesting. A speakable computer language.
Personally, I can't imagine why anyone in 1999 is bothering to release a new language without making the source code available. Haven't we learned better by now?
Linux is part of the Free Software movement. If you don't like that then you should present clean, concise reasoning why we should never discuss it. You are making HUGE generalizations about Linux and Windows users and you ought to learn how to present a rational argument instead of this silly banter.
Why shouldn't we critique the license under which new software is released? Why should we accept everything developed for Linux with beggar's hands? We shouldn't and we don't (surprise). If that offends you, I'm not sorry and I won't apologize for "whinning programmer" bretheren for it is you who is doing the whinning here.
As for the issues; UNIX is based on small utilities which do one thing well. None of the examples on their website showed anything revolutionary or even interesting when compared to BASH. What's the difference between doing
and It is any surprise that were not very impressed?Perl is a schitzophrenic language. It can look good, it can look bad. It can be object-oriented, it can be iterative, it can be threaded, it can be modularized. It can embed code from other languages, it can communicate with the native OS using native constructs, it can be graphical, it can be ttyable. It is what you want it to be, and yes, it should be compared to REBOL because they are trying to solve the same problems.
But I suppose you'd rather whine about Linux users with your time. What a joke. And as for the Amiga user: get over it. I used to be an Amiga user and I don't expect the Linux community to "care about my feelings" or other such bullshit. If you want to compare something with AREXX then do it. If you want to spout how 31337 you are because you're the "only" one to ever use it, you have no business raking Linux users over the coals for doing the same thing with Perl and C. Shut up and present a post with content.
The wheel is turning but the hamster is dead.
The wheel is turning, but the hamster is dead.
Rebols really pretty cool.
Sure, I know "it's another scripting language" - but consider that it has support for currency built into it. I don't really see that any where in Perl. Oh yeah, and date arithmetic too.
It's really nothing like C or C++, so I'd suggest that all the nay-sayers who've been saying that it is, take a look at it for real. Considering that it's a 150Kb download it really shouldn't take that long... Oh yeah there's another difference from most "modern" scripting environments, it's small. Yeah - you get all that good stuff in a very tiny package.
So, far, after extensive experience with NNTP and HTTP via Perl, I would have to say that Rebol is much much simpler to use, and leverage for a person who just wants to get stuff done.
An example from their documentation:
; A simple database
persons: [
"Moe Howard" CEO "Three Stooges Ltd." moe@threestooges.com
"Larry Fine" Manager "Dept. of Knuckleheads" larry@kheads.gov
"Curly Howard" Mascot "Wise Guys Club" curly@wiseguys.org
]
; The fields of the database as words:
facts: [name title company email]
; The format used to print the info:
text: [name "of" company "is at" email]
; The loop that prints the database:
use facts [forskip persons 4 [
set facts persons
print text
]
]
Would generate the following:
Moe Howard of Three Stooges Ltd. is at moe@stooges.com
... etc.
- Woodie
I find it suitably ironic that the de-formatting that happened to that example would cause it not to run. I'll take a language that isn't whitespace-sensitive, thanks.
I've finally had it: until slashdot gets article moderation, I am not coming back.
slashdot moderators should hold a contest w/ the following rules:
my guess is that there will be people interested in this sort of friendly competition.
I don't understand the people who have commented so far and their view that REBOL is a "good" language simply because it's "easier" than other languages. I think this is a common misconception that is evident in multiple areas of computer science -- that something is "good" because it's easy for the lay-person to pick it up and understand it.
While this may be true for application programs, which are designed for end users, other areas of computers should not be made "simple" for end users. Take two examples, both from our "favorite" company:
1) Visual Basic - this was an attempt to make programming a graphical system "easy" for lay people and those just getting "started" in programming. The result is horrendous. It may be easy to throw a few things together and come up with a "prototype" program but I'd be hard to convince that VisualBasic is "the" programming language to use for large complex projects.
2) WindowsNT - Well, this is pretty self explainatory. This server operating system was designed with a "user-friendly" interface to make it easier for "administrators" to configure and maintain the system. What a joke. It's plain stupid to believe that anyone can make system administration "easy." The only way it's easy is if you have an experienced administrator behind the wheel who knows what they are doing. Then, you can have a well oiled operation that does not require any unforseen problems. However, I would strongly disagree with anyone that says you can take an inexperienced person and have them effectively administer a system just because it has a "user-friendly" interface.
Now, what does this have to do with REBOL? Well, REBOL may be a great language. But whether it makes it "easy" for beginners or not does not influence my decision to use the language at all. In fact, I would hope that end users do not try to "program" in it simply because it's "easy." We would then end up with programs that "sort of" work "sometimes."
If someone wants to get into the computer field, let them go to school and take some classes. It's important to learn the underlying concepts before going off and writing programs for production systems. Failure to do so usually results in more work for true CS gurus who have to fix the resulting problems.
Progamming languages ARE easy to learn/use/figure out if you've had several years training doing it. That is why people go to school for years to become computer scientists. If I'm going to have to start using a new programming language, I want it to be better, not just easier to use/learn/figure out. And just because it makes simple tasks easier, what does it do for more complicated tasks? I haven't fully evaluated this language yet, but just because it looks easy at first glance, doesn't mean that it really is easier in the long run.
Here is something to think about, does the medical field make it easier for non-doctors to start practicing medicine without a degree? Or why don't they make plane cockpits simpler so that it would be easier to use/learn/figure out for a non-pilot?
---
- Its syntax is familiar to millions of C and C++ programmers out there, so writing in Java is not a big deal
- It's hyped and backed by a computer industry heavyweight (Sun)
REBOL lacks both of these.As for the "built-in networking" - I wouldn't make such a fuss out of it. It's true that other languages (perl, for example), don't come with these built-in, but with the excellent distributed module repository - CPAN - it's a non-issue. Fetching a WWW page is as simple as
Getting stuff done ? I haven't yet met a language that can beat perl when it comes to minimizing development time, as the mission of REBOL seems to be different (as it says, a Messaging Language), I doubt it can do that either.
REBOL for Internet Applications instead of Java.. hmm.. maybe ;)
Well, Carl Sassenrath developed the "classic" AmigaOS - which was a 32-bit, preemptive multitasking, message-passing OS, running on 68k series chips (N.B. even the 68000, though it had a 16-bit data bus, had 32-bit registers (16 of 'em, not 4...), so the OS was always written (well, 1.3 and above) to be 32-bit) -but it lacked true memory protection (it came fairly close with pervasive semaphore locking in software, and a few other tricks. My amiga without true memory protection was always more stable than W95's so-called memory protection...) - CPUs with MMUs wre prohibitively expensive at design time of the original amiga.
The Amiga OS had lots of good features, though, some of which linux is only catching up to now. A lot of its more esoteric and underused functions were actually quite cool, for the time. e.g. The Envoy networking software, in conjunction with ARexx, had "gateways" that could be used for message passing, scripting, etc, between clusters of Amigas - basically anything that a local arexx program could do, could also be sent through the gateways to other amigas. I also liked the dynamically resizing ramdisk - it was always handy. The support for multiple resolutions and colour depths on different screens simultaneously was also very useful. This was possible due to the custom hardware, though, which really made the amiga what is was.
It's also really easy to program for in C or macro assembler, and its system include files work very well, and were very well written (on average) - I liked taglists for function parameters, exec lists were really useful, etc. etc.
A lot of Linux people are ex-amiga people. Rasterman springs to mind. Imlib's kinda like datatypes, and enlightenment on X obviously borrows from the amiga workbench on intuition.
Amiga OS 5.0 is a different kettle of fish. It's built upon QNX, which is a very good RTOS. It has relatively little to do with Amiga OSes 0 to 3, other than the name, and the fact that some of the original amiga people are designing it "in the spirit of the original amiga" - whatever that's supposed to mean.
Rebol is a pretty easy language to learn, and very easy to read. However, I'd expect the Amiga NG people to include several scriptiing languages- they'll probably include the GNU tools, for a start, at least in the developer release of the OS.
Choice of masters is not freedom.
# A simple database
persons = (
("Moe Howard", "CEO", "Three Stooges Ltd.", "moe@threestooges.com"),
("Larry Fine", "Manager", "Dept. of Knuckleheads", "larry@kheads.gov"),
("Curly Howard", "Mascot", "Wise Guys Club", "curly@wiseguys.org")
)
# The fields of the database as words:
facts = ("name", "title", "company", "email")
# The format used to print the info:
text = "%(name)s of %(company)s is at %(email)s"
# Emulate Rebol "set" feature
def set(attr, val): globals()[attr] = val
# The loop that prints the database:
for person in persons:
map(set, facts, person)
print text % globals()
P.S. Hey, Rob, how about allowing (pre) or (code) tags, eh?
taken from http://www.rebol.com/web-read.html
To read a web page:
page: read http://www.rebol.com
To view the HTML source code:
print page
Or, you could just write:
print read http://www.rebol.com
which to me a non-perl/non-rebol user seems a lot easier than the perl example
If we're going to get worked up about languages, why aren't we worrying about Haskell, which doesn't seem to have a licensing scheme and in which Microsoft has taken an altogether too intense interest?
Encourage the Haskell folks to settle on a good license -- PAL, GPL, whatever they can stomach. ANYTHING but a Microsoft hegemony.
Rebol is just another offspring of the LISP family. Haskell is something different and interesting.
--
Some keywords for the NSA in the Lord of the Rings universe: One Ring bind find Sauron quest Nazgul freedom