[mplspm]: A project for MPM

Brian Parker bparker at pobox.com
Wed Oct 30 09:49:29 CST 2002


I think this is a great idea.  Having just spent quite a bit of time try to
find the "best" date/time module, I know their is definitely a need to be
met.  (We ended up using both Class::Date and Date::Calc.)

I definitely will volunteer some amount of time.  I have to weigh my time
commitments before I ask for a large chunk of the work.  (We just had a baby
girl.)

Would we use pod for this?  Would the format be similar to the poop doc:
http://poop.sourceforge.net/

regards,
Brian

----- Original Message -----
From: "Dave Rolsky" <autarch at urth.org>
To: <mpls at pm.org>
Sent: Tuesday, October 29, 2002 10:51 PM
Subject: [mplspm]: A project for MPM


> So we've talked a bit about this in the past, and at the last meeting we
> briefly mentioned the idea of taking on dates & times as our PM project.
>
> I think this'd be a really cool thing to do, and there is a desperate need
> for somebodies in the Perl community to really try to improve the
> situation in regards to date/time modules.
>
> Here's some thing that I think we could work on, in order of increasing
> difficulty.
>
> 1. A document comparing all the major date & time modules for Perl.
>
> Things to look at could include:
>
> -- module scope (how much stuff it does)
> -- epoch only or not?
> -- does date math?
> -- OO or functions?
> -- special features?
> -- license
> -- strengths/weakness (somewhat subjective but that's ok)
>
>
> 2. Take the above and turn it into datetime.perl.org.  This could be a
> website we collectively maintained that hosted the above document and
> perhaps other resources (I'm not sure exactly what though).
>
>
> 3. Fill in the gaps.  For example, AFAIK there is no module for Perl that
> handles time zones completely and correctly.  In fact, the only module I
> know of for Perl that handles time zones at all is Time::Zone, which AFAIC
> is close to useless.  All it does is parse Unix-style TZ env variables and
> return offsets.  That's not very helpful because it uses the older style
> 3/4 letter zones like 'cst', which just doesn't cut it these days.
>
>
> 4. Try to come up with _the_ one way to do it ;)  I say this sort of
> tongue in cheek, but only sort of.  Perl has a lot of different date/time
> modules, each of which individually have very interesting and useful
> features, but none of which by itself does everything.  Since they all
> have radically different interfaces, working with more than 1 module at a
> time is a big pain in the ass.
>
> Initially, we might just try to design a single interface that hides the
> details of the different modules, and presents a single unified way of
> doing all the useful things one could do (parsing, date math, output in
> different formats, etc.).  Later, we might start actually ripping code out
> of different modules and putting together our own suite of modules that
> represents the best of Perl's date/time code.
>
>
> If there's any takers for #1, here's a reasonably complete list of
> "interesting" Perl date/time modules along with my comments about them:
>
>
> - Time::Piece (and Time::Seconds) - nice interface, nice simply date math,
> but only handles epoch times, which is a drag.  See also my
> Time::Piece::MySQL module, which adds some mysql-specific bits.  Similar
> modules for other DBs/external resources can be added just as easily.
>
> - Class::Date & Date::Handler - kind of like Time::Piece on steroids, but
> I don't see why they can't all be integrated.
>
> - Date::Manip - ridiculously large amount of code.  crapulous interface.
> freaking brilliant parsing code that handles things like "2nd day after
> next Tuesday" or "the first day of the last week of the next month".  Also
> has some internationalization bits for parsing, which is doubly slick.  If
> this thing could return a Time::Piece object (and T::P handled times
> outside of the epoch), I'd be in heaven.
>
> - Date::Calc - lots of nice date math functions.  Stupid interface
> (Function_Names_Like_This).  Written in C so presumably its fast.
>
> -- Date::Calc::Object - OO interface over Date::Calc.  Interesting.  Also
> has Date delta objects.  Cool!  Works with Date::Calc functions, which
> have stupid names, but making a wrapper for that wouldn't be too hard.
>
> -- Date::Calendar - seems quite useful
>
> - Date::Parse - lightweight so it's a good choice if you know that you'll
> never exceed its limitations.  But those limitations are pretty big cause
> it doesn't do much.
>
> - Date::Format - basically strftime in Perl.  Time::Piece provides the
> same thing.
>
> - Time::Zone - see above
>
> - Time::Human - could be useful for some apps
>
> - Time::TAI64 - currently says not to use it, but it could provide
> something useful is author releases, stable, documented version.  Relies
> on libtai by Dan J Bernstein, known psycho.
>
> - Date::ICal - nice interface, would mesh well with Time::Piece.  ICal is
> important for calendaring apps.  Date::ICal is part of the reefknot
> project, which aimed at implementing all of iCal in Perl, but seems to be
> more or less defunct.
>
> - Date::Interval - could be interesting but seems to have a weird API.
>
>
> And quite a few more.  Also check out the now defunct reefknot project at
> www.reefknot.org, which has more resources on dates & times.
>
> So if people are interested perhaps they could pick a few modules to do
> writeups on.  I think something like this would be good:
>
>  scope: small, medium, big (how many different things it tries to
accomplish)
>  interface: OO / functions / both?
>  focus (or focii): parsing, output formatting, date math, business dates,
calendars, date intervals, etc.
>  license - important if we ever want to try to combine them
>
> And then maybe 2-4 paragraphs talking about special features, strengths
> and weaknesses, relationships to other modules.
>
>
> Any takers?
>
>
> -dave
>
> /*==================
> www.urth.org
> we await the New Sun
> ==================*/
>
>
>
>
>
> --------------------------------------------------
> Minneapolis Perl Mongers mailing list
>
> To unsubscribe, send mail to majordomo at pm.org
> with "unsubscribe mpls" in the body of the message.
>



--------------------------------------------------
Minneapolis Perl Mongers mailing list

To unsubscribe, send mail to majordomo at pm.org
with "unsubscribe mpls" in the body of the message.



More information about the Mpls-pm mailing list