Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Top Level Module Namespace Table

by Xiong (Hermit)
on Feb 04, 2010 at 10:57 UTC ( #821356=perlquestion: print w/replies, xml ) Need Help??

Xiong has asked for the wisdom of the Perl Monks concerning the following question:

Naming Perl modules is a subset of Choosing Identifiers, with all that entails. Some general guidelines exist (and yes I've read them). Authors who intend to upload to CPAN are encouraged to submit modules to for review and suggestions on naming. CPAN Search itself does, of course, give helpful hints by example. But all this does not take the place of a straightforward top level module namespace table.

I gather that most experienced Perlers see no need for this table; they say, in essence, "It's obvious what to call a new module. If it works with GD, put it under the GD:: namespace."

I've discussed this table in several places and got comments in return that suggest I'm not being clear. So, here I insert a sort of stub or dummy of exactly what I seek:

This is not a real table. Do not use. Do not copy.

In the interest of terseness, words like "module(s)", "about", "related", "manipulate", and "interface with" are usually omitted.

Namespaces marked ('*') are deprecated, or probably should be deprecated.

Acme:: Joke and humor. Not for production code. Algorithm:: Algorithms, somewhat mathematical, that don't fit into other cats. Alien:: Perl modules that install non-Perl code. Apache:: Apache web server. Astro:: Astronomy, star charts. ... Bundle:: Modules to install sets of other modules. Business:: Handling money or time, mostly within the Western, white-collar office life. Carp:: Report errors from caller's location. Catalyst:: Catalyst web application framework. CGI:: Common Gateway Interface. CLI:: * see Getopt:: Config:: Configuration files. Crypt:: Cryptography. Data:: * ... Getopt:: Command line processing. GPS:: Global Positioning System. HTML:: HyperText Markup Language generation. Image:: Images, graphic files (GIF, JPEG, PNG, etc.) Also PerlMagick/ImageMagick. IO:: Input/Output (but see also File::). ...

You get the point.

If such a table exists, please be so kind as to push me that way. If not, I'll take suggestions on how to nurture its creation. At this point, I'm starting to think that this table does not exist; and my first thought is to set up a wiki page for the purpose.

Replies are listed 'Best First'.
Re: Top Level Module Namespace Table
by Old_Gray_Bear (Bishop) on Feb 04, 2010 at 12:05 UTC
    I'd be minded to build a Perl Module out of it and load it into the CPAN:: name space. A cursory look at CPAN didn't turn up your table, but talking to the CPAN testers/maintainers (barbie and ask come immediately to mind) might also be useful.

    I Go Back to Sleep, Now.


Re: Top Level Module Namespace Table
by Anonymous Monk on Feb 04, 2010 at 12:21 UTC

        Amazing how difficult it is for me to express myself precisely on this issue! I thought an example would be explicit. Sorry. Please allow me to attempt to improve.

        I'm well acquainted with CPAN Search; it's a great tool. I'm not sure how much an ordinary dev will want to use Parse::CPAN::Modlist; but that's cool. Both of these are solutions to the problem of I want to download a module that does This. They are statements of what is. This is a common problem and an important one; but it's not the issue I'm attempting to address.

        The table I seek is not descriptive but prescriptive. This is where the markers for deprecated namespaces come in.* This table goes no further than the top level of namespaces, perhaps some well-defined second levels (e.g., CGI::Application::). It's a statement of what should be.

        Reviewing the descriptions of existing modules is indeed a way to infer prescriptions for future efforts, I admit. By the same token, one course of bricks is a guide to placing the next. Yet, if we want a wall to stand neatly, we generally use a plumb line.

        I realize that I touch upon philosophical issues here.** My feeling is only that I will be more comfortable writing modules -- even modules that may never escape from my own project -- that are named in conformance with some plan.

        I'm coming rapidly to the belief that no such table exists (I'd like to be wrong!) and that creating it is a worthwhile project. I wrote the original node in hopes that Monks might suggest a good way to get it started.



Re: Top Level Module Namespace Table
by Anonymous Monk on Mar 07, 2020 at 20:46 UTC
      Actually we just had an ontology expert at the GP(R)W

      The most memorable quote from this conference was from his talk:

      "Vocabulary is like worn underwear, nobody wants to reuse it from someone else."

      But I'll ask him if he thinks automating an ontology is really feasible in CPAN.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

      °) apparently is Perl the dominating language in German library IT systems ...

      You’re replying to a 10 year-old node from a monk who has been absent for 6 years. :P Module curation does sound like a really good idea.

        You’re replying to a 10 year-old node from a monk who has been absent for 6 years.

        I'm just jumping on the bandwagon after some other anon resurrected the node. As for the whereabouts of OP, who really knows? I've had accounts on this site that make it look like I've been absent for well over a decade. But the OP is irrelevant now that LanX has been inspired to consult an ontology expert on the feasability of fixing CPAN. I know it's feasable because I've implemented an automated ontology to browse thousands of installed modules, which I use daily, and would feel somewhat lost without.

        Module curation does sound like a really good idea.

        That's what I wanted to hear! Thank you for listening.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://821356]
Approved by marto
Front-paged by Old_Gray_Bear
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2021-10-27 09:10 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (91 votes). Check out past polls.