I started out my eternal noob web development ventures with Python, because that’s what most mapping projects are popularly known for.And I am absolutely in love with Python and R programming for data sciencey stuff.
My very first programming textbook purchase from a book sale was a reference book about old HTML and Perl in 4th year high school. I was young and I only fiddled with the HTML part and completely yawned at the Perl chapters. A decade and a half later, I gave away the book before my wedding thinking that it’s an obsolete piece of reference book, only to find out late last year that I’ll actually be handling a large Perl project.
If only that book can talk, it would have been so smug at my impulsiveness of giving it away so soon. I feel so stupid for giving it away. Fortunately, I was able to scramble for more online resources. I had so many resources that it led to analysis paralysis for a few weeks, but I managed to get through it thanks to some video tutorials at Udemy.
I took the challenge. I inherited a code base written entirely in Perl. Honestly, I wanted to cry during the first month (January) of getting the hang of things because it’s completely different from the ease of using Python. I encountered problems like missing a semicolon and having to debug for almost three days. It’s crazy. Can you imagine missing a symbol and working your ass out trying to find out what caused the bug? It’s like finding a needle in a haystack! And that’s basically the daily life of having typos in your Perl code.
But I am glad that I did not give up on it too easily; as it turns out, Perl is king when it comes to regular expressions. It’s wicked fast, a mean machine when it comes to text processing capability. I was amazed in spite of my Python and R biases.
I remember my old web dev guru (Sir Ranel) telling us once that it’s not good to get too attached to a single programming language or framework; at this phase of life, I was practically weaned away from my comfort zone in Python and was catapulted to learning from the deep end. It is good to be thrown in this situation. Keeps me on my web development toes. I am grateful.
Some people say that Perl is an ancient programming language. As such, the consensus is to succumb to modernization and make the Perl site into a Python or PHP-powered one. But the one caveat with my current project is that it will take ages to migrate the entire Perl code into Python or PHP. According to someone I work with (a very experienced dev from overseas with lots of magic coding skills), it will require an estimated 500 developer hours to do so.
I don’t have that much time given my revamp goals. So instead of forcing 500 developer hours into my limited time and capacity, I decided to take the road less traveled: adjust my skills instead and learn Perl, work my way backwards in this semi-hieroglyphic code, and (make serious attempts to) modernize the web app in its native coding language. I was in “thinking out of the box” introspection session when I decided to do this.
After weeks of self-loathing and directionless aiming at finishing the numerous tutorials online, I finally made some progress today so I am posting about it. I am also lucky enough to have my nerd friends around to cheer me up. It had my Python dev friends laughing at my project, but they continue to cheer me on after laughing about the hilarity of my circumstance (true friends!). I have every intention of going back to Python and R. But for now, it’s really Perl on the top of the list.
I am starting to warm up to Perl now, enough that I can openly write about it. There are very few people trying to learn Perl at this time and age (insert more outsider sniggers in the background), so I’d consider it a life milestone for the year if I add this to the languages that I have adeptly worked with. It’s in the ranks of “I cracked a relic!” and lived to tell the tale.
There are many other things going on. But this is probably one of the personal projects taking up the bigger chunk of my time. I am really excited about how this will turn out. <3 <3 <3