Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
"be consistent"
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

Naming things intelligently is hard. It requires a certain genius that frankly I think most people, like myself, lack. I spent a long time agonizing over what to call Data::Dump::Streamer. I eventually went with that name over some strong internal reservations (its too damn long for a utility modules) because a number of folks who i respect quite a bit seemed to favour it. Although a few releases later I added a "psuedo-namespace" to it called DDS, its not listed or registed but can be optionally installed when building DDS. The problem was that most of the Data:: namespace'es useful names are already taken, with a bunch of them taken by fairly poor quality modules. In fact I need to remove Data::BFDump as being obsoleted by Data::Dump::Streamer.

Also I've never understood why that name wasnt registered. Actually, while im not certain of this I have heard that of late very little registration is actually occuring. Perhaps because as you say you represent a SPOF and when you dont have the time the whole process comes to a halt.

The other one that _really_ annoys me is that the vast majority of Tie:: modules are horribly named. They should ALL be named Tie::Type(::Name)+. It seems so silly that there is no easy way to find out what types of tied array you can download for instance. I personally think Tie::Array::PackedC is a much better name than most of the Tie:: namespace. Consider:

# Well named Tie::Array Tie::Array::BoundedIndex Tie::Array::FileWriter Tie::Array::Iterable Tie::Array::Iterable::BackwardIterator Tie::Array::Iterable::ForwardIterator Tie::Array::PackedC Tie::Array::RestrictUpdates Tie::Array::Sorted Tie::Array::Test Tie::Array::Unique Tie::File Tie::Hash Tie::Hash::Abbrev Tie::Hash::Abbrev::BibRefs Tie::Hash::Abbrev::Smart Tie::Hash::Approx Tie::Hash::Array Tie::Hash::Cannabinol Tie::Hash::Constant Tie::Hash::Expire Tie::Hash::FixedKeys Tie::Hash::Indexed Tie::Hash::Interpolate Tie::Hash::Layered Tie::Hash::Longest Tie::Hash::MultiValue Tie::Hash::Rank Tie::Hash::Regex Tie::Hash::Sorted Tie::Hash::Stack Tie::Hash::Test Tie::Hash::Transactional Tie::Hash::TwoWay Tie::Scalar Tie::Scalar::Decay Tie::Scalar::Escaped Tie::Scalar::MarginOfError Tie::Scalar::OK Tie::Scalar::RestrictUpdates Tie::Scalar::RingBuffer Tie::Scalar::Sticky Tie::Scalar::Test Tie::Scalar::Timeout Tie::Scalar::Transactional # not so badly named Tie::FileHandle::Base Tie::FileHandle::Buffer Tie::FileHandle::MultiPlex Tie::Handle Tie::Handle::CSV Tie::Handle::Scalar # outright badly named. Tie::Alias Tie::Alias::Array Tie::Alias::Handle Tie::Alias::Hash Tie::AliasHash Tie::AppendHash Tie::Autotie Tie::CArray Tie::CPHash Tie::CSV_File Tie::Cache Tie::Cache::LRU Tie::Cache::LRU::Array Tie::Cache::LRU::Expires Tie::Cache::LRU::LinkedList Tie::Cache::LRU::Virtual Tie::CacheHash Tie::Cacher Tie::Cfg Tie::CharArray Tie::ClockTimer Tie::Collection Tie::Concurrent Tie::Config Tie::Counter Tie::Coupler Tie::Cvs Tie::Cycle Tie::DBI Tie::DBI::ER Tie::DB_File::SplitHash Tie::DB_FileLock Tie::DB_Lock Tie::DNS Tie::DataUUID Tie::DeepTied Tie::Depth Tie::Dict Tie::DictFile Tie::Dir Tie::DirHandle Tie::Discovery Tie::DiskUsage Tie::DxHash Tie::EncryptedHash Tie::Eudora Tie::FTP Tie::FileLRUCache Tie::Filter Tie::Filter::Array Tie::Filter::Hash Tie::Filter::Scalar Tie::FlipFlop Tie::Folded Tie::Form Tie::FormA Tie::Func Tie::Function Tie::GHash Tie::Google Tie::Gzip Tie::HTML::Entities Tie::HashDefaults Tie::HashHistory Tie::History Tie::InsertOrderHash Tie::IntegerArray Tie::IxHash Tie::IxHash::Easy Tie::LDAP Tie::LDAP::Entry Tie::LLHash Tie::Layers Tie::LazyList Tie::ListKeyedHash Tie::LogFile Tie::MAB2::Dualdb Tie::MAB2::Dualdb::Id Tie::MAB2::Dualdb::Recno Tie::MAB2::Id Tie::MAB2::Recno Tie::MAB2::RecnoViaId Tie::MLDBM Tie::MLDBM::Lock::File Tie::MLDBM::Lock::Null Tie::MLDBM::Serialise::Storable Tie::MLDBM::Store::DBI Tie::MLDBM::Store::DB_File Tie::Math Tie::Mem Tie::Memoize Tie::MmapArray Tie::Mounted Tie::Multidim Tie::NetAddr::IP Tie::NormalArray Tie::NumRange Tie::OffsetArray Tie::OneOff Tie::Parent Tie::PerFH Tie::PerfectHash Tie::Persistent Tie::Pick Tie::Proxy::Hash Tie::PureDB Tie::Quick Tie::RDBM Tie::RDBM::Cached Tie::RangeHash Tie::RefHash Tie::RegexpHash Tie::Registry Tie::RemoteVar Tie::RemoteVar::Callback Tie::RemoteVar::Constant Tie::RemoteVar::Tie Tie::Restore Tie::RevHash Tie::RevRefHash Tie::RndHash Tie::STDERR Tie::SecureHash Tie::SentientHash Tie::ShadowHash Tie::ShiftSplice Tie::Simple Tie::Simple::Array Tie::Simple::Handle Tie::Simple::Hash Tie::Simple::Scalar Tie::Simple::Util Tie::Slurp Tie::SortHash Tie::Static Tie::StrictHash Tie::SubstrHash Tie::Sysctl Tie::Syslog Tie::Table Tie::TextDir Tie::TieConstant Tie::TieDict Tie::Tk::Listbox Tie::Toggle Tie::Tools Tie::TransactHash Tie::TwoLevelHash Tie::URI::Escape Tie::UrlEncoder Tie::VecArray Tie::WarnGlobal Tie::Watch

Pretty much none of that last part of the list should have been registered IMO. I suppose its arguable that the ones _ending_ in 'Type' should be in the "not so badly named", but IMO they are just as bad. And there are probably a few in there that cant be better named because they have some special extra property, but even still I think the namespace is a just a big mess.


---
demerphq

    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi



In reply to Re: Regrettable module names by demerphq
in thread Regrettable module names by brian_d_foy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others scrutinizing the Monastery: (7)
    As of 2014-04-19 16:12 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      April first is:







      Results (483 votes), past polls