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 onion logo
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.”