[phobos] next release (module useability)
Jonathan M Davis
jmdavisprog at gmail.com
Fri Sep 10 19:48:38 PDT 2010
On Friday 10 September 2010 02:10:52 Jonathan M Davis wrote:
> On Friday 10 September 2010 01:40:45 SHOO wrote:
> > (2010/09/09 23:08), Andrei Alexandrescu wrote:
> > > On 9/9/10 8:20 CDT, Lars Tandle Kyllingstad wrote:
> > >
> > > 2. Define std.datetime, paste std.stopwatch in it, and have it import
> > > std.date for now
> >
> > Is there the clear reason to adopt std.datetime?
> > I think that std.time is better. Because name is short, and I think
> > "time" include concept of the "date".
>
> I think that datetime is more descriptive, and I have no problem with
> longer module names, so I think that I'd prefer it, but I don't really
> care all that much. The functionality is what's important, and if all date
> and time functionality is together, then it's not like it's going to be
> all that hard to find whether it's std.date, std.datetime, or std.time.
> Now, if we named it something like std.temporaltoolshed,
> std.temporalkitchensink, or
> std.temporalmishmash, then that would likely be a problem, but somehow I
> don't think that anyone is going for that sort of name. Any of the
> seriously suggested names thus far would likely work just fine.
>
> - Jonathan M Davis
You know, those ludicrous names that I came up with make me wonder about how
good your module or library has to be in order for people to put up with its bad
name. I mean, if you have a module that's useable with a reasonable name, it
will get used. But if you have a really nasty module name, people will be less
inclined to use it. If they have an alternative which is good enough and has a
better name, they're more likely to use that. The worse the name, the less
they're inclined to use your module.
However, the better that your module/library is in comparison to others, the
more incentive there is to use it, bad name or no. So, you get this ratio of
usefulness to useability (I'm just talk module naming useability at this point,
but it could be expanded to general useability). The higher the usefulness, the
greater the chance someone will use it; the lower the useability, the lower the
chance that someone will use it. So, if you had an insanely useful module, you
could give it a pretty bad name and it would still be used, but if you had a
horrible module, it wouldn't matter how good the name was, it wouldn't be used.
This begs the question of the threshold between a module being used do to its
usefulness and being unused because of its bad name.
I bet that we could name std.stdio something pretty bad, and have it used all
the time because people need it. e.g.
std.inputoutputstuffthatyoudreallyliketodoandisdownrightuseful would still be
used. People would complain bitterly (and with good reason), but it would get
used because you pretty much need the functionality that it has. On the other
hand, if you name std.algorithm
std.reallycoolstuffthatyoudprefernottohavetodoyourself, I bet that a _lot_ fewer
people would use it. Yes std.algorithm is highly useful, but I know enough
programmers who would shy away from it already. If you give it a name like that,
only its most ardent supporters will use it. Renaming something like
std.functional or std.getopt would likely be even worse, since they're likely to
be in even less demand than std.algorithm.
Now, I think that the reality of the matter is that the principle of useability
relates far more to the contents of the module - how its functions are named,
how they're used, etc. - matters far more than the name of the module, but I do
think that it could be fairly interesting to see what the threshold of usage
would be on a particular module with regards to its ration of usefulness to
useability (be it its name or its contents). My guess is that, in general, low
useability will kill a module far faster than its usefulness will get it used,
which would just underline the importance of useability. I get the impression
that programmers have tendency to reinvent the wheel very quickly if it looks
like it's going to be too much trouble to use the wheel that they already have,
or if they don't like it for whatever reason.
In any case. I suppose that I'm rambling on, but the thought occurred to me
after thinking about my ridiculous module name suggestions, and I had to share.
It would almost be challenging to see how good a module you had to write to get
people to use a module with an atrocious module name like std.temporalmishmash.
- Jonathan M Davis
More information about the phobos
mailing list