Re: "Vanity Tagging" on CPAN?
by borisz (Canon) on Sep 16, 2004 at 10:00 UTC
|
Modules with persons name are just noise on CPAN. A name means nothing.
It is a missuse of the namespace.
BUU::IRC
BORIS::IRC
...
For your bot, what about
Net::IRC::Bot
Net::IRC::Generic
Net::IRC::Base
Net::IRCBase
But please find a name inside CPAN's namespace and _not_ in the root.
| [reply] [Watch: Dir/Any] [d/l] [select] |
Re: "Vanity Tagging" on CPAN?
by Pragma (Scribe) on Sep 16, 2004 at 10:47 UTC
|
Before you worry about what name you would like, have you given serious thought to what features are missing from existing CPAN modules that you would like to include in yours? Have you considered extending (subclassing or patching) existing modules, instead of starting anew and reinventing this wheel? | [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by rjbs (Pilgrim) on Sep 16, 2004 at 11:17 UTC
|
When I see BUU::IRC, I think, "I wonder what BUU is. Why do people want to connect it to IRC?"
Sure, as someone said, you're creating some kind of connection between you and your module. Very few people will understand that, though. Even if it was abundantly clear, it would be redundant. Your modules are already stored under your name, and with your name plastered all over them. No one is going to say, "Finally! I can be reminded of the author's name every time I C<use> his code!"
Find something descriptive. How does your code improve on Net::IRC? Is it faster (Net::IRC::Fast)? Is it easier to use (Net::IRC::Simple)? Is it just an alternate take (Net::IRC::Neo).
Your code deals with IRC. IRC is a network protocol. Your code belongs under Net::IRC.
| [reply] [Watch: Dir/Any] |
|
Find something descriptive. How does your code improve on Net::IRC? Is it faster (Net::IRC::Fast)? Is it easier to use (Net::IRC::Simple)? Is it just an alternate take (Net::IRC::Neo).
My problem with that suggestion is I think nicely stated by sintadil:
Considering the flakiness and oft brokenness of Net::IRC (and the very admission of its author of these points), I'd completely avoid anything containing that. People are weird creatures, and they often associate bad things with an object just by appearances. If someone feels (like I do) that Net::IRC is broken, and sees "Net::IRC" in your module name(s), that someone will probably think that your module is broken in the same way(s) -- and thus they'll avoid it. It's regrettable, but it is human nature.
Since, hypothetically, my module has nothing at all to do with Net::IRC in any shape or fashion, other than filling some of the same niche, I really don't want to be associated with it in the manner that Net::IRC::<anything> would give me. Also as rcaputo points out:
POE components tend to have "POE" in their names because they don't live separate lives from that framework. The implication is "You need POE to use this." In that vein, BUU::IRC implies that some BUU module is necessary to use it.
So Net::IRC::<anything> seems to imply that some Net::IRC module is necessary to use it. Which wouldn't be true. I guess my best solution is to simple find a new name below net, Net::FrameworkIRC or something similiar, but those are the reasons I don't want to be under Net::IRC.
| [reply] [Watch: Dir/Any] |
|
If you feel Net::IRC::* is not appropriate for your module because yours is more of a framework, how about taking a page from Simon Cozens' book and create an altogether different moniker that while abstract, would be descriptive of the framework as a whole? For example, "Maypole" is his name for his application framework -- see this weblog nicely outlining the reasoning behind the naming: http://www.oreillynet.com/pub/wlg/4451
Update: revised to better indicate that I meant an abstract name.
| [reply] [Watch: Dir/Any] |
|
|
|
|
I have to say I've never felt the need to connect to IRC, but ... if the module is broken, everyone knows it's broken, even the author knows its broken ... why doesn't anyone fix it? And if the interface just feels wrong (too lowlevel or something) then Net::IRC::Simple sounds like a good match. Even if behind the scenes the old Net::IRC module is scraped and replaced by a wrapper that calls your Net::IRC::Simple.
You seem to be overly worried of getting associated with Net::IRC, let me tell you something, not once, but quite a few times did I have to explain to people that Win32::Daemon::Simple is not a module that'd stand on its own, but a wrapper over Win32::Daemon. That they can't have Win32::Daemon::Simple without installing Win32::Daemon first. Looks like they did not think Win32::Daemon::Simple is a subclass.
Jenda
Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.
-- Rick Osborne
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by hv (Prior) on Sep 16, 2004 at 10:15 UTC
|
I agree with others that your name should not be part of the module's name. Note however that for Perl6, the author's identity will form part of the effective 'version' of the module, so it will be possible for lots of people to release modules called 'Net::IRC', and for the program to distinguish which one it wants to use.
Hugo
| [reply] [Watch: Dir/Any] |
|
The problem being that a release version of Perl 6 isn't out yet...
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by EdwardG (Vicar) on Sep 16, 2004 at 10:15 UTC
|
'BUU' does mean something; it means you are associated with the module, even though it means little or nothing in terms of what the module actually does.
I would suggest you reverse your idea and go with (if you are going to go at all):
Net::IRC::BUU
Which I would interpret as "BUU's version of Net::IRC.
| [reply] [Watch: Dir/Any] [d/l] |
|
That sounds like a reasonable suggestion, my only problem with it is that it seems to imply that My module is either a subclass or part of or some how affiliated with Net::IRC, when in reality they have nothing at all in common (except for possibly connecting to IRC).
| [reply] [Watch: Dir/Any] |
|
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by graff (Chancellor) on Sep 16, 2004 at 12:55 UTC
|
I'd like to second Pragma's point, and add a few thoughts to that:
If your hypothetical module is going to be fundamentally different from Net::IRC -- meaning that people would use your module as a replacement rather than as an extension for Net::IRC -- maybe you'd want to think about identifying some feature that might stand out as unique to your version, and find some way to boil that down so it fits into the module name -- e.g. Net::LogIRC, if you worked hard on logging, or Net::UniIRC, if a main goal is to include support for typing/displaying unicode text. At worst, you could try "Net::YAIRC" (before someone else uses this name). But using "BUU" in any way would be a mistake, I think.
On the other hand, if your creative impulse can be channeled into building a module that extends Net::IRC, then your module name is easier to make up: Net::IRC::Extrafeature (whatever the primary "Extrafeature" may be). Doing it this way has some advantages for all concerned:
- The module parts that have to do with "infrastructure" (protocols, security, basic efficiency) will receive more effective peer review, and will tend to be maintained and upgraded more reliably, if they exist in a single "reference" module that everyone starts with (Net::IRC).
- The parts that you're adding to scratch your particular itch will be easier to write and maintain, because you don't have to worry about the infrastructure.
- Things will appear (and actually be) easier, more meaningful and more sensible for CPAN users. If I needed to write my own special IRC app, I'd prefer looking for a single "base" module and browsing through extensions for it, rather than having to compare a bunch of different base modules.
| [reply] [Watch: Dir/Any] |
|
On the other hand, if your creative impulse can be channeled into building a module that extends Net::IRC, then your module name is easier to make up: Net::IRC::Extrafeature (whatever the primary "Extrafeature" may be). Doing it this way has some advantages for all concerned:
This would be nice....in a perfect world. The problem is that some modules need completely or mostly complete rewrites. I have a similar problem right now with Net::MSN, i've worked with a community and we have spent a lot of time rebuilding the whole interface. It works, but where do we put it? It's not a just a patch to the original Net::MSN, its a completely different module with the same goal. I doubt there is a perfect answer, but "build off the current one" often isn't an option. Any best of luck BUU and if you have stroke of genious let us know :) Ohh for the record I don't think adding your name to the module is a solution, it just confuses the name space on cpan.
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by gjb (Vicar) on Sep 16, 2004 at 09:46 UTC
|
The naming conventions of Java packages are along these lines, although this is mostly for organizations (e.g. org.w3c.dom.*).
A reasonable approach to avoid confusion might be to prefix the name to the category name, so for your example that might be 'BUU::Net::IRC'. I think this would limit confusion.
Just my 2 cents, -gjb-
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by sintadil (Pilgrim) on Sep 16, 2004 at 14:00 UTC
|
Considering the flakiness and oft brokenness of Net::IRC (and the very admission of its author of these points), I'd completely avoid anything containing that. People are weird creatures, and they often associate bad things with an object just by appearances. If someone feels (like I do) that Net::IRC is broken, and sees "Net::IRC" in your module name(s), that someone will probably think that your module is broken in the same way(s) -- and thus they'll avoid it. It's regrettable, but it is human nature.
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by Aristotle (Chancellor) on Sep 17, 2004 at 00:26 UTC
|
use GAAS::Web;
use GBARR::FTP;
and the like. And what happens in case your module is actually useful enough that once you are no longer able or inclined to maintain it, someone else wants to take over maintenance?
Don't go there. Use a descriptive name. Anything else is pollution.
The module-authors list is a fine place to get naming suggestions if you have trouble with that.
Makeshifts last the longest.
| [reply] [Watch: Dir/Any] [d/l] |
Re: "Vanity Tagging" on CPAN?
by jZed (Prior) on Sep 16, 2004 at 15:17 UTC
|
I agree with the other posters, especially pragma's point. The only thing I'd add is a more general point about the top level hierarchies. Net::* or DBD::* or Foo::* are categories of modules and it's in everyone's interest to keep that level of naming clean and meaningful. That said, I myself violated this rule when I created the AnyData::* hierarchy. At the time I asked Tim Bunce and the modules list about it and no one objected. It makes some sense because there are lots of modules within the hierarchy. Still, I somewhat regret my decision for the reasons mentioned above. | [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by rcaputo (Chaplain) on Sep 16, 2004 at 18:43 UTC
|
BUU writes: I will note in passing that there are lots of modules that have a proper name in the title, but mostly these are named after systems of some sort, most notably POE has it's own namespace.
POE components tend to have "POE" in their names because they don't live separate lives from that framework. The implication is "You need POE to use this." In that vein, BUU::IRC implies that some BUU module is necessary to use it.
On the other hand, modules based on POE aren't required to be in POE's namespace. People just feel strongly enough about the association to insist on putting them there. So strongly in fact that the POE::Component namespace was set aside to let them without conflicting with the framework itself. From POE::Component's documentation:
The POE::Component namespace was started as place for contributors to publish their POE-based modules without requiring coordination with the main POE distribution.
Term::Visual is a notable exception. It provides a three- or four-section terminal interface (title line, scrolling terminal region, status bar, input line). To come full-circle, I think japhy has written an actual IRC client using it and POE::Component::IRC.
-- Rocco Caputo - http://poe.perl.org/
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by eyepopslikeamosquito (Archbishop) on Sep 16, 2004 at 22:49 UTC
|
Nowadays, Perl monks seems the best place to get decent and quick feedback on almost anything related to Perl. However, if you want a second opinion, post your question to
perl module-authors mailing list. From browsing the archives, I think the consensus on that list is that using the CPAN author id as part of a module namespace is bad form.
| [reply] [Watch: Dir/Any] |
|
How about if you've got a good idea for a module (extending something existing / improving on something or creating something totally new) that those mailing lists are first port of call to ask for suggestions?
Something that may seem obvious and meaningful to you may be
totally obscure to the rest of the community.
update
Okay, seems like someone thought that was a bad idea. I short explanation as to why would have been more helpful than an anonymous downvote though :) If we don't know where we're going wrong, how can we learn from our mistakes?
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by jacques (Priest) on Sep 16, 2004 at 21:28 UTC
|
I wouldn't use your name. I agree with boris. You should not use your name as a root name.
I wonder if other languages (cp. Java & PHP) have the same issues? Perhaps your question points to a broader concern of the structure of CPAN. IMO it is too loose and allows too much autonomy by the authors. And I do not see this as a strength. | [reply] [Watch: Dir/Any] |
|
In Java you use your domain name, in reverse order. IE
package org.perlmonks.why.do.we.have.a.java.class;
PHP doesn't really have any good namespace system. You can define classes, but that's only one level of namespaceing. You have to resort to the old C style smMdlAbbr_* before your variables and functions. | [reply] [Watch: Dir/Any] [d/l] |
Re: "Vanity Tagging" on CPAN?
by xdg (Monsignor) on Sep 17, 2004 at 15:03 UTC
|
My .02 is that you should consider putting it into some "Bot::" or "Net::Bot::" heirarchy. (There are several like this, search CPAN for bot first -- you might find something you want to extend or subclass and you'll want to worry about namespaces clashes there, too.) That seems to make more sense to me, since the behavior of a bot is the more generic part and a bot implemented for IRC seems the more specific.
Also, I'd say just write it first with whatever name you want, and worry about what to rename it to put it on CPAN later. Once it works and once you're convinced it's really a significantly better alternative than other bot solutions, that's the time to worry about a CPAN release.
Personally, I suggest setting aside the advice that says "you should rewrite/extend an existing CPAN module instead of rolling your own". The expression "reinventing the wheel" is tossed around a lot, but few modules on CPAN are really simple enough tools to be considered wheels. Sometimes you need to start from scratch. If you really can make a better tool, go for it!
-xdg
Code posted by xdg on PerlMonks is public domain. It has no warranties, express or implied. Posted code may not have been tested. Use at your own risk.
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by PodMaster (Abbot) on Sep 17, 2004 at 06:32 UTC
|
use ORG::CPAN::AUTHORS::BUU;
use ORG::PERL::PAUSE::BUU;
MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!" | I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README). | ** The third rule of perl club is a statement of fact: pod is sexy. |
| [reply] [Watch: Dir/Any] [d/l] |
|
| [reply] [Watch: Dir/Any] |
|
No thanks (not intended as flamebait at all, its a reasonable solution).
MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!" | I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README). | ** The third rule of perl club is a statement of fact: pod is sexy. |
| [reply] [Watch: Dir/Any] |
Re: "Vanity Tagging" on CPAN?
by Intrepid (Deacon) on Sep 21, 2004 at 04:57 UTC
|
Module-Authors? Really?
I see here a chance to acquire a startling lack of interest, along with, likely, a handful of idle downvotes ... just because the thread's already so long and "done". So I'll go for it (as is my style) with one final observation:
I disagree with the characterization of Module-Authors as an automatic
resource guaranteed to give quality or authoritative guidance. My experience with it was
that it simply wasn't. Nobody with any real wisdom was paying any attention, maybe,
that week. Or who knows. For whatever reason, when I asked about a namespace for a CPAN
module I was preparing, I got mostly the flakiest kind of bandwidth and time -wasting
idiocy from the kind of compulsive person who doesn't yet know what they are talking about
(and may never) but cannot restrain themselves from making an appearence anyway. A real
flame-bait-resisting waste of time, all in all. I doubt that I'll ever seek guidance there
again.
In my opinion, which is based on my direct experience with it (not hearsay, not theory, not
wishful thinking, not an assumption), you'll get good advice from the Module-Authors List if
you are both lucky and, likely, persistent. If you are neither, you won't.
There's a larger issue here. I would be far more hesitant than I see many Monks being here,
about advocating in answer to queries like this one, the use of external (to Perlmonks) resources
whether they are Web-based community sites, Mailing lists or newsgroups, or whatever newer
kind of forum appears next. I humbly suggest that: If you aren't actively
involved in that site or forum on a continuing basis and not taking responsibility for
some degree for how well it is fulfilling its charter, then: think twice before recommending it
to a fellow Monk! Just the fact that you know that something exists that the asker
seems not to, is not sufficient grounds to endorse it to them. And furthermore,
jusy because something emanates from a particular domain, e.g. perl.org, this
also (sad tho it may be to say) does not make it valid to assume that it is a really
helpful resource at the current time.
Of course there are people here at Perlmonks, like everywhere, that just like to see their
own name on a node, and whether others take them seriously, or whether they have a reputation
for being astute or sensible, doesn't seem to concern them. Thus the old expression
"consider the source."
| [reply] [Watch: Dir/Any] |
|
| [reply] [Watch: Dir/Any] |
|
| [reply] [Watch: Dir/Any] |