Booking.com says that it maintains “probably one of the largest Perl code bases in the world”, and to prove that the 28-year-old programming language is thriving, the travel website hired well over a hundred highly-skilled Perl programmers and developers in the past year. Other big users of Perl include the BBC and luxury fashion online retailer Net-a-Porter.

Despite this, there are some common misconceptions about the language that the dedicated developer community finds frustrating and is a source of Perl arguments. One is that the Unix scripting language developed by Larry Wall in 1987 is a “legacy code” and two, that it is dying, or already dead.

Perl, the 28-year-old programming language, is far from dead, as big users like Booking.com and Net-a-Porter can attest. Image credit: Perl Foundation

Techworld has spoken to Booking.com’s senior manager of infrastructure and technology and other advocates of Perl to find out why there are conflicting opinions about the language’s longevity, the effect this has on skills and whether it has a future in the enterprise.

Steffen Mueller from Booking.com has a unique insight into how widely Perl is used by businesses. 

In the past, Mueller has maintained a tool for packaging Perl programs and libraries into one executable file. In this context, he says he privately provided support to many of the Fortune 500 companies.

“Without disclosing any company names, it seemed about half of the big names in banking were using the tool, various big pharma companies, several of the world’s leading IT consultants or outsourcers, all the way to one of the world’s leading engineering companies, using the tool to deploy applications to six-digit numbers of computers,” Mueller tells Techworld.

“This clearly shows, if not proves, Perl’s pervasive use. It’s not as sexy as the new kids on the block - software development is a fickle industry - but from behind the scenes, it powers a lot of the world’s largest enterprises.”

Perl is very much the dominant programming language at Booking.com, but it does use other languages “where it makes sense”. For instance, its client-side code is JavaScript and it has some memory-intensive code written in Go or in C. It also has admin tools in Python, uses Ruby for its puppet recipes (puppet is a configuration management tool written in Ruby, and the recipes define what the system should look like) and Java for its Hadoop installations and for its Android apps. For its iOS developments, it uses Objective-C.

Power of Perl

Fifteen to 20 years ago, Perl was a popular choice for internet startups. In the late 90s, it was widely used for back-end web development to the extent that it was the “only game in town”, according to John Napiorkowski, a freelance Perl developer who was most recently lead software engineer at micro stock photography website Shutterstock.

“Perl first grew in popularity because of its reputation as a great language for glueing together various systems, the ‘duct tape of the internet’. I think this continues to be a good role for it since it has a lot of working interfaces to all sorts of disparate technology,” he says.

“My most recent job programming Perl has been work on a web API, XML/JSON over HTTP, that linked databases to a front end application written in Javascript. My feeling is that in large companies with lots of different systems will find Perl a good choice to help integrate.”

Booking.com is one of the companies that started out with Perl, from its origins since 1996. Mueller says that since the beginning, the flexibility and adaptability of Perl have helped the travel website to innovate rapidly. Booking.com is using Dancer, a web development framework on which the firm bases many of its internal apps, because it is “well suited to rapid and iterative development, while still being very flexible”.

“We managed to put in place the necessary discipline to harness those strengths without shooting ourselves in the foot,” he says.

“We maintain what is probably one of the largest Perl code bases in the world, and we’re not yet hitting the limitations of the language.”

Today, Perl is still “great for getting things done quickly”, says Dave Cross, a long-standing member of the London Perl Mongers, a group of people dedicated to all things to do with Perl in the capital.

“Perl is a very dense and expressive language. Things that you can do in a line of Perl can take 20 lines or more in other languages,” says Cross, acknowledging that other dynamic languages like Ruby and Python are just as expressive.

“But what I don’t think those languages have is a large, centralised code library like CPAN (Comprehensive Perl Archive Network). The ecosystem around CPAN is incredible,” he adds.

“Hundreds of developers all around the world submit free code to CPAN. It is then automatically tested on hundreds of systems running dozens of operating systems, and the results of those test runs are available for anyone to see.

“Perl has always placed great emphasis on testing and on easy distribution of CPAN libraries. I don’t see any other language community putting that much importance on their library code.”

Neil Bowers, an editor for the Perl Weekly newsletter and a CPAN maintainer, says the expressive nature of Perl means that he can be very productive in the language.

“You can lash things together very quickly in Perl, but you can also craft large, high-quality systems in Perl, moving between those extremes as need dictates.”

Unsexy and uncool

But despite the usefulness of Perl and its large and supportive community, by referring to the languages’ lack of sexiness, Mueller touches on one of the community’s main issues at present.

Bowers admits that Perl isn’t seen as “cool”, and hasn’t been viewed as such for a long time. C#, PHP and Java, for example, are considered as more popular today.

“There are other, more trendy languages, which it’s easier to find jobs in. So it’s tempting to move to a different language,” he says. However, he points out that good programmers should be happy to work in whatever language is required, so this shouldn’t be an issue.

Nonetheless, it does not help when people claim that Perl is dead or dying, because it makes people wonder if they should stick with the language or start learning it, Bowers says.

