Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Date::Manip::History(3User Contributed Perl DocumentatiDate::Manip::History(3)

NAME
       Date::Manip::History - Twenty years and still going strong

TWENTY YEARS
       I just realized (Dec 2015) that Date::Manip turned twenty years old
       earlier this year, so I wanted to write some thoughts I have about
       Date::Manip.

       The history of Date::Manip can be broken	into several periods.

       Birth of	Date::Manip (1995-1996)
	   1995	was the	year I really started using perl to automate some of
	   my common tasks.  At	the time, I was	running	programs using a
	   number of different batch systems that needed dates entered in a
	   variety of different	formats.  It was frustrating to	remember what
	   format for what batch system, so I wrote some wrappers which	would
	   take	a few common formats that I wanted to use and would turn those
	   dates into whatever format the batch	system needed.

	   After a few different wrapper scripts (where	I copied the date
	   handling code between the scripts), I gathered all of the date
	   routines into one package.

	   This	was the	birth of Date::Manip.

	   I kept it that way for about	half a year.  By that time, I was
	   thoroughly in love with perl	and wanted to contribute.

	   At the time,	CPAN was just a	fledgling site,	but in October,	I
	   released my first package.  It wasn't really	a module at that
	   time... it was crudely put together and extremely limited use.
	   Even	so, it got some	very positive initial feedback which spurred
	   the early growth.

	   There were several private versions followed	by 4 public releases
	   (4.0	through	4.3) during this period.

	   Soon, I had adopted many of the best	practices of the day and
	   converted it	to a full-blown	module.

       Active development (1996-2001)
	   The next 5 years were extremely active.  Based on suggestions and
	   requests, functionality increased dramatically, and before long,
	   Date::Manip was considered the goto module for Date operations.

	   During this period, a number	of other modules came along that did a
	   small subset	of the functions of Date::Manip	(most of them
	   significantly faster), but none had the scope of Date::Manip.

	   During this period, I recognized that the single biggest weakness
	   was the inability to	correctly handle timezones and daylight	saving
	   time.  Towards the end of this period (2000 I believe), I began a
	   project to rewrite Date::Manip, but I didn't	have the time needed
	   to really carry it out at that time.

	   Another weakness was	that Date::Manip grew in a random way.	As
	   ideas and suggestions came, I added them.  There was	little
	   planning or forethought involved, and that led to it	not having a
	   consistent API.

	   1998	did see	the addition of	Recurrences.  Although not an
	   extremely widely used piece of functionality, I regard this as the
	   single most important contribution I	have ever made.	 I developed
	   the notation	for specifying recurring events, and no	other notation
	   has ever come close to matching it's	power and flexibility.

	   This	period,	starting with the first	release	in a full module form,
	   included 26 releases	(from 5.00 to 5.40).

       Minimal maintenance (2001-2008)
	   During these	years, I was able to devote time needed	to maintain
	   the existing	module,	but not	to do major development.

	   As a	result,	the rewrite project remained incomplete	(and in	fact,
	   it was barely started).

	   During this time, due to the	fact that no other module could	handle
	   timezones correctly,	DateTime arrived in 2003.  It featured a nice
	   object-oriented interface, and handled timezones.

	   Over	the next few years, it became the de facto standard for	date
	   handling in perl.

	   This	period included	only 8 releases	(5.42 to 5.54).

       Rewrite (2009-2010)
	   In 2009, I decided it was time to fix the timezone problems in
	   Date::Manip .  Some people might see	this as	a waste	of time	due to
	   the fact that DateTime existed, but I had several thoughts.

	   First, many people continued	to use Date::Manip.  This was evident
	   by the number of emails I continued to receive.

	   Second, there were still things that	Date::Manip did	better than
	   DateTime including recurrences and parsing.

	   Third, I love my module, and	didn't want to see it die.  I'll
	   continue to use it, even if nobody else does.

	   So, I set out to fix	it.  It	turned out to be a complete rewrite,
	   but in the end, version 6 was released with full timezone handling,
	   even	better parsing,	and quite a few	other features.

	   Date::Manip was once	again very much	alive.

	   This	period featured	13 releases (6.00 to 6.14) with	an additional
	   2 maintenance releases of version 5.

       Active maintenance (2010-present)
	   Although primarily in maintenance mode (due to the fact that	it
	   does	pretty much everything that it was designed to do), active
	   maintenance continues.  There is also some development and a	large
	   number of significant improvements have been	made in	this period.

	   I make regular releases to update the timezone information, fix
	   bugs, and add the occasional	new features.

	   For the foreseeable future, Date::Manip will	remain active, and
	   fully capable of handling any common	date operation.

	   Since 6.14, there have been an average of about 5 releases per
	   year.

ONE OF THE OLDEST
       I was curious to	see how	many other modules are out there that have
       survived	as long	as Date::Manip.

       The first public	release	of Date::Manip (though it was not a module at
       that point) was version 4.0 on 13-Aug-1995.  The	first public release
       to CPAN was version 4.2 released	on 23-Oct-1995.

       I got a list of all CPAN	modules	from the wayback machine for 2000 (the
       earliest	version	of the list that I could find).	 Then I	checked	each
       of these	authors	on backpan to see which	of these authors had packages
       (.tar.gz	or .tgz	files) released	prior to 23-Oct-1995.

       I found that at the time	Date-Manip 4.2 was released there were

	  32 authors
	  70 packages

       There are currently (Aug	2017) over 190,000 modules by over 13,000
       authors.	 So Date::Manip	got involved in	CPAN very early.

       Next, I tried to	determine which	of those authors and packages are
       still active.  I'm not completely sure about some of the	packages
       because frequently, those old packages have changed maintainers,	been
       renamed,	or been	incorporated into other	packages.  So the number of
       active packages is actually a lower limit.

       I found that:

	  13 of	the 32 authors are active today
	  21 of	the 70 packages	are active today
	  7 of those packages are still	maintained by the original author

       An active author	is one who has released	something in the past 3	years.
       An active module	is one that has	been updated in	the past 3 years.

       I apologize if I	have missed anyone.

       The 7 packages which are	older than Date::Manip and are still actively
       maintained by their original author (though they	may have been renamed)
       are:

	  ILYAZ	 MathPari     23-Jan-1995
	  ANDK	 Symdump      16-Aug-1995
	  PMQS	 Filter	      28-Aug-1995
	  GAAS	 libwww-perl  16-Sep-1995
	  LDS	 GD	      17-Sep-1995
	  MEWP	 sybperl      02-Oct-1995
	  TOMZO	 Quota	      10-Oct-1995

       Congratulations to those	authors	who have been with perl	since the
       beginning.  I'm proud to	be in their company!  And congratulations to
       ILYAZ for having	the oldest module in CPAN!

       If I have missed	anyone,	please let me know.

SEE ALSO
       Date::Manip	  - main module	documentation

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

AUTHOR
       Sullivan	Beck (sbeck@cpan.org)

perl v5.32.1			  2020-06-01	       Date::Manip::History(3)

NAME | TWENTY YEARS | ONE OF THE OLDEST | SEE ALSO | LICENSE | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Date::Manip::History&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help