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 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.