in reply to Re^3: Nirvana through the templating yin yang (TT2 /
in thread Nirvana through the templating yin yang (TT2 /

The issue is behavioral, not logical and technical. The table depicts more of what tends to happen than what ought to be.

When I said "PHP," I meant "PHP-like" way of coding style, i.e. writing everything mostly in one file, which applies to ASP, Perl-CGI, etc. I meant more of "style" than "technology." But "PHP" is shortest to write, lazy me.

When you do a webpage in PHP (or whatever technology/style akin to it), you can do everything in one file (call it the "one-file" style). It takes minimal design and planning effort.

When you do templating, you need at least two files (logically, not if physically), a template and a script.

If you use XML as templating technology, you need (logically or physically) as many as four files--XML, XSL/XPath, {$insert_ur_fave_lang} script, and DTD/Schema. That needs a lot of thinking, even though it might not actually physically take you that much time.

For a lazy or inexperienced person, or for a person who has been torn by constantly scraping and redoing his work because of incessant whimisical change requests, would he tend to do it in one file or four files? "Why should I constantly make changes in four places rather than one?"

If everyone does what's "logical," I didn't have to explain to someone why he shouldn't embed a SQL statement directly into ASP, but rather write a stored procedure and call it from ASP instead. Or, to a manager, why JSP doesn't make much different from ASP--it's the people (programmers and others) who make the difference (as some people, especially those who don't "implement" anything, tend to believe technology by itself does magic, and implicitly feel it can compensate for faulty business ideas and relieve them from thoughtful planning and "well-defined" spec).

The key phrase is "as long as the interface is well defined," as you said it. When sometimes you have account managers continuously walk up to a programmer directly requesting making changes at once, without notifying the project manager, everything is "on-the-fly" rather than "well-defined."

That's why you can't usefully implement templating without descent (intellectual and procedural) support from programmers as well as non-programmers.

The world tends to go the natural human behavioral way rather than the logical programmers' way. Behavioral change is hard. In my experience, people issues far exceeds technical problems in any project, for people don't always do the "logical" things.

In reality, within a timeframe, it's often only feasible for me to compromise the technology and the procedures in order to accommodate the prevailing human habits at the time.