1Date::Manip::History(3)User Contributed Perl DocumentatioDnate::Manip::History(3)
2
3
4

NAME

6       Date::Manip::History - Twenty years and still going strong
7

TWENTY YEARS

9       I just realized (Dec 2015) that Date::Manip turned twenty years old
10       earlier this year, so I wanted to write some thoughts I have about
11       Date::Manip.
12
13       The history of Date::Manip can be broken into several periods.
14
15       Birth of Date::Manip (1995-1996)
16           1995 was the year I really started using perl to automate some of
17           my common tasks.  At the time, I was running programs using a
18           number of different batch systems that needed dates entered in a
19           variety of different formats.  It was frustrating to remember what
20           format for what batch system, so I wrote some wrappers which would
21           take a few common formats that I wanted to use and would turn those
22           dates into whatever format the batch system needed.
23
24           After a few different wrapper scripts (where I copied the date
25           handling code between the scripts), I gathered all of the date
26           routines into one package.
27
28           This was the birth of Date::Manip.
29
30           I kept it that way for about half a year.  By that time, I was
31           thoroughly in love with perl and wanted to contribute.
32
33           At the time, CPAN was just a fledgling site, but in October, I
34           released my first package.  It wasn't really a module at that
35           time... it was crudely put together and extremely limited use.
36           Even so, it got some very positive initial feedback which spurred
37           the early growth.
38
39           There were several private versions followed by 4 public releases
40           (4.0 through 4.3) during this period.
41
42           Soon, I had adopted many of the best practices of the day and
43           converted it to a full-blown module.
44
45       Active development (1996-2001)
46           The next 5 years were extremely active.  Based on suggestions and
47           requests, functionality increased dramatically, and before long,
48           Date::Manip was considered the goto module for Date operations.
49
50           During this period, a number of other modules came along that did a
51           small subset of the functions of Date::Manip (most of them
52           significantly faster), but none had the scope of Date::Manip.
53
54           During this period, I recognized that the single biggest weakness
55           was the inability to correctly handle timezones and daylight saving
56           time.  Towards the end of this period (2000 I believe), I began a
57           project to rewrite Date::Manip, but I didn't have the time needed
58           to really carry it out at that time.
59
60           Another weakness was that Date::Manip grew in a random way.  As
61           ideas and suggestions came, I added them.  There was little
62           planning or forethought involved, and that led to it not having a
63           consistent API.
64
65           1998 did see the addition of Recurrences.  Although not an
66           extremely widely used piece of functionality, I regard this as the
67           single most important contribution I have ever made.  I developed
68           the notation for specifying recurring events, and no other notation
69           has ever come close to matching it's power and flexibility.
70
71           This period, starting with the first release in a full module form,
72           included 26 releases (from 5.00 to 5.40).
73
74       Minimal maintenance (2001-2008)
75           During these years, I was able to devote time needed to maintain
76           the existing module, but not to do major development.
77
78           As a result, the rewrite project remained incomplete (and in fact,
79           it was barely started).
80
81           During this time, due to the fact that no other module could handle
82           timezones correctly, DateTime arrived in 2003.  It featured a nice
83           object-oriented interface, and handled timezones.
84
85           Over the next few years, it became the de facto standard for date
86           handling in perl.
87
88           This period included only 8 releases (5.42 to 5.54).
89
90       Rewrite (2009-2010)
91           In 2009, I decided it was time to fix the timezone problems in
92           Date::Manip .  Some people might see this as a waste of time due to
93           the fact that DateTime existed, but I had several thoughts.
94
95           First, many people continued to use Date::Manip.  This was evident
96           by the number of emails I continued to receive.
97
98           Second, there were still things that Date::Manip did better than
99           DateTime including recurrences and parsing.
100
101           Third, I love my module, and didn't want to see it die.  I'll
102           continue to use it, even if nobody else does.
103
104           So, I set out to fix it.  It turned out to be a complete rewrite,
105           but in the end, version 6 was released with full timezone handling,
106           even better parsing, and quite a few other features.
107
108           Date::Manip was once again very much alive.
109
110           This period featured 13 releases (6.00 to 6.14) with an additional
111           2 maintenance releases of version 5.
112
113       Active maintenance (2010-present)
114           Although primarily in maintenance mode (due to the fact that it
115           does pretty much everything that it was designed to do), active
116           maintenance continues.  There is also some development and a large
117           number of significant improvements have been made in this period.
118
119           I make regular releases to update the timezone information, fix
120           bugs, and add the occasional new features.
121
122           For the foreseeable future, Date::Manip will remain active, and
123           fully capable of handling any common date operation.
124
125           Since 6.14, there have been an average of about 5 releases per
126           year.
127

ONE OF THE OLDEST

129       I was curious to see how many other modules are out there that have
130       survived as long as Date::Manip.
131
132       The first public release of Date::Manip (though it was not a module at
133       that point) was version 4.0 on 13-Aug-1995.  The first public release
134       to CPAN was version 4.2 released on 23-Oct-1995.
135
136       I got a list of all CPAN modules from the wayback machine for 2000 (the
137       earliest version of the list that I could find).  Then I checked each
138       of these authors on backpan to see which of these authors had packages
139       (.tar.gz or .tgz files) released prior to 23-Oct-1995.
140
141       I found that at the time Date-Manip 4.2 was released there were
142
143          32 authors
144          70 packages
145
146       There are currently (Aug 2017) over 190,000 modules by over 13,000
147       authors.  So Date::Manip got involved in CPAN very early.
148
149       Next, I tried to determine which of those authors and packages are
150       still active.  I'm not completely sure about some of the packages
151       because frequently, those old packages have changed maintainers, been
152       renamed, or been incorporated into other packages.  So the number of
153       active packages is actually a lower limit.
154
155       I found that:
156
157          13 of the 32 authors are active today
158          21 of the 70 packages are active today
159          7 of those packages are still maintained by the original author
160
161       An active author is one who has released something in the past 3 years.
162       An active module is one that has been updated in the past 3 years.
163
164       I apologize if I have missed anyone.
165
166       The 7 packages which are older than Date::Manip and are still actively
167       maintained by their original author (though they may have been renamed)
168       are:
169
170          ILYAZ  MathPari     23-Jan-1995
171          ANDK   Symdump      16-Aug-1995
172          PMQS   Filter       28-Aug-1995
173          GAAS   libwww-perl  16-Sep-1995
174          LDS    GD           17-Sep-1995
175          MEWP   sybperl      02-Oct-1995
176          TOMZO  Quota        10-Oct-1995
177
178       Congratulations to those authors who have been with perl since the
179       beginning.  I'm proud to be in their company!  And congratulations to
180       ILYAZ for having the oldest module in CPAN!
181
182       If I have missed anyone, please let me know.
183
184       2022 Update:
185
186       Three of the above packages have now been removed from the list.
187       Symdump has not been updated since 2017, though the author is still
188       active, and the package is still available.
189
190       Filter is no longer available on CPAN (though the author is still
191       active).
192
193       GD is still maintained but by a new author.
194
195       So, it seems like we're down to 4 packages that are actively maintained
196       by the original author that are older than Date::Manip.
197

SEE ALSO

199       Date::Manip        - main module documentation
200

LICENSE

202       This script is free software; you can redistribute it and/or modify it
203       under the same terms as Perl itself.
204

AUTHOR

206       Sullivan Beck (sbeck@cpan.org)
207
208
209
210perl v5.36.0                      2022-12-10           Date::Manip::History(3)
Impressum