Chris Josephes <[EMAIL PROTECTED]> wrote:

> On 14 Oct 2002, William R Ward wrote:
>
>> You overlooked HTML::Template, which I think would meet all of your
>> needs.  It is unfortunately buried under HTML:: but it is useful for
>> all kinds of templating tasks.
>
> HTML::Template doesn't look like it's expandable.  The FAQ mentions
> the possibility of adding new commands to the language, but it looks
> like that involves rewrites of the source code itself.

HTML::Template does support plug-in (roll your own) input filters, has a JIT
compiler and advanced caching capabilities, has been ported to Java
(HTML.Template.java), and there've been recent announcements about a C++
port "coming soon".  most of this add-on work is not by the original
author/maintainer.  it's contributed by users.

my point is not that HTML::Template is any better or worse than any other
template system, but rather that it is as useful/successful as it is because
it has a community of users that use it, rigorously and constantly test,
re-test and report bugs that crop up in it and, of course, expand and extend
it.

>> Anyway, rather than creating a new syntax, why not submit patches to
>> some existing templating system to add the features you want?
>>
>
> Two concerns I would have are author permission, and support.
>
> Let's say I want to extend Text::SimpleText with the features I want,
> and then upload it back to CPAN...

only the original author/ current maintainer can upload new versions of an
existing CPAN module.

> ...The original author of
> Text::SimpleText may have concerns regarding his or her input, and
> how this code splits affects any future work they may have wanted to
> do on Text::SimpleText.
>
> Now we run the risk of having two different systems with the same
> namespace Text::SimpleText.  That can lead to problems down the road
> with other modules that require Text::SimpleText, which can lead to
> installation checks during module or software install that no longer
> work correctly.

which is exactly why you'd not want to work in a vacuum.  rather than
"running the risk" of having two versions of the same system (the original
and your fork of the code), starting your own from scratch *ensures* there
will be at least one more incompatible syntax.

the way to avoid your two concerns (permissions and support) is to
participate in the community, join the mailing list of the system you like
best, and would want to contribute to, listen a while, and suggest your
changes.  most likely they will be welcomed if they come with specific
patches to show the community and maintainers what benefit they provide.
this is pretty much the way open source works: you get permission if the
community wants your features, the maintainers accept your patches,
incorporate your changes, and the community continues to support the
package, with your changes.

but, having said all that, i have rolled my own template system too :-)
i've not released it because HTML::Template does (almost) everything i
needed it for and now, a year or three later, HTML::Template is much more
featureful, fully debugged and well supported :-)

-dave


Reply via email to