[REBOL] More Re: [RSL/UHURU discussion]
From: joel:neely:fedex at: 25-May-2001 19:46
Hi, Volker, and everyone,
Here's a bit more on the role of general libraries, stimulated
by Volker's discussion.
> I even think the library is the more important part often.
> But i read and experience building good libraries
> is a very much harder part than special purpose code,
>
This far we are in strong agreement...
> because with SPC you know what you want,
> with libraries/frameworks you dont.
>
...but not to this conclusion! I would state the difference
this way:
* With special-purpose code, I'm only focusing on the
individual task at hand. My code may contain some
dependencies on the peculiarities of the task at hand.
* After I have accomplished enough similar tasks with
special-purpose code, that experience starts to show me
which parts are general and which are specific. I copy
the general parts, make the specific parts into
parameters, and I have something useful for my library.
Of course, if I generalize/parameterize the wrong parts, or
guess too quickly instead of using experience, I may very
well create something not so useful. But trying to apply it
will tell me where I got it wrong. It's just a part of the
learning process.
> And function is only one part, usability is another.
> You try to anticipate what it will be use for,
> and that needs experience, experience and talent (i read:).
>
And I'm confident that the members of the REBOL community
have amassed sufficient experience to begin producing useful
generalizations, even if it takes all of us ganging up on
the problem.
> I think the core-libraries should be build in and carefully
> balanced against each other, and cover the really important
> parts.
>
Agreed. I'm not proposing UHURU as a replacement for the
built-in mezzanine functions.
> If it can't do that, and i have to work with perl-like
> »collect your system first«, a large part of Carls
> promises failed.
>
Here I must disagree. If Carl had built something that only
Carl could understand and use effectively, then I'd call
*THAT* a failure.
But I believe that Carl (and company) have built a foundation that
the rest of us can join together to build on top of, and
I call such a foundation a success. Unfortunately, Carl only
gets a ration of 24 hours per day, just like the rest of us.
Therefore, I also believe that we "little people" can play our
role in helping that successful foundation achieve fuller
acceptance by contributing useful material to a community
library. Even if some of it (or even if *all* of it) were not
written to the same standards of elegance and conciseness that
Carl could achieve (given unbounded time and other resources),
that's better than not having it, isn't it?
> > ... If we fail to offer the newcomer to REBOL a large
> > collection of existing code (both for the purpose of
> > study *and* for immediate black-box re-use) then we
> > condemn him to the task of building everything for himself
> > from first principles. Such a task is much more suited to
> > "highly skilled experts" than to everyday users.
>
> Want to mention the white-box-reuse.
> If i look in the library there are some of Carls scripts
> which have an example-section on the end which one has to
> outcommend before use.
> Making this an option would need
> if not args/no-example[
> ...
> ]
> and thats the crux with black-box: you have to code
> much more options, and they bloat the code clarity,
> where a single char patch would be sufficient.
>
But that's precisely why I've suggested that an UHURU unit
contain three distinct parts (within one file,for the
convenience of the author):
1) the meta-data used by UHURU itself for indexing,
tracing dependencies, searching, etc.,
2) documentation, which I assumed would include the usage
examples, and
3) the functional code itself.
Since the example section wouldn't be embedded in (3), but
would be in (2), there wouldn't be any need for commenting
out, switches, bloat, or any of those enemies of "clarity".
> And, having customized a script for use gives a good
> feeling specially to beginners... I think »you can touch
> it« is a good message for rebol :)
>
I apologize if I wasn't clear enough in the earlier post;
when I said
... offer the newcomer to REBOL a large collection of
existing code (both for the purpose of study *and* for
immediate black-box re-use) ...
I would assume that a beginner might very well (as part of
that "purpose of study") take a function from the library,
play with it, try changing things to see what happens, see
if (s)he could improve performance in specific situations,
and so on. Speaking for myself, that's how I learn a new
language best -- taking samples, changing them, breaking
them, fixing them, etc.
> i would say »to recreat, find or understand«.
> And the last two are growing easy if there is nobody
> skilled enough to collect, refactor and compress them.
> no, the general creation has do be done by rebol.com.
> We pay them for that ;-)
>
Not nearly enough!
> I would prefer creating »standard examples«
> instead of »standard libray«.
> hm. what will i say with this?! Well - ..
>
There's room enough for both! You work on the first, and
some of the rest of us will work on the second. (And any
time Carl provides a better solution than what's in the
library, I'll be the first to say, "Here's a better way!")
-jn-
------------------------------------------------------------
Programming languages: compact, powerful, simple ...
Pick any two!
joel'dot'neely'at'fedex'dot'com