[ic] Decision tree for using Embedded PERL versus ITL

Brian J. Miller wiggins at danconia.org
Wed Jul 8 16:58:29 UTC 2009


Marty Tennison wrote:
> OK all you interchange gurus out there, riddle me this...
> 
> What criteria do you use to determine whether or not to use embedded 
> PERL or ITL?
> 
> As an extreme example: If an interchange Guru (pick one from the list) 
> was to create their "Perfect" catalog that only they would maintain and 
> hack on, would they use embedded PERL only?  ITL only? or a mixture of 
> both.  And why? Just curious. :)
> 

ITL only *for the views* (or neither, if you wanted to use a different 
view language for instance).

I've built a number of applications that use absolutely no embedded 
Perl, and use only a *very* minimal ITL set. If you take advantage of 
ActionMaps and FormActions then you can reduce the "page" to a "view 
only" and if you properly set up all context needed by that view within 
the AM/FA and store it to scratch then you can get away with using only 
minimal templating tags, such as,

[output]/[unpack]
[if/else/etc.]
[scratch/tmp]
[loop]
[query] (we actually use a custom "delayed-query" tag that allows you to 
do a list=`` like with [loop] but with pagination)
(and sub-query tags)
[include]
[cgi]
[value]

... and some variables (such as the templates/regions).

This provides a nice separation of concerns while providing for a test 
path by moving all business logic into Perl stored in libraries that can 
be tested with TAP (i.e. Test::More). Throw in an ORM that you use as 
your interface from within the AM/FA and you are two thirds of the way 
to an MVC architecture. Add a bit of wrapper goodness to your call 
structure for the AM/FAs and you have your final 1/3. To come full 
circle, if you upshift your execution to an Autoload, then swamping out 
the view language becomes even more trivial.

-- 
Brian J. Miller
End Point Corp.
http://www.endpoint.com/
brian at endpoint.com



More information about the interchange-users mailing list