compileIt for revolution?

Dennis Brown see3d at writeme.com
Wed Jun 22 09:40:05 EDT 2005


Dan,

I also would like to speed up array processing.  It kills me that my  
friend won't move from VB to Rev because when I write the same array  
processing problem that he uses, VB runs 10+ times faster than Rev.   
I also have had to jump through hoops trying to figure out ways to  
make my array processing go faster --it usually requires taking a  
simple script and making it 5 times as complicated as the way you  
would do it in VB or RB or any other ordinary language.  It is not  
just for the type of math problems that I am dealing with.  As visual  
effects become more important, being able to quickly process numeric  
arrays like a pixel image array becomes important.

However, I don't think compiling scripts is the answer.  I love  
having the interpreted environment for interactive debug and  
experimentation.  The UI is where all the code and debugging time is  
spent.  I don't want to trade that in for anything.  Rev is all about  
UI, but weak on array speed.   The language as it is defined would  
hardly be faster as a compiled version because of the type-less and  
stringy nature of the variables.  Compiled languages get their  
effeciency by the programmer telling them up front the data type and  
therefore the correspondence to specific machine code operators.   
There is no guessing or mixing of types.  The processing of numeric  
(or fixed length strings) hardly needs any checks at runtime.

What I advocate is a cross platform runtime package that is a pure  
fixed type, fixed operator, math orientated array language.  It can  
be PCode or threaded with very low overhead.  Languages with no UI  
considerations are very easy to create and code for a machine code  
programmer. I would like to see the basic operators and control  
structures to work on regular arrays of n dimensions.  I am not  
actually referring to "array" operators, just the ability to apply  
ordinary operators to one addressable array element at a time with  
efficient looping structures.  That should result in an order of  
magnitude increase in speed for the stuff that bogs Rev down, and  
open up Rev as a universal development tool.

The key is to have an efficient and elegant way for Rev to interface  
with such a package.   It needs to be able to pass the "program code"  
and pass array elements, rows, columns, and whole arrays to the  
coprocessor (really it just needs to be able to pass pointers to the  
array memory blocks).

As long as Rev has this Achilles heel, it will preclude it's use as a  
"real" programming language in the minds of many.

I did make a BZ enhancement request, but I think it could benefit  
from a discussion on this list.

Dennis


On Jun 22, 2005, at 1:27 AM, Dan Shafer wrote:

> Xavier....
>
> I guess we'll just have to agree to disagree about this.
>
> How in the world would you expect a compiled script or handler --  
> if such a thing were possible -- to then be smoothly integrated  
> into a stand-alone app?
>
> We needed CompileIt! in HyperCard *far* less for performance than  
> for code protection and the ability to deliver stuff that didn't  
> require the player to be around. Neither of those is an issue today  
> in Revolution.
>
> As for performance, tuning for such situations has produced  
> staggering results. I was blown away in Monterey last weekend to  
> watch a dynamically populated menu that was pulling its contents  
> from 100 text files appear in under a second. I've never heard much  
> here in the way of complaints about slow programs written in Rev.
>
> Dan
>
> On Jun 21, 2005, at 9:31 PM, MisterX wrote:
>
>
>> Dan,
>>
>> Creating apps with rev has NOTHING to do with compileIt.
>>
>> I really would like to speed up some scripts to manipulate
>> arrays (where rev has some serious limitations) and the best
>> possible way to do that would be to have something like
>> CompileIt.
>>



More information about the use-livecode mailing list