<?xml version="1.0" encoding="windows-1252"?>
<node id="821563" title="Re^3: Top Level Module Namespace Table" created="2010-02-05 09:14:16" updated="2010-02-05 09:14:16">
<type id="11">
note</type>
<author id="704000">
Xiong</author>
<data>
<field name="doctext">
&lt;p&gt;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. 
&lt;/p&gt;
&lt;p&gt;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 &lt;c&gt;Parse::CPAN::Modlist&lt;/c&gt;; but that's cool. Both of these are solutions to the problem of &lt;i&gt;I want to download a module that does This.&lt;/i&gt; They are statements of &lt;b&gt;what is&lt;/b&gt;. This is a common problem and an important one; but it's not the issue I'm attempting to address. 
&lt;/p&gt;
&lt;p&gt;The table I &lt;i&gt;seek&lt;/i&gt; is not descriptive but &lt;b&gt;prescriptive&lt;/b&gt;. 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., &lt;c&gt;CGI::Application::&lt;/c&gt;). It's a statement of &lt;b&gt;what should be&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;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. 
&lt;/p&gt;
&lt;p&gt;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. 
&lt;/p&gt;
&lt;p&gt;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. 
&lt;/p&gt;
&lt;p&gt;*&lt;readmore title="Deprecated Namespaces"&gt; I don't personally &lt;i&gt;assert&lt;/i&gt; that all modules currently under &lt;c&gt;CLI::&lt;/c&gt; should have fallen under &lt;c&gt;Getopt::&lt;/c&gt; or that all CLI-related modules should be created under the latter; but it's the kind of assertion that someone with more experience ought to be able to make. 
&lt;/p&gt;
&lt;p&gt;I do assert that no module should be created under the &lt;c&gt;Data::&lt;/c&gt; namespace. I'm sure vigorous arguments can be mounted in support of it but I side with [petdance] that &lt;b&gt;data&lt;/b&gt; is the [link://http://www.oreillynet.com/onlamp/blog/2004/03/the_worlds_two_worst_variable.html|world's worst identifier]. All modules manipulate data.
&lt;/p&gt;
&lt;/readmore&gt;

&lt;p&gt;**&lt;readmore title="Philosophical Discursion"&gt; &lt;b&gt;Description vs Prescription&lt;/b&gt; is an old war in pedagogy, particularly among teachers of [wp://Disputes in English grammar|English grammar]. At one time, prescriptive grammar was the unchallenged model, leading to textbooks insisting on awkward constructions and forbidding much common usage. The descriptive reaction reached its nadir with [wp://Oakland Ebonics controversy|Ebonics]. 
&lt;/p&gt;
&lt;p&gt;I taught English as a Foreign Language for some time. My personal bias as an instructor is strongly descriptive; but in my own writing I try mostly to follow the ancient prescriptions. I do employ a few neologisms and nonstandard punctuation schemes. For instance, the rule is that quotes enclose trailing punctuation; I find this "intolerable". 
&lt;/p&gt;
&lt;p&gt;My intention here is to balance, not overturn, the excellent descriptions provided by CPAN authors of existing work. I promise never to beat anyone over the head because his or her module naming doesn't conform to some standard; I don't have the stature. There is always the practical point that any module destined for CPAN may be submitted directly for review, at which time Wiser Heads can suggest the right name for it. (I do not suggest bypassing this step.)
&lt;/p&gt;
&lt;p&gt;The middle ground is often best. I would suggest that a writer of Perl, being an engineer, might be better served by prescription than the author of an English novel. Some will say both are artists and I don't disagree.
&lt;/p&gt;
&lt;/readmore&gt;

</field>
<field name="root_node">
821356</field>
<field name="parent_node">
821370</field>
</data>
</node>
