Basement‎ > ‎

The Slow Death of a Language - RIP perl, long live Perl

Nov 2017
R. Sean McAdam

Getting older can suck at times.  I have been in the industry for over 25 years now, and I remember starting out thinking that there was so much to learn, and how exciting it all was.  In many ways I was blessed to find a vocation that happened to overlap with one of my passions: tinkering with computers. I really love my work, which is cool.  I cannot image showing up year after year to a mediocre job, just punching the clock. And there was one thing in particular, one constant in through most of my career, and that was Perl.

Early on I was learning various languages as part of my education. I remember that my college was using Pascal as a teaching language, which was good enough. I do remember the funky scoping rules with the stack, there is no other language that does it that way that I know of.  I also knew down in my bones that there was more to languages then just Pascal. Pascal felt like a simple 'hobby' language. Something you would write on your PC at home to make hello world programs (If you had a PC at home back then)  I had to look hard, but there were a few professors that taught C in some of their classes. I made sure to take these classes just to learn it. Life was good. Here was a powerful language, as bare metal as you can get without the tedium of assembler.  I loved it. I liked assembler as well too, but my first few jobs were mostly C programming.

As I was making my way through the professional world, I stumbled upon Perl.  I was using Unix (many flavors of it), and starting to use Linux, so naturally Perl was available.  I really like Perl. It is eclectic, malleable, and just plain fun. Perl is a great combination of Bash, Sed, Awk, and Regular Expressions (RegEx). It is fantastic for data processing, management, and reporting (it is a reporting language after all).  I used Perl for many different projects over the year, many quick and dirty, some larger and complex (one is about 40k lines, and as far as I know still in use as of this writing, close to three years after I left that contract).  I watched as the community behind Perl grew and strengthen with support libraries, and web sites over my career.

During this time some new languages came on the scene, they vied for traction in the competitive language landscape.  C++ was everyone's favorite for a while, it was OO this and OO that. If I heard Polymorphism one more time... anyway it was annoying. C was more utilitarian, clean, sleek, and you could easily shoot your foot with it, spectacularly in some cases. "Free the mallocs".

Java is a leviathan of a language. Java started out as a pretty straight forward language and concept. Java lumbered along for years growing in complexity, and promise. Many people bought into it, went all in with it, and only seems to have caught on from sheer volume.  Java really is the Ada of our time in terms of complexity. Java is "popular" because it is ubiquitous. I know of very few programmers that actually understand the full power of the language.  While Java was full of promise, its size and complexity make it hard to use properly. With each release subtle changes can wreak havoc with existing code bases. I know programs that are had coded to run with a specific version of Java, making upgrades a nightmare, and security problematic. Java, while popular, performs a huge face plant while trying to deliver on all of its promises.

Python is another newish language, although I have more respect for this language even with the very limited exposure I have with it. I generally like it, and it would seem that the same community development that I saw in Perl growing over time is in full swing behind Python now.  My son learned Python as a programming language in college, so I know it is popular now.  

Go! is somewhat new on the language landscape, and I have to say with the little I have played with it, I like it.  I really like the way threading/context switching is setup.  If I had more time I would definitely hit that language.

Alas, poor Perl is waning.  I talk about using Perl with the young "whipper snappers", and they quietly dismiss it.  I know, I know, Perl has many flaws, it yearns to be OO, but it, like Linux, it is a work-a-like, not actually the real deal. But for sheer power on the command line, and in scripts, it is hard to beat.  I have heard it referred to as executable line noise (modems, remember line noise?).  It can be, but that is one of the many reasons it is endearing.

It is a bummer to watch the slow motion demise of a language that I spent much of my career using.

Now, where did I put that ORA Python book?