Is revolution right for my project?

Dar Scott dsc at swcp.com
Mon Apr 15 14:38:01 EDT 2002


On Monday, April 15, 2002, at 12:39 PM, Geoff Canyon wrote:

> As far as I know, those are the best examples of the protocols. 
> I've seen other examples of Shao Sean's work, and the code is 
> extremely clean and well-thought-out, so I would expect the same 
> with the SMTP and POP3 clients. By the way, I wouldn't worry too 
> much about digging in to the protocols -- generally they're fairly 
> straightforward and well-documented. The RFCs are the place to 
> start.

I agree.  I'm looking at the RFCs for a project I'm working on 
today.  However, if the "advanced mail application" will have SSL 
and authentication options, those should be added after some 
experience.

Folks should look for Shao Sean's mail stacks at runrev; the other 
location mentioned by Delay does not seem to have them.

> I haven't done any benchmarks of Revolution vs. Perl, but 
> Revolution is, in general, very fast. I would expect it to hold 
> its own against Perl. Regarding Revolution vs. REALbasic I have 
> done some benchmarks. It depends on the solution being developed. 
> There are areas where REALbasic is faster. Text manipulation 
> certainly isn't one of them. For a program like this, you're 
> better off with Revolution.
>
Yes.  Benchmarks are the right way to compare speed.  I don't thing 
the comparison of compiled vs not compiled is that useful.  
Compiled code can be inefficient and might simply call a sequence 
of way-too-general functions.  Interpreted code can be optimized 
and (in the case of FORTH-like interpreters in some environments) 
very fast.

Here is how long it takes to do some simple things in Revolution on 
my 300 MHz Blue and White:
(locals: a and b are numbers, n is "0.000009", leta is "a"; us 
means microsecond(s); test is a trivial handler.)
   --put (a * b) into x  -- 6 us
   --put (empty & empty) into x -- 7 us
   --put (a & empty) into x -- 185 us (about 180 us to convert 
number to string)
   --put (a & "a") into x -- 185 us
   --put empty into x  -- 3.1 us
   --put a into x  -- 2.7 us
   --put "a" into x  -- 2.7 us
   --put a + n into x -- 40 us (includes converting string to number)
   --put n into x -- 3.1 us
   --put a + b into x  -- 6 us
   --put leta into x  -- 3.1 us
   --put leta after leta  -- 5 us
   --put leta into field "ms"  -- 8.4 ms <-- note units
   --put n into field "ms"  -- 8.4 ms <--
   --set the backgroundColor of field "ms" to yellow -- 12.5 ms <--
   --open datagram socket to "10.0.0.1:12347" -- 350 us (14 us on 
failure)
   --put "a" into x["a"] -- 16 us
   --test -- 17 us
   --send "test" -- 23 us typ
   --send "test" to me -- 26 us typ
   --send "test" to me in 200 milliseconds -- 23 us typ
   --send "test" to me in 0.2 seconds -- 26 us typ
   --select button "first" -- 95 ms <--  (hint, hint)

This is the time in the handler.  Many of these will use processor 
time out of the handler.

With speeds like these, what do I care about compiled or not?

Dar Scott








More information about the use-livecode mailing list