♠ Programming ♠
This slightly technical article outlines the various languages, protocols, data formats, and storage engines we use whilst developing websites. If you want to know about what Content Management System (CMS) software we use instead, you should read this instead. If you’re hardcore geeks like we are, you’ll want to know more about our preferred server and development workstation configurations.
Preferred Technologies
The development team at Dragonfly Networks primarily use the Perl & PHP programming languages. We also rely heavily on the MySQL relational database management system.
Also, we rely heavily on a select group of languages, protocols, and storage engines such as:
- HTML/CSS
- RSS/Atom
- XML/RPC
- REST
- PostgreSQL
- SQLite
- AJAX
This is of course not an exhaustive list, but it’s a good start. We are not opposed to using other languages, although we’d obviously choose our preferred languages over others if we had our druthers.
Why We Use Perl (and PHP)
People who are really good at their jobs obsess over two things: their tools, and their workspace. Artists obsess over paints, brushes, and studio lofts; carpenters obsess over power and hand tools and adhere (whether by choice or by virtue) to standard building codes; cooks obsess over their knives and making sure their kitchens are immaculate.
As website developers and information architects, Nick and I need to know our workspaces, blueprints, and especially our tools.
We obsess over them, because we want to be really good at our what we do.
We’ve built hundreds of sites over the years, from simple HTML/CSS-based sites, to sites running on the PHP-based Zen Cart e-commerce software package, to hand-coded, 100% custom-tailored sites, written line-by-line in Perl, to testbed “just for kicks” websites that incorporate a baker’s dozen different technologies, and finally, to heavily engineered, commercial websites (some of which were perhaps slightly over-built, even) on the powerful and flexible Catalyst MVC framework, and we’ve tried to learn something from each project.
So our toolkits and workbenches have become increasingly important to us.
For programming, I am a die-hard Perl aficionado who uses PHP as an alternative as it has become ubiquitous on the web. I’ve come to enjoy PHP programming a bit more over the years as the language has grown to embrace concepts such as object orientation, database abstraction, MVC frameworks, and more, and even prefer it to Perl in some cases, as PHP makes it easy to quickly write programs using advanced web technologies like AJAX and RSS.

We like PHP real well
So why do I prefer Perl over PHP? I can’t really make a better analogy, so I’ll quote one of my fellow programmers here:
PHP is like buying a chef’s knife at Wal-Mart. You can create a 5 star dish with it, it cuts perfectly fine, but it doesn’t inspire the same passion that a Shun knife does.
- unexpected, from Y Combinator News.
So what’s the technological equivalent to a Shun knife, in the world of professional programmers? Some might say Ruby, others might say Python. I say it’s Perl.
Precision-forged high-carbon stainless-steel blade; holds a razor-sharp edge…
- from Amazon.com
(It’s interesting to note that the knife in question is $114.95, but let us set aside such matters for now, and return to the topic of programming languages. And no, that’s for a single Shun knife, not a complete set.)
It’s true that a lot of people prefer Ruby or Python to slice ‘n dice their way through a project. And, truth be told, I’ve dabbled in those languages, and they are indeed fine cutlery so far as languages go.

Perl is nice if you like to read a lot.
But Perl has been described succinctly as:
…the Swiss-Army chainsaw of programming languages…
which may sound messy, but believe you me, it’s more than enough power and precision than I’ll ever need in my kitchen.
And, a better description to fit our kitchen analogy would be to say “Perl is the Swiss-Army Cuisinart™ of programming languages.”
But, that’s too wordy, and also, it is easier for me to get a little bit Zen and simply say this:
“Perl is the kitchen.”
Which reminds me of a joke:
“What did the Buddhist say when he went to the Pizza Shop?”
“Make me one with everything.”
It slices, it dices, it makes Julienne fries
The beauty of Perl is found in the Comprehensive Perl Archive Network, which consists of thousands of user-contributed modules to interface Perl with countless technologies, and it just keeps growing, and growing, and growing.

the Comprehensive Perl Archive Network
Some of those modules are simple attachments for my Swiss-Army chainsaw, like the Net::Twitter module, which makes interfacing your Perl program to Twitter a cinch. I was recently able to write a short auto-Tweeter program nick-named Parakeet, which posts random jokes, fortunes, song lyrics, and more to my Twitter account.
With the Net::Twitter module, that program took me under twenty minutes to write, and ever since then my Parakeet has been singing out little 140-character haikus, which are received by not only those people following me on Twitter, but also gets posted to my Facebook account.
A simple example like that shows that the right Perl module can be a ♦diamond-edged♦, high-speed Dremel™ attachment.
I used my Net::Twitter “attachment” to give my little Parakeet a gorgeous little voicebox to complement her iridescent, feathery glow.
What if I don’t need a Chainsaw? What if I need a Melon Baller?
There’s probably a module for that.
So, If Perl is So Great, Why Do You Use PHP at All?
Some of the world’s finest software is already written in PHP.
And sometimes, we use that software.
And sometimes, I need to extend that software to make it do something it doesn’t do “out of the box”.
So I use PHP.
(That’s not the whole story, though; the truth is, I’ve been using PHP for over ten years now, and I like it Real Well. But it’s come a loooong way since 1998, and back then, it simply couldn’t compete with Perl.)


