Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

comment on

( [id://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":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-03-29 05:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found