Re: FORTH and Hypercard

2005-10-17 Thread simplsol

Jacque,
I wonder if Scott would come to the same conclusion today.
 On modern computers messages can transverse the entire path in 
nanoseconds. While Rev. definitely feels faster than HC on all the 
computers where I've used it, HC was tolerable even on an 8 MHZ Mac 
Plus of the mid 80's - so passing messages through the entire hierarchy 
is not excessively burdensome. The ability to intercept and redefine 
handles would be worth a modest speed tradeoff today - and we are 
scheduled to have 10 GHZ computers by the end of this decade.
 Of course the debate is academic. The Rev. team has years worth of bug 
fixes to address before reworking the engine.

Paul Looney

-Original Message-
From: J. Landman Gay [EMAIL PROTECTED]
To: How to use Revolution use-revolution@lists.runrev.com
Sent: Sun, 16 Oct 2005 23:38:59 -0500
Subject: Re: FORTH and Hypercard

Stephen Barncard wrote: 
 
  I also liked a feature of Hypercard that was like forth - you could 
 redefine and intercept a lower level handler using the same name. I  
guess it was a design decision to not allow that in Transcript but 
why? 

 
 Speed. Raney wouldn't put it in, and now that I'm used to it, I agree 
with his decision (though I argued with him about it at first.) In 
order to override a built-in token with a handler of the same name, all 
commands would have to pass through the message hierarchy. As it is 
now, they go directly to the engine which is one of the reasons that 
Rev is so fast. 

 
-- Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software | http://www.hyperactivesw.com 
___ 
use-revolution mailing list 
[EMAIL PROTECTED]
 Please visit this url to subscribe, unsubscribe and manage your 
subscription preferences: 

http://lists.runrev.com/mailman/listinfo/use-revolution 

 
___

use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-17 Thread J. Landman Gay

[EMAIL PROTECTED] wrote:

Jacque,
I wonder if Scott would come to the same conclusion today.
 On modern computers messages can transverse the entire path in 
nanoseconds.


True, though knowing Scott Raney he wouldn't change it even now. 
However, the reason I changed my mind about the theoretical problem was 
that I couldn't think of any good reasons why I needed the behavior. I 
was used to it in HyperCard, of course, and it came in handy when I was 
trying to fix other people's stacks. But when I really thought about it, 
there wasn't any good reason to override command behaviors in my own 
work. It was just as easy to write a handler with its own name and call 
that.


The only time I really wanted override behavior was to fix a client 
stack that came to me with a play command on every one of about 500 
cards. The stack would play irritating sound effects on every user 
action and it was driving the client nuts. They wanted me to remove the 
sounds. In HyperCard I could have overridden the behavior with a single 
play handler at the stack level, but as it was I needed to go through 
all the cards and remove the commands from each one.


But if I was writing my own stack, I would have just created a single 
handler at the stack level to begin with, which would be easy to change. 
So, aside from fixing other people's bad code, I couldn't think of any 
reason to ask for the behavior.


--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-17 Thread simplsol

Jacque,
 I'm thinking primarily of menu commands (stored in a setup plugin) 
which work differently if used in a single-users stack or a multi-user 
database (things like new card, next card, etc.) In HC you could 
change the behavior of a script depending on whether a netWorkOn 
variable was true or not.
 Of course I can (and do) now send messages with menuPicks that are 
different in one-card client stacks and multi-card data stacks.

Change is good...change is goodchange is
Paul Looney

-Original Message-
From: J. Landman Gay [EMAIL PROTECTED]
To: How to use Revolution use-revolution@lists.runrev.com
Sent: Mon, 17 Oct 2005 12:35:14 -0500
Subject: Re: FORTH and Hypercard

[EMAIL PROTECTED] wrote: 
 Jacque, 
 I wonder if Scott would come to the same conclusion today. 
  On modern computers messages can transverse the entire path in  
nanoseconds. 

 
 True, though knowing Scott Raney he wouldn't change it even now. 
However, the reason I changed my mind about the theoretical problem was 
that I couldn't think of any good reasons why I needed the behavior. I 
was used to it in HyperCard, of course, and it came in handy when I was 
trying to fix other people's stacks. But when I really thought about 
it, there wasn't any good reason to override command behaviors in my 
own work. It was just as easy to write a handler with its own name and 
call that. 

 
 The only time I really wanted override behavior was to fix a client 
stack that came to me with a play command on every one of about 500 
cards. The stack would play irritating sound effects on every user 
action and it was driving the client nuts. They wanted me to remove the 
sounds. In HyperCard I could have overridden the behavior with a single 
play handler at the stack level, but as it was I needed to go through 
all the cards and remove the commands from each one. 

 
 But if I was writing my own stack, I would have just created a single 
handler at the stack level to begin with, which would be easy to 
change. So, aside from fixing other people's bad code, I couldn't think 
of any reason to ask for the behavior. 

 
-- Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software | http://www.hyperactivesw.com 
___ 
use-revolution mailing list 
[EMAIL PROTECTED]
 Please visit this url to subscribe, unsubscribe and manage your 
subscription preferences: 

http://lists.runrev.com/mailman/listinfo/use-revolution 

 
___

use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-17 Thread Richard Gaskin

J. Landman Gay wrote:

[EMAIL PROTECTED] wrote:


Jacque,
I wonder if Scott would come to the same conclusion today.
 On modern computers messages can transverse the entire path in 
nanoseconds.
 
True, though knowing Scott Raney he wouldn't change it even now. 
However, the reason I changed my mind about the theoretical problem was 
that I couldn't think of any good reasons why I needed the behavior.


