great software for cool systems
The reasons to use Perl are many, but there are also many roadblocks that have kept it out of production use at many companies. Operations and system support teams were likely the first people to use Perl in production. Here’s why:
Several years ago, I worked for a large multi-national corporation. They had a policy that every product we used had to have a support contract and an escalation path. The problem with Perl, was that it was free software, supported by the the author and other volunteers on the internet.
Those of us on various support teams had learned about Perl and saw its potential. Compared to C programming or sh and csh scripting, Perl was easier to use, easier to debug, and very powerful. However, our management still balked on allowing Perl to be used in any production capacity. We had service level agreements with our customers and needed to have a similar agreement with our suppliers.
As the popularity of Perl increased, more programmers kept asking to use it for production scripts. Those who had to pass rigorous QA scrutiny were often denied its use, and given the choice of using sh, csh, C or Pascal. Those of us who worked in small teams, however had free reign to choose our language of choice, as long as at least two members of the team could provide support.
Finally, one manager wrote a business case, showing the benefits of using Perl, weighing having a support contract against the volunteer support of Perl. He showed that even with a 24 x 7 support contract, software vendors rarely provided a quick solution, but rather a work-around until their development teams can replicate and solve the problem. In many cases we were dead in the water, until at least some work-around was created. With Perl, it was determined that not only was the volunteer support team quicker to come up with a solution, but several work-arounds were usually proposed within hours by different volunteers.
Perl won out for support scripting, but full-blown applications were still written in C or Concurrent Pascal. The next big step was the time it took for development to bring a new release of their products into production. I was given a set of production tools, written in C, and a blank slate to migrate users from a mainframe platform onto Unix.
Here is where Perl was able to shine. Using a combination of sh, csh and Perl scripts, I was able to create a complete user environment in a matter of a couple of months working alone or with a partner. Compare that against more than three years for six to twelve development teams working full time. Perl was able to prototype a design and implement it, tweaking it for changes to procedures in days or hours. After we went into production, nearly every support script was written in Perl. A big change from three years earlier. The development department, however continued to work in C for at least another 10 years.
To attest to Perl’s flexibility and power, I was tasked with rewriting an accounting data collection tool. The original application was written in assembly language and used some arcane data communication protocols, including sending all data in ones complement (all 0 bits were sent as a 1, and all 1 bits sent as a 0) mode, and only allowing a single connection with a special binary data handshake. Due to development and QA cycles, I was told I needed to provide the final data in IBM labeled magnetic-tape image format.
Perl came to the rescue. I wrote one program to connect to the accounting server, and collect the data, and a second program to read the collected data and format it as an IBM labeled tape image. The project took three months to write and document. Two weeks to debug the data formats, and two weeks to pass the development’s QA department. Writing the project in Perl saved $1.5 million dollars in one-time development costs and more than $350 thousand dollars in annual production and maintenance costs.
Perl’s other strength is that there are literally thousands of user contributed library modules and subroutines to do nearly every common programming tasks. The Comprehensive Perl Archive Network (CPAN) has been online since October 1995. As of February 2010, there are 17,477 modules authored by 7,994 different contributors.
The popularity of the language has grown from the early days. Perl has been used as the glue between server applications and the web, with its own module, mod-perl for
the widely used You can follow any responses to this entry through the
RSS 2.0 feed.
You can leave a response, or trackback from your own site.
Leave a reply
You must be logged in to post a comment.