Perl and that Dirty Word


To convince people to do something, you must first let them convince themselves that it is in their interest to do so.

Consider the first paragraph on

Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.

If your concern is "getting stuff done" and "not painting yourself into a corner", all "in time and under budget", that's compelling.

Compare that to the first paragraph on

Perl 5 is a highly capable, feature-rich programming language with over 23 years of development.

That's an improvement over the old, but the Python text is more compelling.

(I'm open to the idea of adding good summary marketing text to the homepage, but the entire site needs a theme overhaul. Anyone with Movable Type/Melody theming experience and some free time is more than welcome.)

When I wear my business hat, I usually do the copywriting for my businesses. This means the back cover copy and press release text and website blurbs for Onyx Neon books. This means the sales and marketing pages for Club Compy (site revision pending my business partner's new fatherhood of twins). This means even slogans and taglines such as find the right price for stocks.

I know techies have a visceral reaction to the idea of "marketing" whereby we pretend to be shocked, stunned, and even offended that money might change hands. Filthy lucre! The immolation of Croesus! How dare you suggest that people talk about what's important to them, you lousy spammer?

Perception matters.

Perl has some huge advantages over other languages. Not every advantage is entirely exclusive, but if you were to start a new project in Perl today because one or more of these advantages were important to you, reasonable people would understand:

  • Perl is ubiquitous. It runs everywhere.
  • Perl is stable. Well-written programs will continue to run with little intervention.
  • Perl has a huge ecosystem in the CPAN. Most of your work is already done for you—freely usable, modifiable, and well tested.
  • Perl scales with your problems. It's suitable for small, quick programs as well as powerful, big-business programs.
  • Perl is flexible. It lets you do what you need to do and stays out of your way.
  • Perl is reliable. It has a huge test suite, a regular release cycle, and copious documentation.
  • Perl is easy to learn. (I wrote and give away and have committed to producing yearly revisions of Modern Perl: The Book to make this bullet point.)
  • Perl helps you create great software, with plenty of wonderful tools and libraries ready to help. (This is where Task::Kensho, Moose, Perl::Critic, Test::More, et cetera come in. Note carefully the place within the list.)

It's easy to extend this list to get more specific when the situation demands (though we tend to get too specific too fast; Catalyst isn't necessarily interesting to someone who really wants Bioperl, while DBIx::Class has little obvious value to a harried system administrator). It's nice to have a good place to start, though. Python has it right in two sentences. Perl needs a short blurb at least that good.

(Remember to keep in mind that the goal is to help people convince themselves that Perl will solve their problems—or help them realize that it's not what they need, while still reinforcing the image of Perl we want to express.)


I agree that Perl needs marketing, though we have one more problem, the perception of outsiders that Perl is ... well what they think. I propose something more like:

"Powerful, flexible, safe and modern. Its not your daddy's Perl."

"Powerful", "safe", "flexible", and "modern" are good words, but they're not specific about what you can do with Perl. Specific things that people might want to do include "work more quickly", "integrate your systems more effectively", "see almost immediate gains in productivity", and "lower maintenance costs" are specific and they're specific from the point of view of people who want to get stuff done.

No disrespect to (and much, much credit to Leo and company for dramatic improvements over the past couple of years), but compare the entire front page to that specific paragraph. does really well in comparison.

The good news is that is in source control, so it's easy to submit patches with improvements. The hard parts are convincing people of improvements and finding the *right* improvements.

How about-

Perl is the original "very high level" language with the lowest defect
density, the largest amount of well tested, high quality third-party
code available for free, the best Unicode support of any language, an
ubiquitous install base, and the happiest developers. Perl is for
sysadmins. Perl is for HTML5. Perl is for bioinformatics. Perl is for
graphics. Perl is for you.

I realize the fuzzy term "very high level" language is open to
interpretation and happiest devs is anecdotal from an unscientific
Twitter data trawl. Some of the others would require citations (SDL
examples for graphics, etc). Still... why be shy on the objective
points like defect density and Unicode? Go large or go home, right?

I like the specificity and boldness!

Let me experiment with phrasing those as "Perl lets you do ____" and see what happens. (Put it in front of users by telling them the benefit to them and let them sell themselves on it.)

Remember the line from the Camel. "Perl is a language for getting your job done."

Again, I think most people know that Perl is useful. Read reddit, the marketing problem is that people think it isn't usable for a modern project. I picked a few words more-or-less at random, but I think its important to emphasize modern, clean, large-scale and most importantly that its not what one thinks.

I'm sure I don't need to mention to someone who writes copy, but part of the beauty of the Python statement is its brevity. I like the sentiment in Ashley's comment, but its too long. Perhaps a rotating banner saying "Perl lets you do X" which changes on refresh and links to some module.

Just remember why people like Python. Its modern, clean and readable. We know that Perl can be that too. Lots of people know about CPAN. They also know about Perl's get-it-done attitude, but that combined with Perl's reputation as write-only scares them. A tag line should convince them otherwise.

I know I'm pretty low on the Perl totem pole, but thanks for listening to my thoughts.

@all_commenters: you're missing the point.

"Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs."

Keywords: quickly, effectively, gains in productivity, lower maintenance costs.

This is marketing to the management, not to programmers. If you want to see Perl used more, give its advocates arguments for convincing management to approve it.

Don't just look at the front page of, look at the whole website and the ecosystem surrounding it, which appears specifically designed for encouraging new people to learn and use the language and to give them the resources for doing so. Same with Ruby. PHP isn't so great, but then I don't think you want to be emulating them anyway!

In contrast, seems clunky and outdated, with few decent tutorials, and even contradicts itself e.g. and seem to disagree about the total number of distributions/modules that are available.

Marketing for Perl is absolutely vital. Other languages have it, and there's also lots of negative marketing about Perl out there, too.

Your book is an excellent contribution, but much more needs to be done if you want Perl usage to grow again. Perl needs new people.

Well, I don't know how to sell this to managers, but when I am programming Perl I am happier. And when I am happier, I am more productive. And happier ;-)
I guess - and fear that this will not sell to managers at all - that I am happier because Perl lets me do things in more than one way.

On the other hand everything can be sold positively. So certainly somebody with terrific knowledge of the English language will coin the right phrases to make that camel a market place rock star.

Interestingly I think the main point is that the Python site talks about the value the reader gets out of Python while the Perl site talks about Perl.

As I read more and more about marketing, it is getting clearer to me, that the reader does not care about me or my site (or Perl in this case). The reader cares about his problem and wants to know that s/he can find a solution to this problem on the site (or using Perl).


Don't tell me about Perl. Tell me what I get from using Perl.

I've always liked the phrase: "Perl makes easy things simple and hard things possible". Don't remember who coined it but I've certainly found it to be true.

Perl: Thousands of tasks are already coded for you. The solutions are waiting at CPAN for your download and use.

That's got to be included. is just as fugly as

Which screams out "opportunity" if you are in marketing. All technical points raised are very useful in exploiting this opportunity.

I also agree with previous comments that is all about introducing newcomers. Fundamentally thats what have python a leg up, their "one true way to do things" rather than "lots of ways to do things, many are bad". This is great for beginners.

My 2c...

1. a list
2. perl foundation hiring a PR firm

perception is reality when all a person has is perception.

Oh ill throw in a third cent, that is that though you can fork on github (which i have and submitted patches) - its mason code makes setting up your own sandbox very hard. I literally just winged contributions.

Besides the improving the introduction, I also believe having a clear format helps.

1. A good introduction. This is just a draft.

Powerful, easy and reliable Perl allows you to leverage the power of it's diverse community on an system in any field quickly.
(Yeah could be better).

2. Ruby and Haskell have a try option available on the home page so the user can play with the language before any install or configuration is required. Also try ruby I think this would be great and can instil the preferred perl programing style right from the begining.

3. A clear "Next Steps" section. So how to install, clear unbiased advice on an editor and an accesible online tutorial for a beinner/intermediate/advanced user.(Or links to etc). The python tutorial is a nice example of this.

Hi djzort,

Regarding - there's already, which is an open and archived mailing list. Feel free to discuss marketing there, and I don't think we should fragment the Perl forums too much. Back when the work on TAP::Parser / Test::Harness 3.0 was in vogue, someone complained that there was a general Perl-QA mailing list, a general mailing list for TAP, one for the IETF TAP standardisation, and TAPx-Dev (and now there's also one for Test-More). has not been terribly active as of late, but it can be revived.

Regarding hiring a PR firm - that's an option, but it could be costly, and it may end up doing more harm than good, as marketing can be a double-edged sword.

It's been a while since I tried to work on the sources of the various * sites (they used to be on Subversion, and the webmasters did not appreciate creating DVCS clones, but now the process seems more open), so I cannot comment on it, but I'd like to try contributing to them again. For what it's worth, I have set up a non-offical site for Perl Beginners’ on and its sources are now in a Mercurial repository on and patches are welcome (though the offline CMS I'm using has quite a few dependencies.).

There is one extra thing that may need to be considered as silly as it seems. That is people like new shiny things even if there is nothing really different, your supermarket products are marketed this way all the time.

In this way Perl 6 may bring its own natural rejuvenation to Perl. However what do you do now for Perl5.

Is there a way to draw a line in the sand and somehow brand the Perl 5.16 release as new. Calling it perl 5.16 defines it to a new person as old Perl with a few bugfixes not too exciting.

More importantly it means that searching will bring up old perl results for answers relating to 5.8/5.10 etc.

Can we define it as "Perl 5 Modern", "Perl 5 Next", "PerlNG 5" etc. This would create an understanding that Perl has evolved and also create a new Perl search term that returns new Perl answers, Answers for a Modern Perl.

Just a thought.

I believe that the next step in marketing Perl, and a good direction for Perl to take would be this-

Perl makes easy things "very easy" and difficult things possible.
or even
Perl makes difficult things easy and easy things easier.

Perl makes it very easy to write a simple Hello World script, and learn the basics. But if I want to create a web page, PHP makes it easier.

Maybe we should make it possible to install Wamp, and run this.

     say "Hello World";

Modern Perl: The Book

cover image for Modern Perl: the book

The best Perl Programmers read Modern Perl: The Book.

sponsored by the How to Make a Smoothie guide



About this Entry

This page contains a single entry by chromatic published on April 6, 2012 11:49 AM.

-Ofun for Whom? was the previous entry in this blog.

Defending Against Its Dynamic Scope is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by the Perl programming language

what is programming?