[REBOL] Re: Fwd: Re: Re: On mutability and sameness
From: robbo1mark:aol at: 20-Jun-2001 14:38
JEFF,
You are *as usual* mostly right.
Iam not on a PR campaign, yes I do want an "open" REBOL
and NO Iam in no way as clued up as all you supremely talented guys at REBOL.
I DO want an open REBOL now, as I'm a tinkerer at heart as well as being impatient! that's
not a crime though.
I take on board what you say, honestly! If REBOL was open I could study away at it to
my hearts content and not bother anybody.
But it's not and so I'll just have to keep on trying to master REBOL *AND* attempt to
understand it's implementation, if my brain is big enough for that capacity! 8-)
Yes I DO understand that that is a gargantuan task and I will make lots of mistakes and
bloopers along the way.
Sure there is no way I can truly understand Carl's genius, it took him 20 years, but
by trying to glean whatever I can from whomever I can will help me / us along the way.
I DO have some friend who share this goal too!
If it means we make a right pigs ear of things then at least we will learn from that
and make it better in the next revision, people will be able to see where things are
done badly or wrong and make it better, is that not what open source is all about?
I DO want REBOL to succeed, you must believe that, Iam also a naughty boy sometimes and
suppose am guilty of being provocative and wind people up sometimes, sorry I honestly
don't mean to personally offend anyone, it's just the way Iam I guess.
Thanks for your help and advice!
cheers,
Mark
In a message dated Wed, 20 Jun 2001 1:06:48 PM Eastern Daylight Time, nop <[whip--cs--unm--edu]>
writes:
<<
Hello, Robbo.
[Jeff emailing from his school account --
rebol.net looks down right now]
> REBOL AS IT'S OWN META-LANGUAGE
>
> I've read recently from Jeff & Joel, and other's in the previously,
> that REBOL is it's own meta-language.
>
> This is bunk! or at least only partially true.
No, it's not bunk.
> Consider this model of REBOL addition...
>
> >> add: func [ x y ] [ + x y ] add 1 2
> == 3
>
> Fine so far, however how do you define the '+ in the function body?
>
> If you say
>
> >> set '+ func [ x y ] [ add x y ]
>
> On the surface it looks okay, but try....
No, on the surface it doesn't look okay at all. You've defined the
function ADD to depend on the function +, and you've defined + to
depend on the function ADD. Something eventually has to
be able to actually add two numbers.
> >> add 4 5
> ** Internal Error: Stack overflow Near: add x y
> >> + 4 5
> ** Internal Error: Stack overflow Near: add x y
> >>
>
> Your into infinite recursion here, so REBOL as a complete
> meta-language is "insufficient".
So, I don't really understand. What are you trying to demonstrate
with the above?
. . .
> If this was the case there would be no need for RT Inc. to write
> any more interpreters, we could simply write and extend REBOL in and
> from REBOL and we'd all live happily ever after.
Written many dialects?
> Unfortunitely there are these "irreducibles" or "primitives" that
> you simply MUST have to get the system up and running.
>
> It is for this reason that you sometimes have to use C or Java or
> something else to "explain" or implement REBOL.
You don't "HAVE TO" use a low level language to "explain" a high
level language.
> You can however devise a way to construct these "primitives" from
> within REBOL / your "meta-language" then you get into the realms and
> possibilities of META-COMPILATION which is a system written in
> itself, however you still have to bootstrap the whole process from
> something else first whether this be Assembler or C or Java or
> whatever.
Are you sure this is necessary? Have you tried, or are you
just speculating here?
> Forth proves this is possible and has had this capability for nearly
> thirty years now, maybe someday REBOL will catch up & we'll be
> dispensed with the need for RT to write our REBOL interpreters for
> us, if we so choose of course. 8-)
That's right.. How uncool of RT to be writing our REBOL
interpreters for us. The nerve of them!
> Oh Dear, why am I always so contrary?
I figure it's part of your PR effort. Play up on that martyr
kind of thing.. :-)
> I don't know about painting that fence Jeff, maybe I should come
> round from the wrong side of it and you can break the fence apart &
> hit me over the head with it!
See, if you ask me, which you haven't, you're going about this all
wrong. You're running out and rather recklessly trying to implement
(or actually, trying to get someone else to implement for you) a
language of great design and forethought (nearly 20 years in design
and many man years of implementation) and yet you consistently seem
to demonstrate rather questionable mastery of REBOL.
If I were you and I was trying to clone REBOL, I'd do the following:
First, become a true REBOL guru, mastering REBOL to a fine art,
including all its different areas: dialecting, introspection,
metaprogramming, networking, GUI, etc... True REBOL gurus can
explain why there is dialecting in REBOL, how to make user defined
ports, the reasoning behing MOLD/only, or LOAD/all, etc.. With all
this understanding of the language, I'd help 1,000 newbies into the
language. Now once my expertise in REBOL was solid and sure, and my
commitment to the beauty of the design was complete, then and only
then would I embark on the journey to clone REBOL.
Here's my recommendations for the cloning phase (which you've
already jumped ahead to):
A. Drop the hokey PR gig.
B. Produce something. Actions speak louder than words.
What to produce? Well, an actual interpreter written in some
compiled language is a lot to expect right away (or for a very long
time). Unrealistic expectations are bad for any development
project. The most rational approach would be to try and implement
REBOL in REBOL first. You can learn a great deal more about the
rules of the language as you put it together, and a working REBOL
implementation of REBOL counts as producing something (you can
actually take credit for having done something other than yack).
Once you've gone through those exercises before actually attempting
something compiled, the likelihood of you groking many of the finer
aspect's of Carl's awesome design will be higher. Also, with that
understanding of the design, the likelihood will be much lower that
you'll end up creating some super mangled REBOL-like language that's
only vaguely related and inappropriately compared.
I only bring this all up because I think it's great that you're
trying to clone REBOL, but like I've said, your approach just shocks
my esthetics and sensibilities. (-8 I sort of think you want to
have it all now, but I suspect you may have to live with RT writing
your REBOL interpreter for you for a while yet...
Just my opinion-- Best of luck!
-jeff