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

  

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to