SHEEP vs Rebol
[1/17] from: petr:krenzelok:trz:cz at: 12-Oct-2001 22:33
Not necessarily what subject suggests, but interesting interview with author
of SHEEP, new AmigaDE scripting language.
http://www.osnews.com/story.php?news_id=169
I can't imagine having Rebol compiler compiling 50 K scripts in 0.1 sec,
performing at C level speeds :-(
-pekr-
[2/17] from: carl::rebol::com at: 12-Oct-2001 15:33
They would be better off using REBOL, but perhaps they don't want their scripts to run
and exchange data across 40+ platforms....
-Carl
At 10/12/01 10:33 PM +0200, you wrote:
[3/17] from: carl:cybercraft at: 13-Oct-2001 12:29
On 13-Oct-01, Carl Sassenrath wrote:
> They would be better off using REBOL, but perhaps they don't want
> their scripts to run and exchange data across 40+ platforms....
Not to mention doing it now, as apposed to sometime in the future -
perhaps...
> -Carl
> At 10/12/01 10:33 PM +0200, you wrote:
<<quoted lines omitted: 8>>
>> [rebol-request--rebol--com] with "unsubscribe" in the
>> subject, without the quotes.
--
Carl Read
[4/17] from: gchiu:compkarori at: 13-Oct-2001 13:21
On Fri, 12 Oct 2001 15:33:25 -0700
Carl Sassenrath <[carl--rebol--com]> wrote:
> They would be better off using REBOL, but perhaps they
> don't want their scripts to run and exchange data across
> 40+ platforms....
>
But then they would have to pay for Pro licenses for each
unit so that they could have sound :)
--
Graham Chiu
[5/17] from: chrismorency:videotron:ca at: 12-Oct-2001 21:41
Hi Graham,
> > They would be better off using REBOL, but perhaps they
> > don't want their scripts to run and exchange data across
> > 40+ platforms....
> >
>
> But then they would have to pay for Pro licenses for each
> unit so that they could have sound :)
me: make object! [
say: func [joke [string!]] [print joke]
]
; Sorry could'nt resist making this bad joke while feriously hackin' my
rebol code !
me/say "SHEEP-shot"
Chris
[6/17] from: petr:krenzelok:trz:cz at: 13-Oct-2001 9:47
(for Carl :-) Re: Re: SHEEP vs Rebol
----- Original Message -----
From: "Carl Sassenrath" <[carl--rebol--com]>
To: <[rebol-list--rebol--com]>
Sent: Saturday, October 13, 2001 12:33 AM
Subject: [REBOL] Re: SHEEP vs Rebol
> They would be better off using REBOL, but perhaps they don't want their
scripts to run and exchange data across 40+ platforms....
But they claim that AmigaDE itself will live on some XX platforms. The
strategy here overlaps with RT's one imo, only the target audience is
slightly different. AmigaDE - entertainment, electronic devices, MULTIMEDIA,
Rebol (so far) - business collaborative markets, lack of multimedia ...
Carl, I remember your original master-plan. We were supposed to to end-up
with MagmaOS. In toda's world full of other OSes it would be probably waste
of time, to introduce new one - I am talking of low level OS layers of
course. Rebol running on most platforms is greter value of course, so:
- give us Rebol/View running under Elate, and you are suddenly targetting
all Tao based electronic devices.
- give View some suggested fixes (alpha, fixed timers, exposed effect
pipeline or some general engines)
- or even - make some money (I hope IOS will do for RT :-), employ some
additional programmers, and you personally give us Rebol/Scala (to kill
Flash :-)
- but - what to do with speed? Currently, we are pretty much dependant upon
what (general engines) and when RT adds to its kernels. I can't imagine
however building something as 3D, general 2D drawing (not just effects),
dependant on primitive operations, fast enough. So, if we can't compile, we
can't compete speed wise. Imagine Sheep tree example, interpreted in
Rebol,it would be probably XX times slower ...
btw: is there still plan to adress PDA markets with Rebol products?
-pekr-
[7/17] from: kolla:nvg:ntnu:no at: 13-Oct-2001 15:23
Re: SHEEP vs Rebol
On Fri, 12 Oct 2001, Carl Sassenrath wrote:
> They would be better off using REBOL, but perhaps they don't want their
> scripts to run and exchange data across 40+ platforms....
What? A REBOL/OEM?
Demo version with all sorts of pieces cut
out because "most users dont need it"?
Woutter has proven several times that he knows what he's doing, I dont
see a problem with SHEEP as such, I'm more worried about the AmigaOS :)
-- kolla
[8/17] from: karlr20::home::com at: 13-Oct-2001 13:52
Re: (for Carl :-) Re: Re: SHEEP vs Rebol
On Saturday 13 October 2001 00:47, Petr Krenzelok wrote:
> - give us Rebol/View running under Elate, and you are suddenly targetting
> all Tao based electronic devices.
<<quoted lines omitted: 9>>
> can't compete speed wise. Imagine Sheep tree example, interpreted in
> Rebol,it would be probably XX times slower ...
And don't forget that Elate has it's own font engine, something REBOL/View is
sorely lacking.
-Karl
[9/17] from: greggirwin:mindspring at: 13-Oct-2001 16:15
Hi Pekr,
<< Imagine Sheep tree example, interpreted in Rebol,it would be probably XX
times slower ...>>
I converted the script (appending line points to an images draw effect,
refreshing the screen only when done, not worrying about how to optimize the
REBOL code), and here's what I got on my P900:
First run: ~4.5 seconds (and massive amounts of memory is allocated because
the draw effect started out empty)
Successive runs: ~.5 seconds (and memory is reclaimed)
Refreshing the screen at each iteration, of course, slows things to a crawl
but is more fun to watch. :)
I agree with everyone who wants REBOL to be the best, fastest, safest, most
productive development tool out there, but I think we also need to temper
our hopes and expectations and find ways to do what we want and not use
REBOL for those apps where REBOL *isn't* the best choice. Personally, I
would love to have a single development tool that I could use for every
project, and was the best tool for every project, but that isn't always
feasible.
I imagine that RT is making hard choices every day about where to expend
their efforts in an attempt to make REBOL a success. They'll look at what
the market demands, what limits we push in using it, and what we ask for
here on the ML.
I've used VB for 10 years, and QB/PDS before that. I think it's a great tool
and I love as many things as I hate about what it has become. I use it for
all kinds of things, but it isn't always the right tool. If someone has low
memory requirements, for example, or where a completely self-contained
deployment package is desired. Some of its limitations come from Windows
itself. For years it didn't have a native code compiler but could work
around that by building DLLs and linking to them. Not a perfect solution,
but a solution none-the-less.
When VB first came out, it was an uphill battle to convince people that it
was a viable alternative. Their trump card, if they were against it, was
Won't the app be slower than if we wrote it in C?
to which I would reply
Actually, the VB app will be a lot faster...probably 6 to 8 weeks faster.
:)
--Gregg
[10/17] from: doncox:enterprise at: 13-Oct-2001 20:19
Re: SHEEP vs Rebol
On 12-Oct-01, Carl Sassenrath wrote:
> They would be better off using REBOL, but perhaps they don't want
> their scripts to run and exchange data across 40+ platforms....
>
> -Carl
Rebol View works on the Amiga (admittedly slowly) but AmigaDE doesn't.
Nor does it work on Mac.
Something wrong there.
But SHEEP does look like a nice language.
Regards
--
Don Cox
[doncox--enterprise--net]
[11/17] from: carl:cybercraft at: 14-Oct-2001 14:13
Re: (for Carl :-) Re: Re: SHEEP vs Rebol
On 14-Oct-01, Gregg Irwin wrote:
> Hi Pekr,
> << Imagine Sheep tree example, interpreted in Rebol,it would be
<<quoted lines omitted: 7>>
> Refreshing the screen at each iteration, of course, slows things to
> a crawl but is more fun to watch. :)
So, do we get to see the script? (:
--
Carl Read
[12/17] from: allenk::powerup::com::au at: 15-Oct-2001 7:11
Re: SHEEP vs Rebol (Pythagoras Tree)
Hi Gregg,
I think the modified script below will improve the first time performance by
quite a bit
for you. Pre allocating the space needed makes a big diff. (1/3 the time on
my machine)
Cheers,
Allen K
REBOL [
Comment: {
Converted to REBOL by Gregg Irwin for testing purposes.
Some speed mods. Pre-allocated block size, REBOLised the maths Allen K
}
]
pyth-tree: func [
a[pair!] b[pair!]
depth[integer!] face
/local c d e color
][
c: d: e: 0x0
color: depth * -10 + 0.255.0
c/x: a/x - a/y + b/y
c/y: a/x + a/y - b/x
d/x: b/x + b/y - a/y
d/y: a/x - b/x + b/y
e/x: c/x - c/y + d/x + d/y * 0.5
e/y: c/x + c/y - d/x + d/y * 0.5
append draw-cmds compose [pen (color) line (c) (a) (b) (d) (c) (e) (d)]
;append draw-cmds reduce [c a b d c e d]
;print [c a b d c e d]
;show face
if depth < 12 [
pyth-tree c e depth + 1 face
pyth-tree e d depth + 1 face
]
;wait .05
]
world-size: 640x520
start-pt-1: 266x450
start-pt-2: 374x450
lay: layout [
size world-size
backdrop black
origin 0x0
canvas: image 640x480
across
button "go" [
clear draw-cmds
;show canvas
print now/precise
pyth-tree start-pt-1 start-pt-2 0 canvas
print now/precise
;print length? draw-cmds
show canvas
]
button "quit" [quit]
]
; preallocate the space needed
canvas/effect: reduce ['draw draw-cmds: make block! 90000]
print ""
view lay
[13/17] from: philb:upnaway at: 15-Oct-2001 8:23
H Gregg/Allen,
Wow that really surprised me ....
Not Pre-allocated
15-Oct-2001/8:16:35.54+8:00
15-Oct-2001/8:16:41.03+8:00
05.49 seconds
Preallocated
15-Oct-2001/8:17:32.6+8:00
15-Oct-2001/8:17:33.1+8:00
0.5 seconds
That a 10 times improvement ....
This is on Windoze 98SE with 128 Mb of ram.
Cheers Phil
-- original message
Hi Gregg,
I think the modified script below will improve the first time performance by
quite a bit
for you. Pre allocating the space needed makes a big diff. (1/3 the time on
my machine)
Cheers,
Allen K
REBOL [
Comment: {
Converted to REBOL by Gregg Irwin for testing purposes.
Some speed mods. Pre-allocated block size, REBOLised the maths Allen K
}
]
pyth-tree: func [
a[pair!] b[pair!]
depth[integer!] face
/local c d e color
][
c: d: e: 0x0
color: depth * -10 + 0.255.0
c/x: a/x - a/y + b/y
c/y: a/x + a/y - b/x
d/x: b/x + b/y - a/y
d/y: a/x - b/x + b/y
e/x: c/x - c/y + d/x + d/y * 0.5
e/y: c/x + c/y - d/x + d/y * 0.5
append draw-cmds compose [pen (color) line (c) (a) (b) (d) (c) (e) (d)]
;append draw-cmds reduce [c a b d c e d]
;print [c a b d c e d]
;show face
if depth < 12 [
pyth-tree c e depth + 1 face
pyth-tree e d depth + 1 face
]
;wait .05
]
world-size: 640x520
start-pt-1: 266x450
start-pt-2: 374x450
lay: layout [
size world-size
backdrop black
origin 0x0
canvas: image 640x480
across
button "go" [
clear draw-cmds
;show canvas
print now/precise
pyth-tree start-pt-1 start-pt-2 0 canvas
print now/precise
;print length? draw-cmds
show canvas
]
button "quit" [quit]
]
; preallocate the space needed
canvas/effect: reduce ['draw draw-cmds: make block! 90000]
print ""
view lay
[14/17] from: greggirwin:mindspring at: 14-Oct-2001 18:28
Thanks Allen!
I still have those "beginners blues". Your mods are appreciated more for
teaching me than the speed (which is now ~.3 seconds here). :)
--Gregg
[15/17] from: greggirwin:mindspring at: 14-Oct-2001 10:28
Re: (for Carl :-) Re: Re: SHEEP vs Rebol
Hi Carl,
<< So, do we get to see the script? (: >>
I wasn't sure if people would be interested. Here it is.
-- Tree of Pythagoras
-- based on an old E example by Raymond Hoving
REBOL [
Comment: {
Converted to REBOL by Gregg Irwin for testing purposes.
}
]
pyth-tree: func [
a[pair!] b[pair!]
depth[integer!] face
/local c d e color
][
c: d: e: 0x0
color: 0.255.0 - (depth * 10)
c/x: (a/x - a/y + b/y)
c/y: (a/x + a/y - b/x)
d/x: (b/x + b/y - a/y)
d/y: (a/x - b/x + b/y)
e/x: (0.5 * (c/x - c/y + d/x + d/y))
e/y: (0.5 * (c/x + c/y - d/x + d/y))
append draw-cmds compose [pen (color) line]
append draw-cmds reduce [c a b d c e d]
;print [c a b d c e d]
;show face
if depth < 12 [
pyth-tree c e (depth + 1) face
pyth-tree e d (depth + 1) face
]
;wait .05
]
world-size: 640x520
start-pt-1: 266x450
start-pt-2: 374x450
lay: layout [
size world-size
backdrop black
origin 0x0
canvas: image 640x480 effect [draw []]
across
button "go" [
clear draw-cmds
show canvas
print now/precise
pyth-tree start-pt-1 start-pt-2 0 canvas
print now/precise
show canvas
]
button "quit" [quit]
]
draw-cmds: second canvas/effect
print ""
view lay
--Gregg
[16/17] from: holger:rebol at: 16-Oct-2001 12:45
Re: SHEEP vs Rebol (Pythagoras Tree)
On Mon, Oct 15, 2001 at 07:11:32AM +1000, Allen Kamp wrote:
> Hi Gregg,
>
> I think the modified script below will improve the first time performance by
> quite a bit
> for you. Pre allocating the space needed makes a big diff. (1/3 the time on
> my machine)
Yes, that's a bug (two actually) in REBOL. Will be fixed in the next
version. The time for the original script, without preallocation, is
down to 0.6 sec here now.
--
Holger Kruse
[holger--rebol--com]
[17/17] from: petr:krenzelok:trz:cz at: 16-Oct-2001 23:31
----- Original Message -----
From: <[holger--rebol--com]>
To: <[rebol-list--rebol--com]>
Sent: Tuesday, October 16, 2001 9:45 PM
Subject: [REBOL] Re: SHEEP vs Rebol (Pythagoras Tree)
> On Mon, Oct 15, 2001 at 07:11:32AM +1000, Allen Kamp wrote:
> > Hi Gregg,
> >
> > I think the modified script below will improve the first time
performance by
> > quite a bit
> > for you. Pre allocating the space needed makes a big diff. (1/3 the time
on
> > my machine)
>
> Yes, that's a bug (two actually) in REBOL. Will be fixed in the next
> version. The time for the original script, without preallocation, is
> down to 0.6 sec here now.
Any other nice bug-fixes, speeding things up? :-)
-pekr-
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted