[REBOL] Re: Is Rebol code smaler?
From: greggirwin:mindspring at: 17-Nov-2002 22:01
Hi Norman,
R> Im wondering, when i roam through the codes from ie. the "Library"
R> at reboltech or looking into example of rebol It amazes me again
R> and again that I still see traces of "C".
REBOL is written by people in C. It makes some sense that, even though
they are the ones who really know how to apply REBOL well, sometimes
our mind goes down a certain path whether we want it to or not. :)
R> Even when i look at examples from the RT themself i see purly C routines
R> copied to Rebol (Take i.e. list-dir) Its an awful code, not even rebol-like!
But it is easily understood. Mind you, I'm not saying that RT wrote it
that way to serve as an example but would the following really be any
better? (not that it's a great example)
; Larry Palmiter
map: func [fn blk args /local result][
result: copy []
repeat el blk [append/only result fn :el args]
return result
]
; Gabriele Santilli
mk-string: func [len [integer!] ch [char! string!]][
head insert/dup make string! len ch len
]
; RT - modified by Gregg Irwin
list-dir: func [
{Prints a multi-column sorted listing of a directory.}
[catch]
dir [any-type!] "Directory to list or nothing"
/local max cols
][
dir: sort throw-on-error [either value? 'dir [read dir][read %.]]
max: add 2 first maximum-of map :length? dir none
forskip dir cols: add 1 to integer! (60 / max) [
repeat i cols [prin join dir/:i mk-string max - length? dir/:i " "]
print ""
]
print join length? head dir " files"
]
Nobody's perfect, and here on the list you sometimes see genuine
coding errors in mezzanines come to light. I'm guessing that LIST-DIR
has been around a long time and, since it's working, nobody has messed
with it. That said, you could cook up your own version and submit it
to them for use in a future release. I imagine a lot of things are
that way. I know I've written plenty of code with a deadline looming,
and where the most important thing is to deliver something that works.
People don't care (in general) how elegant or compact your code is.
R> Anyway.. The question remains: Why isnt rebol code smaler?
Sometimes it is. Look at how much power is packed into the LAYOUT
function! Obviously not everything is so dense in the REBOL world, but
does it need to be? Hopefully, when we find things - as you did with
LIST-DIR - that could be improved and made more REBOLish, we'll make
note of them and improve them. Even though REBOL isn't open source, RT
seems very open to including mezzanine fixes and functions from the
community.
-- Gregg