Also, despite Booking.com’s hiring trend last year, there is a decline in the number of Perl job vacancies, says Cross.

“We have a large and growing community. Conferences like YAPC [Yet Another Perl Workshop] and workshops like the London perl Workshop bring together hundreds of enthusiastic Perl programmers annually,” he says.

“However, it’s clear that the number of companies using Perl is falling year by year. Companies seem to believe, wrongly, that Perl hasn’t changed in the last 15 years. I also hear people saying that it’s hard to find good Perl programmers. Perl programmers I knew 15 years ago have moved on to other languages, and there are very few youngsters coming into the language.”

Bowers agrees that it is harder to find developers experienced in Perl now compared to 2000, but argues that it is always hard to find really good developers, whatever the language.

Not that this is a problem for Booking.com.

“We already employ some of the best Perl developers in the world, being able to debug problems as deep into the language implementation as we could ever wish for,” says Mueller.

“The level of skill at which we seek developers means that the candidates almost certainly know a number of programming languages already. We find that a very strong developer will pick up a new language, such as Perl in our case, in a matter of weeks.”

The problem with Perl 6

One factor hindering the Perl community’s efforts to reassure the next generation that the language is vibrant is a lack of clarity around two versions of the language - Perl 5, which is available and up-to-date, and Perl 6, which, despite being announced 15 years ago, is still yet to see an official release.

Perl 5 was first released in 1994 and since 2010 has been getting annual upgrades that bring new innovations to the language. It is still widely used and according to Bowers it is “doing very well”.

However, confusion occurred after Perl 6 was announced in 2000. The version is still being developed and a release is not expected for it until the end of this year.

“As a result [of the announcement in 2000], some years later, effort on Perl 5 fizzled out,” says Bowers. “People thought that Perl 5 was going to be surpassed very soon, but Perl 6 didn’t turn up. That damaged perception, and adoption, of Perl.”

Also, although it seems trivial, by naming it Perl 6, it looks to the outside world that Perl has not progressed for 15 years. This is regardless of Perl 5’s ongoing updates, which saw Perl 5.20.2, the current version, released in February 2015.

“The Perl 5 and Perl 6 teams need to work together on the message of them both, so we don’t get confusion and mixed messages through this year, as we hopefully get close to the first production release of Perl 6 at the end of the year,” Bowers says.

Perl and startups

Getting startups to adopt Perl would help to reverse the impression of decline of the language, as well as bring in new blood into the community.

Bowers suggests: “To get the young kids picking up Perl, cool new systems and solutions need to be created in Perl that aren’t being created in other languages. Or we need to show that things can be done more quickly and better in Perl.”

But changing Perl’s reputation may be easier said than done.

“Startups don’t have an existing code base so they are free to chose whatever technology they want.” says Cross.

“Almost none of them choose Perl, probably because of the lack of programmers, but also because they want to attract the best programmers and they want to use shiny new tools and languages. Perl just isn’t in that group any more.”

This is general knowledge, according to Napiorkowski’s experience.

“I understand startups, particularly when they are composed primarily of younger people, tend to choose whatever is the hot fling of the moment. Right now that’s JavaScript. Before that, Ruby on Rails was a top choice,” he says.

“That being said, there are companies founded in the modern era that used Perl on day one and found it helped them succeed. Shutterstock and MediaMath are two recent companies I’ve worked at that are successful and used Perl from the start.”

So, is it dying?

Mark Keating, managing director of Perl consultancy Shadowcat Systems and a member of The Perl Foundation steering committee, insists that the slow death of Perl is a misconception. He points to the fact that the community, contributors and number of events is larger than ever before - and still growing.

“The popularity of Perl looks to be diminishing because its market share is shrinking. However, the overall market is in fact growing and so it is a percentage by overall size and not based on figures,” Keating argues.

“The figures from CPAN, Facebook, Google Groups etc, and conference attendance and sizes all see an increase in Perl programmers and numbers. Certainly in the last year, there has been more signs of positive trend for Perl on TIOBE [a programming community index that measures the popularity of programming languages] and other site metric figures.”

Booking.com’s senior manager of infrastructure and technology also recognises the work the community does to keep the language updated and fresh.

“On the one hand, we can see that development on the core language itself continues, but since Perl is mature and very much used today in production, the contributors put a strong focus on backwards compatibility, which obviously limits the amount of radical changes that can be introduced. On top of that, a significant amount of work has gone into performance enhancements, some of which were even done by our employees or funded by us,” Mueller says.

“On the other hand, it is necessary to point out that the Perl community is very dynamic, and that interesting and innovative projects abound.”

Even if it is not considered as an on-trend skill today, programmers old and new shouldn’t disregard the adaptability of Perl, says Keating.

“This is a modern age and we should be able to use mixed languages in a project. Perl’s strength helps here. Its adaptability makes it play better with other languages, so that it can be used in conjunction with them in a nice fashion.”

Find your next job with techworld jobs