Yeah, I got all up in Scott's face over that once, insisting it was 
absolutely necessary to support.  He asked me for a test case where no 
alternative was available to accomplish a given goal, and darnit I never 
did come up with one.


:)

--
 Richard Gaskin
 Managing Editor, revJournal
 ___
 Rev tips, tutorials and more: http://www.revJournal.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-17 Thread Mark Wieder
Richard-

Monday, October 17, 2005, 2:37:20 PM, you wrote:

 Yeah, I got all up in Scott's face over that once, insisting it was
 absolutely necessary to support.  He asked me for a test case where no
 alternative was available to accomplish a given goal, and darnit I never
 did come up with one.

There are cases where I'd really *like* to have the facility, but none
that I can think of that I can't work around.

-- 
-Mark Wieder
 [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-17 Thread Mark Wieder
Jacque-

Monday, October 17, 2005, 10:35:14 AM, you wrote:

 True, though knowing Scott Raney he wouldn't change it even now.

There shouldn't really be much of a speed difference - the way this is
usually handled is you create a hash table with the overloaded
functions. If there's a match in the hash table then you process it
locally, otherwise you move right on to the builtins. So the only hit
you take is in a quick lookup in the hash table. It's a direct lookup,
it's either there or it isn't, and it's compiled and optimized. Should
actually take less overhead than a scripted function call.

I sense an inherent incompatibility between the folks who want more
speed out of the basic engine calls (arrays and such) and the folks
who want the flexibility of overloading the builtin functions. I fall
more in the latter category, but not enough to want things to change
(and possibly break existing behavior).

-- 
-Mark Wieder
 [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-17 Thread J. Landman Gay

Mark Wieder wrote:

Jacque-

Monday, October 17, 2005, 10:35:14 AM, you wrote:



True, though knowing Scott Raney he wouldn't change it even now.



There shouldn't really be much of a speed difference - the way this is
usually handled is you create a hash table with the overloaded
functions. If there's a match in the hash table then you process it
locally, otherwise you move right on to the builtins. So the only hit
you take is in a quick lookup in the hash table. It's a direct lookup,
it's either there or it isn't, and it's compiled and optimized. Should
actually take less overhead than a scripted function call.

I sense an inherent incompatibility between the folks who want more
speed out of the basic engine calls (arrays and such) and the folks
who want the flexibility of overloading the builtin functions. I fall
more in the latter category, but not enough to want things to change
(and possibly break existing behavior).



I can't think of a reason to change it either, but there's no law 
against putting in a Bugzilla feature request if someone really wants it.


--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-16 Thread Stephen Barncard
In 1980 I worked with Kenny Jones (now at Digital Domain) at a place 
called New World Pictures. We worked on a machine called the Elicon, 
a camera control robot that was programmed in FORTH, and made movie 
special effects for Roger Corman and others.


It was a beautiful piece of work - dc servo motors driven from a huge 
interface panel and a PDP-11.


I liked FORTH a lot. I had an implementation of FORTH for the Apple 
][ that screamed.  UI was a command line.


I also liked a feature of Hypercard that was like forth - you could 
redefine and intercept a lower level handler using the same name. I 
guess it was a design decision to not allow that in Transcript 
but why?


sqb



Mark,

One of the great things about Forth was the overhead of just a few 
machine language instructions to execute a high level function 
call.  
Transcript seems to require a trip around the world to jump next 
door.  For GUI speed stuff, it would not be a problem, but for my 
array crunching stuff, I am stuck writing everything in one handler 
to keep the speed up.  The convenience of having an environment like 
that would be very tempting to use for whatever could stand the 
overhead --and that might be quit a lot of applications.


Dennis


--
stephen barncard
s a n  f r a n c i s c o
- - -  - - - - - - - - -
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-16 Thread Mark Wieder
Stephen-

Sunday, October 16, 2005, 6:47:15 PM, you wrote:

 I also liked a feature of Hypercard that was like forth - you could
 redefine and intercept a lower level handler using the same name. I 
 guess it was a design decision to not allow that in Transcript 
 but why?

Yes, that's the keyword overloading feature I'm wishing we had...

not that I would wish Forth syntax on Transcript, but its
extensibility is the stuff dreams are made of.

-- 
-Mark Wieder
 [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-16 Thread Geoff Canyon


On Oct 16, 2005, at 6:47 PM, Stephen Barncard wrote:

I also liked a feature of Hypercard that was like forth - you could  
redefine and intercept a lower level handler using the same name. I  
guess it was a design decision to not allow that in Transcript  
but why?




I believe it's because of the overhead involved. Calling a user- 
defined routine takes extra time because of the need to track down  
which code should be executed -- the one in the object, the one in  
the group, the one in the card, the one in any of the stacks in use,  
the frontscripts, etc. Calling a native routine has no such overhead.  
If native routines could be overridden, they would all have the  
overhead of user routines, which would slow them down.


Bear in mind I've never touched the engine's source code, and this is  
just a vague memory from a conversation with Scott or Tuviah.


gc
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: FORTH and Hypercard

2005-10-16 Thread J. Landman Gay

Stephen Barncard wrote:

I also liked a feature of Hypercard that was like forth - you could 
redefine and intercept a lower level handler using the same name. I 
guess it was a design decision to not allow that in Transcript but why?


Speed. Raney wouldn't put it in, and now that I'm used to it, I agree 
with his decision (though I argued with him about it at first.) In order 
to override a built-in token with a handler of the same name, all 
commands would have to pass through the message hierarchy. As it is now, 
they go directly to the engine which is one of the reasons that Rev is 
so fast.


--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution