H.Merijn Brand wrote:
demerphq wrote:
Also, there is a tension in the community relating to this issue that
i dont think we will see any resolution of soon.

Many module authors set a design objective of making their modules
"dependent only on core modules". This is a comment that I see on a regular basis.

Yep, that's ridiculous. I used to see these questions a lot back when I was answering mails on the beginner groups. People wanting to do things that have already been done and widely tested, but everyone wants to write their own in order to "reduce dependencies".

Reinventing the wheel is a good learning exercise, but after that it is a waste of time. At the same time they don't want to require their users to download 50 modules to use their application, so reducing dependencies is good to some extent. There is no clear line though, about how many dependencies are too many and which are trivial. Different applications of various sizes and complexities will have different boundaries. Authors have to balance convenience to themselves and to their users, leaning more toward users of course.

And then still people make more of the same. Take Getopt::Long. A perfect and
very functional module. Full of features, matured, and actively maintained.
Now go look at CPAN, and see how many people either do not like it or find
other reasons to write their own.

This underlying behavior is one of my biggest pet peeves with the perl community. Too many people want to go out and write their own version of modules instead of contributing to the work others began. Diversity is a good thing, but to me, it's embarrassing that the perl community can't work together to provide modules. Instead everyone has to reinvent the same thing over and over, staking their own claim. How big would the pride of the perl community, CPAN, be if all the redundancy were removed? (Okay, so it'd still be big, but not as big.)

And, yes, I'm a contributing developer of Module::Build which is an alternative to an existing module with the same function, MakeMaker. So I do believe that sometimes it is valuable to re-evaluate existing modules and try to improve them or replace them when necessary. All things in moderation. With due deliberation.

On the subject of the modules in core, again despite being a developer of module that was just placed in core, I'm a hardcore minimalist. *I* believe that Perl should have only enough to install and manage modules and to work as evenly as possible across all architectures it supports. Then maybe have extra bundles such as a developer bundle with debugging and profiling related modules (not needed by people who just want to run perl applications); a basic bundle with low level authoring stuff like basic data structures & algorithms: sets, ties, etc (not useful for all applications, but fundamental enough to be semi-standardized); a network/internet bundle, etc. Things like File handling and IPC should probably remain in core as they contribute to cross-platform development.

Randy.

Reply via email to