http://www.perlmonks.org?node_id=443615


in reply to Good code or good templates (Maypole)

As the author emeritus of Maypole (Simon Cozens) has said one more than one occasion the templates that are packaged with Maypole are meant for example purposes only and you're not actually supposed to use them (I didn't).

I've been using Maypole for some time now and settled on it after looking at several other web frameworks. Maypole won out for several reasons:

It doesn't try to be everything to everyone. I have built several web applications of varying complexity with different technologies (Siebel, LAM/Perl/PHP, etc.) and have discovered that framework-enabled functionality often gets in the way of properly solving the problems at hand. No number framework developers can forsee and appropriately address all of the problems you're likely to encounter when developing large scale web applications and thus their implementations are often likely to be inaccurate or misused at best. Small frameworks are often best for building small-to-medium sized applications and should seek to provide a basis for implementing a solution but not seek to be the solution.

Secondly, the usefulness of a framework is inversely proportional the level of abstraction. Abstraction is nice but the harder you try to be everything to everyone (see above) the quicker you'll discover that your framework accomplishes little particularly well, with the exception of providing more avenues for half-assed extensions. The phrase "Jack of all trades, master of none" applies particularly well here. Yes, there are several components of Maypole than can be replaced but it works best as it is (i.e. before Simon gave control of it to the hordes).

It is my view that although nicely formatted and well thought out templates are nice, they cannot replace poorly thought-out design. As the templates provided for Maypole are meant to be throw-away examples, I think your thesis as it applies to Maypole is moot and probably for other frameworks as well (although I'm willing to admit that I'm wrong about this assumption). After all, what good is your framework if you have to re-write half of it to suit your needs.