of course JSP templates are not interpreted character by character
but *just* converted to servlets, javac'ed and finally executed

On Fri, Apr 29, 2011 at 00:03, Pierce T. Wetter III
<pie...@twinforces.com> wrote:
>
> I think we're saying the same thing in different ways.
>
> "Tapestry compiles the template into a program to generate the content" is a 
> shorter way of saying what you just said. As opposed to JSP which interprets 
> the template character by character.
>
> Other systems (WebObjects is one) convert templates into data structures, but 
> I think Tapestry is unique in the way that it builds property accessors into 
> those structures. To me that smacks much more of compilation than 
> interpretation.
>
> Pierce
>
>> I think the biggest insight I attempt to inject into people is the
>> component template:  It's easy to think about it the way a JSP
>> operates: working character-by-character.  But for Tapestry, the
>> template is actually a blueprint for building a structure in memory,
>> and that structure is a program for generating a server-side DOM, and
>> only at the end is that DOM emitted character-by-character.
>>
>> "The string is a stark data structure and everywhere it is passed
>> there is much duplication of process. It is a perfect vehicle for
>> hiding information.
>> -- Alan Perlis
>>
>> I interpret this as "strings are bad", they hide information, or make
>> it more difficult to manipulate. Treating the template as a structure
>> of objects lets Tapestry do things implicitly that are complex in
>> other environments.
>>
>>
>> On Thu, Apr 28, 2011 at 9:23 AM, Pierce T. Wetter III
>> <pie...@twinforces.com> wrote:
>>>
>>>  I'm job hunting right now which means I sometimes have to explain why I
>>> chose Tapestry for a web application platform. (
>>> http://www.linkedin.com/in/pwetter if your company needs a new Director of
>>> Web Development ).
>>>  I had an insight yesterday that I thought I would share. Tapestry is a
>>> compiler.
>>> That is, Tapestry considers your .tml files and your .java files as just a
>>> starting point. From that starting point it builds data structures, new
>>> classes, bytecodes and a host of other cool stuff behind the scenes. That's
>>> one of the reasons its so fast and efficient as an application framework
>>> while running. Unlike a lot of other frameworks that are essentially running
>>> as interpreters, Tapestry runs as compiled code.
>>>   The key insight here is something I've known about T5 for a while: Your
>>> .java files and .tml files are just the starting point; they're essentially
>>> declarations that are re-interpreted by T5 to produce a lot of stuff behind
>>> the scenes. You may think that you have Component.java, which declares a
>>> class called Component with one or 2 methods, but by the time Tapestry is
>>> finished with it numerous additional methods and instance variables have
>>> been added, certain things in your class have been rewired, all kinds of
>>> cool stuff. Just as a few lines of declaration code imply a whole bunch of
>>> work by the java compiler behind the scenes, so does a few lines of Tapestry
>>> code imply a whole bunch of work by the "Tapestry compiler".
>>>    I hope this insight helps people.
>>>  Pierce
>>>
>>
>>
>>
>> --
>> Howard M. Lewis Ship
>>
>> Creator of Apache Tapestry
>>
>> The source for Tapestry training, mentoring and support. Contact me to
>> learn how I can get you up and productive in Tapestry fast!
>>
>> (971) 678-5210
>> http://howardlewisship.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>
>



-- 
Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
Apache Tapestry PMC / http://chesstu.be owner
Open Source / JEE Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to