Programming is beyond the grasp of most people, it doesn’t matter if we’re talking about Perl or another language. Most individuals will look at it as more than a foreign language, as something beyond comprehension, something that takes a special kind of thinking. There is some truth to this, as in not everybody can become a developer, it does take a special little something, a certain mindset beyond hardwork and dedication. But in the end most programmers just work with a language, be it Perl or another, the true masters are the builders of those languages.
Creating a programming language is truly extraordinaire, it’s more than just creating a language, it’s building an entire world that doesn’t just have to make sense to other people, but also has to have a practical attribution. Think about it like this, driving a car seems hard before you take a few lessons on it. After you gain some experience it’s the most natural thing in the world. But building a car, that’s another story, there are so many intricacies, so many things that have to work, that lessons and experience just don’t cut it.
That’s sort of how we look at people who create programming languages, they are extraordinary individuals, programming is a part of their inner self, not just a second language, but a way of thinking. Their background vary from case to case, but each one of them bring their own backstory into their creation. One of these amazing people is Larry Wall, the creator of the Perl programming language.
So how does one go about creating a programming language?
Is there a class, a school you go to for something like this? Well, no. The word genius had been thrown around so much these days that it’s lost part of its meaning, but I would dare say that it takes a spark of genius to get to create a programming language. Larry Wall majored in chemistry at Seattle Pacific University, but changed to pre-med before taking a few years off to work in the university’s computing center. He finally graduating with a bachelor’s degree in Natural and Artificial Languages, only suiting for someone who had and who has a great interest in languages. Creating Perl wasn’t a conclusion of a plan, it was just a solution to a problem coupled with an inner desire to contribute. But let’s get back to the how.
The how is more than a reason, I’m sure a lot of people think about the background that one needs to be able to do such a thing. You don’t just stumble and fall into a programming language. In Larry Wall’s own words, his “decent set of brain construction genes”, rich heritage of ideas, his love for communication and of understanding the world, changing the world, a desire to build things and a certainty that “true wealth is measured not by what you accumulate, but by what you pass onto others.“ had its own part. This was more or less, the “baggage” he had. The creation of Perl came, like most things, as a solution to a problem he couldn’t solve as easily as he would like to.
“ I could have solved my problem with awk and shell eventually, but I possess a fortuitous surplus of the three chief virtues of a programmer: Laziness, Impatience and Hubris. I was too lazy to do it in awk because it would have been hard to get awk to jump through the hoops I was wanting it to jump through. I was too impatient to wait for awk to finish because it was so slow. And finally, I had the hubris to think I could do better.”
These are the three virtues that every great programmer should have, and they still stand today:
- Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don’t have to answer so many questions about it.
- Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to.
- Hubris: The quality that makes you write (and maintain) programs that other people won’t want to say bad things about.
It didn’t happen overnight in a dark basement, it happened through a lot of hard work in 1987, while Larry was working for System Development Corporation. Of course, he didn’t build an entire language just for one problem, but it wasn’t just his problem, it was something that could be improved for other people as well. That’s the thing in programming, there’s always a community around, you’re never helping just yourself.
There are plenty of things to say about how Perl evolved and dominated the 90’s but that’s another story. People don’t suddenly decide that they want to build their own language, it’s something that happens organically when the right situation occurs. It’s not by chance, it’s more by intent coupled with the right time and place. In the 1980s computer programming was still in its infant stage and there was plenty of room to grow, but people invent language even today, so there will always be room for more, room to grow.
Perl had a huge impact in computer programming not just through itself, but also through others. Just like it was influenced by C, Lisp, Python, C++, Unix shell, BASIC and other it also influenced other languages like: Ruby, PHP, Python, JavaScript, ECMAScript, Windows PowerShell, Dao Language, Groovy, Frink, LPC, Perl 6, BeanShell, Sleep programming language, Judoscript, Aikido Programming Language, MIVA Script, Falcon, Haskell, CoffeeScript.
In the plenitude of programming languages that exist today, Perl keeps its head high, 28 years later it’s a cherished and valued programming language. Perl code exists in millions of websites today, countless projects have been written in Perl and a large and very tight community supports and develops it today. That’s the thing with any programming language, an individual may bring it to life, but a community develops it and spreads it beyond its origin point.
We’re proud to have started as a Perl company and more than 10 years later to have a large and skilled team of Perl programmers working on various projects. From all the technologies we cover, Perl is different, not just because it was one of the first technologies we covered, but because of the way the community of developers works together. We carry on spreading Perl, one line of code at a time, for us and our clients.
Samuel Andras