|Think about Loose Coupling|
Re: Advocating Perl...by Arguile (Hermit)
|on Feb 09, 2002 at 16:54 UTC||Need Help??|
"mod_perl, for all its strengths, is not an application server. It's a solid base for one but it doesn't provide the toolkit people have in mind when they think about an application server. So every time someone says, "Where are the application servers for Perl?" and we respond with "mod_perl," we sell ourselves short. Someone doing a little investigation will think we don't know what we're talking about and just move on, missing a whole body of great work."
This arguement came up on mod_perl a while ago. It was generally agreed that choice is good, but sometimes the amount of choice can be overwhelming. J2EE hit on something when they had a common mail API, a common database interface, a common foo. By limiting choice and standardising a large number of components they took away a lot of the initial research as well as aiding portability.
Limitation in this way isn't really the 'Perl way' but it became obvious a consolidated front needed to be presented. And this could be done by presenting reasonable 'defaults' that worked well together while not tying a developer into any "One True Way". To this end P5EE was born. (And as a sign of how hard things might be to come, the name was even hotly debated over many tens of posts ;)
Quoted from P5EE (stated much better than above):
The Perl 5 Enterprise Environment is the set of Perl Modules which can be used to build Enterprise Systems and the set of P5EE guidelines to be followed.
PhilosophyPerl Modules on CPAN are flexible, supporting many different system designs.
CPAN supports many redundant modules.
In fact, the slogan in Perl is "there's more than one way to do it" (TMTOWTDI).
Developing an Enterprise System is different.
It requires many consistent design choices.
It requires the successful integration of numerous perl modules.
The slogan in P5EE should be "this is one great way to do it".
The fact is that there are many great ways to do it.
As a result, the P5EE project supports both the P5EE:: and P5EEx:: (P5EE experimental) module namespaces.
Multiple prototypical and experimental versions of "one great way to do Enterprise development in Perl" are expressed through the P5EEx namespace.
The goal, however, is to reach a single expression of "one great way to do it".
The P5EE namespace represents the consensus of the best great way.