{
    "content": [
        {
            "type": "text",
            "text": "# Date::Manip::History (perldoc)\n\n## NAME\n\nDate::Manip::History - Twenty years and still going strong\n\n## Sections\n\n- **NAME**\n- **TWENTY YEARS**\n- **ONE OF THE OLDEST**\n- **SEE ALSO**\n- **LICENSE**\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Date::Manip::History",
        "section": "",
        "mode": "perldoc",
        "summary": "Date::Manip::History - Twenty years and still going strong",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "TWENTY YEARS",
                "lines": 106,
                "subsections": []
            },
            {
                "name": "ONE OF THE OLDEST",
                "lines": 50,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Date::Manip::History - Twenty years and still going strong\n",
                "subsections": []
            },
            "TWENTY YEARS": {
                "content": "I just realized (Dec 2015) that Date::Manip turned twenty years old earlier this year, so I\nwanted to write some thoughts I have about Date::Manip.\n\nThe history of Date::Manip can be broken into several periods.\n\nBirth of Date::Manip (1995-1996)\n1995 was the year I really started using perl to automate some of my common tasks. At the\ntime, I was running programs using a number of different batch systems that needed dates\nentered in a variety of different formats. It was frustrating to remember what format for\nwhat batch system, so I wrote some wrappers which would take a few common formats that I\nwanted to use and would turn those dates into whatever format the batch system needed.\n\nAfter a few different wrapper scripts (where I copied the date handling code between the\nscripts), I gathered all of the date routines into one package.\n\nThis was the birth of Date::Manip.\n\nI kept it that way for about half a year. By that time, I was thoroughly in love with perl\nand wanted to contribute.\n\nAt the time, CPAN was just a fledgling site, but in October, I released my first package. It\nwasn't really a module at that time... it was crudely put together and extremely limited\nuse. Even so, it got some very positive initial feedback which spurred the early growth.\n\nThere were several private versions followed by 4 public releases (4.0 through 4.3) during\nthis period.\n\nSoon, I had adopted many of the best practices of the day and converted it to a full-blown\nmodule.\n\nActive development (1996-2001)\nThe next 5 years were extremely active. Based on suggestions and requests, functionality\nincreased dramatically, and before long, Date::Manip was considered the goto module for Date\noperations.\n\nDuring this period, a number of other modules came along that did a small subset of the\nfunctions of Date::Manip (most of them significantly faster), but none had the scope of\nDate::Manip.\n\nDuring this period, I recognized that the single biggest weakness was the inability to\ncorrectly handle timezones and daylight saving time. Towards the end of this period (2000 I\nbelieve), I began a project to rewrite Date::Manip, but I didn't have the time needed to\nreally carry it out at that time.\n\nAnother weakness was that Date::Manip grew in a random way. As ideas and suggestions came, I\nadded them. There was little planning or forethought involved, and that led to it not having\na consistent API.\n\n1998 did see the addition of Recurrences. Although not an extremely widely used piece of\nfunctionality, I regard this as the single most important contribution I have ever made. I\ndeveloped the notation for specifying recurring events, and no other notation has ever come\nclose to matching it's power and flexibility.\n\nThis period, starting with the first release in a full module form, included 26 releases\n(from 5.00 to 5.40).\n\nMinimal maintenance (2001-2008)\nDuring these years, I was able to devote time needed to maintain the existing module, but\nnot to do major development.\n\nAs a result, the rewrite project remained incomplete (and in fact, it was barely started).\n\nDuring this time, due to the fact that no other module could handle timezones correctly,\nDateTime arrived in 2003. It featured a nice object-oriented interface, and handled\ntimezones.\n\nOver the next few years, it became the de facto standard for date handling in perl.\n\nThis period included only 8 releases (5.42 to 5.54).\n\nRewrite (2009-2010)\nIn 2009, I decided it was time to fix the timezone problems in Date::Manip . Some people\nmight see this as a waste of time due to the fact that DateTime existed, but I had several\nthoughts.\n\nFirst, many people continued to use Date::Manip. This was evident by the number of emails I\ncontinued to receive.\n\nSecond, there were still things that Date::Manip did better than DateTime including\nrecurrences and parsing.\n\nThird, I love my module, and didn't want to see it die. I'll continue to use it, even if\nnobody else does.\n\nSo, I set out to fix it. It turned out to be a complete rewrite, but in the end, version 6\nwas released with full timezone handling, even better parsing, and quite a few other\nfeatures.\n\nDate::Manip was once again very much alive.\n\nThis period featured 13 releases (6.00 to 6.14) with an additional 2 maintenance releases of\nversion 5.\n\nActive maintenance (2010-present)\nAlthough primarily in maintenance mode (due to the fact that it does pretty much everything\nthat it was designed to do), active maintenance continues. There is also some development\nand a large number of significant improvements have been made in this period.\n\nI make regular releases to update the timezone information, fix bugs, and add the occasional\nnew features.\n\nFor the foreseeable future, Date::Manip will remain active, and fully capable of handling\nany common date operation.\n\nSince 6.14, there have been an average of about 5 releases per year.\n",
                "subsections": []
            },
            "ONE OF THE OLDEST": {
                "content": "I was curious to see how many other modules are out there that have survived as long as\nDate::Manip.\n\nThe first public release of Date::Manip (though it was not a module at that point) was version\n4.0 on 13-Aug-1995. The first public release to CPAN was version 4.2 released on 23-Oct-1995.\n\nI got a list of all CPAN modules from the wayback machine for 2000 (the earliest version of the\nlist that I could find). Then I checked each of these authors on backpan to see which of these\nauthors had packages (.tar.gz or .tgz files) released prior to 23-Oct-1995.\n\nI found that at the time Date-Manip 4.2 was released there were\n\n32 authors\n70 packages\n\nThere are currently (Aug 2017) over 190,000 modules by over 13,000 authors. So Date::Manip got\ninvolved in CPAN very early.\n\nNext, I tried to determine which of those authors and packages are still active. I'm not\ncompletely sure about some of the packages because frequently, those old packages have changed\nmaintainers, been renamed, or been incorporated into other packages. So the number of active\npackages is actually a lower limit.\n\nI found that:\n\n13 of the 32 authors are active today\n21 of the 70 packages are active today\n7 of those packages are still maintained by the original author\n\nAn active author is one who has released something in the past 3 years. An active module is one\nthat has been updated in the past 3 years.\n\nI apologize if I have missed anyone.\n\nThe 7 packages which are older than Date::Manip and are still actively maintained by their\noriginal author (though they may have been renamed) are:\n\nILYAZ  MathPari     23-Jan-1995\nANDK   Symdump      16-Aug-1995\nPMQS   Filter       28-Aug-1995\nGAAS   libwww-perl  16-Sep-1995\nLDS    GD           17-Sep-1995\nMEWP   sybperl      02-Oct-1995\nTOMZO  Quota        10-Oct-1995\n\nCongratulations to those authors who have been with perl since the beginning. I'm proud to be in\ntheir company! And congratulations to ILYAZ for having the oldest module in CPAN!\n\nIf I have missed anyone, please let me know.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "Date::Manip - main module documentation\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "This script is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Sullivan Beck (sbeck@cpan.org)\n",
                "subsections": []
            }
        }
    }
}