On Thu, May 27, 2010 at 02:33:53PM +0300, Gabor Szabo wrote: > When I teach Perl people keep asking me why do all these > people spend their free time on writing modules and > uploading them to CPAN? > > ... > > This whole thing makes me wonder, why do *you* really contribute to CPAN?
Most of my code I write because it scratches an itch. It's code I want to use. Releasing it means that other people will help me improve it and hopefully they'll run into the bugs before I do. Some of my code I write because it helps other people who've written (or are working on) code that I want to use. Letting them use it helps them to help me. CPANising my code makes it dead easy for me to install everywhere that I need it, what with automatic dependency resolution and whatnot. Releasing code is good for my career - it lets potential employers see that yes, I really do know what I'm doing, and I'm not just one of those people who can write a good CV and spin a good line of bullshit in an interview. Somewhat related, contributing services to the CPAN community, as well as contributing code, is also good for my career. It means that my name stands out from a list of job candidates. I reckon that's a good return on the twenty or thirty hours that I've put in to CPANdeps and cpXXXan. (The paypal begging bowl on the websites just about covers the hosting costs. But only just about, so donate early, donate often!) Those two also, apparently, make me a "CPAN and testing expert" (hah!) which has led to a coupla little consluting gigs on the side as well as being useful in getting my current job. > Is it for the fun of writing code? - You don't need to distribute your > code for that. I wouldn't write anywhere near as much code in my spare time if I didn't enjoy it. In fact, if I didn't enjoy it, I'd have remained as a nuts n bolts engineer. But if you don't need to distribute your work to enjoy producing it, why do musicians play gigs? Most of them *don't* make a living out of it, the fifty quid they get from playing in a pub covers petrol, parking, baby-sitter, and maybe hiring a rehearsal room some time in the week before the gig, but unless you play a *lot* of gigs it won't even pay for your equipment. They gig because it's fun. > Is it to participate in the community? Not really. I was in the community before I became a somewhat prolific CPAN author. > Is it to get a virtual pat on the shoulder (or a beer in the bar) from > other programmers? Hmmm, it's hard to be honest when analysing one's motivations. I suppose I have to say yes, to a certain extent. > Is it to make other people happy by letting them do their job easier? Not really. That's just a nice side-effect. I release my code to make *my* life easier. That it helps them too is just a bonus. > Is it because you feel obligated as you are using other peoples code > free of charge? Not really. While I have released (and in turn I use) lots of perl stuff, I also use free operating systems, other programming languages and all kinds of free applications without contributing much back at all. I rarely even bother contributing bug reports. -- David Cantrell | London Perl Mongers Deputy Chief Heretic Irregular English: you have anecdotes; they have data; I have proof