I spent all day thinking about marketing. Blame VM Brasseur.
I think a lot about marketing my business. Today I think also about marketing Perl. (Sometimes what's good for the latter helps the former.) I worry sometimes that Perl misses opportunities to find great new developers and wonderful new users because it's not always clear how or where or even why to start.
I worry sometimes that the mean time between beginning something and getting to that first "I am awesome!" moment is too long. (I once read a book proposal about teaching programming to kids using games which promised that within a week they'd be able to perform ASCII character animations.)
I worry that the excellent tools of the modern or enlightened or CPANified or renaissance or whatever you want to call it Perl of 2011 have a learning curve too steep. After all, when someone like Schwern says "If I have to learn how to use a completely new build system just to send you a patch, I just might give up!" you should pay attention—not that it's wrong to create and use great new tools, but that adopting them has a non-negligible opportunity cost.
Then I have a conversation with Michael Buffington who tells me about this idea he and Rael had to solve hard problems in multi-person calendaring by making a Battleship-style game for arbitrary other users to play in order to find the maximal good scheduling solution. ("Battleship isn't the right model," I told Michael. "But it's almost right." I told him my better idea, and it just might work.)
Games, hmm? If the wisdom of crowds can help solve grotty OCR problems, can you take other computationally difficult problems and solve them by turning them into games?
If so—if you can convince people that they're playing while they're actually doing real work of some sense or another—can you use a similar mechanism to help them appreciate that as they practice doing real work, they're achieving small "Hey, I just did something awesome!" moments?
Could these problems solve themselves? Could gamification help market Perl? Ben Trott and I once had a silly contest far too many years ago to see who could answer the most questions on PerlMonks to reach an artificial milestone.
Maybe new contributors deserve stickers.
Maybe finally getting your PAUSE ID should earn you a little badge, or filing a unique perlbug could post to your Facebook wall, or convincing ten of your colleagues to download and read the Modern Perl book might merit a new background for your Identi.ca or Twitter page.
Then I realize that I grew up in the Puritan-infused America and specifically the Manifest Destiny rugged individualist fierce self-reliant western United States, and then I start to think that maybe gamification is what you do when your busy work isn't compelling enough on its own for people to enjoy themselves in what they're doing.
After all, sometimes I still feel like I'm on top of the world when I hear about a great new distribution which will change a little piece of my world, and I have it installed and working thanks to the great CPAN infrastructure and the SYNOPSIS section and CPAN testers and all of this wonderful ecosystem and, in ten minutes or less, I can do more with less code, and, like I said, I started far more many years ago than I want to admit.
Maybe somehow we can help show other people that if the shortest distance between their problem and a good solution is Perl—and it often is—they can share that same experience. No shiny tricks. No slight of hand. No slimy psychology putting us all in Skinner boxes. No empty calories of gamification or hypermasculine chest-beating or unprovable appeals to the artificial standards of pseudocode readable by anyone. Instead, it's just good code you can be proud of having written because it solves real problems and stays out of your way.
I can live with that.
Overall? chromatic FTW! "empty calories of gamification"? Way to summarize much of the fluff of our current internet world. (IMO)
However I have a small gripe and it is, "...it's just good code..."
Code? It's great. I love it! Huuuuge fan! Massive! Still... Sometimes the shortest distance between a person's problem and a good solution doesn't involve good code but good documentation and outreach to the people having the problems.
While I support and embrace "good code you can be proud of having written" even more I value "good todo|manual|wikipage|perldoc|blog|etc. you can be proud of having written."
Code is awesome. Code plus supporting communication is unstoppable. You naturally know this already, else you'd not have written the book. Your readers may not have internalized this to the same extent quite yet so I just wanted to toss this comment out there to help reinforce it.
Code and communication. It's chocolate and peanut butter. Whole greater than the sum of its parts and oh, so tasty.
You doubled the scheme in the VM Brasseur link and broke it. (Feel free to delete this after fixing.)
You said "[m]aybe somehow we can help show other people..." -- step one rethinking Perl marketing is to be really clear who you mean by "other people". Step two is understanding the problem Perl solves for them. Without that, I think most marketing efforts are just noise, not signal.
Marketing CPAN or latest module X is marketing features, which is why it's not terribly compelling.
Examples from other languages: PHP ("easy deployment") or Ruby/Rails ("gimme a decent website quickly").
On that latter point, yes, you can do that with Perl, too, but Rails seemed to be "the one true answer" that drove Ruby popularity, whereas for Perl, there are too many frameworks and too many other existing associations. CGI program circa the mid-90's might be the comparable parallel.
There are many people very successful spreading the world of Perl and converting people for making more Perl power. I myself cared about DuckDuckGo and so show people that we have a real full power product written in Perl and driven by a one man, to show the power Perl reveals to people. General it is important to "App"itize Perl, you must show the people that they can do stuff and solve stuff with Perl. There are many things to care about and many people on Perl community are already successful doing lots of marketing. I think its important to also talk to those people before again people do independent marketing which doesn't bring us forward (I dont say names......).
Exactly. Show off Perl as a good solution to an existing problem (when Perl is a good solution). Don't merely show off Perl for its own sake.
I don't have any good answers to Perl's marketing problem, but did write a post last month about my experience as a new Perl developer. I would be curious to see how my experience differs from others and how other non-Perl development teams perceive the community. At my previous job (.NET shop) it was viewed as a dead language.
http://www.curmudgeonlysoftware.com/2011/05/23/perl-from-the-outside/