Ovidiu Predescu wrote:

>On Wed, 10 Apr 2002 11:30:11 -0800, Rob Jellinghaus <[EMAIL PROTECTED]> wrote:
>
>>At 10:29 AM 4/10/2002 -0700, Ovidiu Predescu wrote:
>>
>>>Rhino has two ways of running JavaScript scripts. The first one is
>>>translating the script in a structure of internal objects, which are
>>>then "executed". The second approach, a lot faster that the first one,
>>>translates the JavaScript scripts in internal Java classes, which are
>>>compiled to bytecodes on-the-fly and executed as normal Java code.
>>>
>>>Adding support for continuations in the compiler mode is not possible,
>>>due to the impossibility to manipulate the Java stack frame.
>>>
>>This places a lower bound on the speed of any continuation-based Cocoon web 
>>application.
>>
>>I would steer clear of using a non-compilable technology in any 
>>sufficiently large-scale web site.  Hence, this ower bound on the flow 
>>engine's speed may imply an upper bound on the scale of Cocoon deployments 
>>using the continuation-based flow engine.
>>
>>It is also curious how this performance constraint is so at odds with 
>>Cocoon's general predilection to compile everything whenever possible, for 
>>maximum throughput.
>>
>>It pains me to say all this, as I think continuations are elegant as hell 
>>and Ovidiu's work seems quite impressive, but I do not believe that 
>>continuations will become efficiently implementable in the JVM (or in 
>>JVM-based languages) anytime in the next few years.  Hence, I do not think 
>>that continuations should become the main focus of Cocoon's flow support, 
>>if Cocoon has scalability as a primary design goal.
>>
>
>I don't see why we should stay away from non-compilable technology.
>
>Perl, Python, PHP and lots of other interpreted languages out there
>are successfully used to drive very large Web sites. None of them
>compiles anything to C, they all interpret the scripts that describe
>the Web application.
>
>Some of these Web applications have tens of thousands of lines of
>code, all interpreted. I haven't noticed any problem accessing sites
>like Slashdot (Perl), Yahoo Maps! (Python), Yahoo Store! (Common
>Lisp), and many others.
>
>We don't need to have continuations in the JVM to make use of
>them. Rhino JavaScript is quite fast as an interpreter even in
>interpreted mode. And remember, we use it only to drive the flow of
>pages, not to implement the whole application in it (although it is
>definitely possible to do it). If used carefully the continuations
>based approach to flow control should not add any noticeable overhead
>to an application.
>

Agree. Rhino shouldn't be used to write the whole app, but only as a 
continuation-enabled glue between the various business logic components 
written in Java.

Also (Ovidiu, tell me if I'm wrong), Java-written business logic can 
return objects that are held in flow script variables, and thus benefit 
from the continuations mechanism. So both worlds are complementary : the 
intrepreted flow script provides continuation support to compiled Java 
business logic.

Sylvain

-- 
Sylvain Wallez
  Anyware Technologies                  Apache Cocoon
  http://www.anyware-tech.com           mailto:[EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to