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