[REBOL] Re: Rebol Framework suggestion
From: greggirwin:starband at: 15-Sep-2001 11:30
Hi Chris,
I've been thinking about this some more and I thought I'd throw out some
ideas to see if anything sticks.
What if we start by creating some libraries. We should be able to get at
least some small consensus on a reasonable taxonomy from the people here.
The RT script library is categorized and provides lots of great examples in
specific contexts but, for people just learning REBOL (like me), it can be
quite time consuming to sift through the code in the examples to find the
bits you need and extract them.
I may be unusual but, as much as I like just grabbing something that works
and using it, I really like to undertand the tool(s) I'm using. That means
taking apart the RT examples and figuring out what each little piece does so
I can extract and generalize the bits I need. I'm building up a collection
of my own functions and I'll need to organize them somehow, so why not kill
two birds with one stone.<g>
What if we use contexts for namespacing to manage libs? For example, we
could use contributors initials as the top level.
rt
/math
/str
/obj
gsi
/math
/str
/obj
cm
/math
/str
/gfx
Alternately, you use the category names as the top level and then just
include comments about the contrbutors, if so desired. A key will be
simplcity in the naming. That is to say, making sure that using the standard
library functions doesn't add so much prefixing that readability suffers.
Using a single special character as a prefix, or suffix, might be less
intrusive than a "-lib" suffix (as in the example below).
*math math* math-lib
*str str* str-lib
*obj obj* obj-lib
*gfx gfx* gfx-lib
I don't know what the tradeoffs are between loading a large library of
functions into the global space versus putting them in contexts. I.e. are we
going to pollute the global space horribly or do we suffer a
memory or performance penalty by using contexts?
We could also (well, we meaning someone who knows what they're doing <g>)
build a tool that would extract only the required definitions and combine
them into a deployment file. That way you could develop with the whole
library but then take a "snapshot" of the functions you use and put them all
in a single file for distribution. Pros? Cons?
I'm open to critiques and comments on all sides. I don't think we want to
build a big, complex, unREBOLish beast but just a more granular library that
people can use and learn from.
--Gregg