Monday, January 10, 2011

This post is intended for students who've participated in this year's Google Code-In, specifically for those who worked on some of the tasks for Parrot. If you worked on another project, this post is still for you. Just ignore the Parroty bits.

When we Parrot developers first decided that Parrot would be participating in Google's new Code-In program (gci), I was quite skeptical. Most of our initial tasks were for translations and many didn't seem to me like they'd help Parrot as a project, especially since Code-In was a new (and untested) initiative. If you'd asked me what I though before the start of gci, I'd say that I had low expectations but would be glad if proven wrong.

I'm glad to say that the amount and quality of the contributions we've received from gci students has proven me very wrong. We've had a few low-quality results, but the large majority have been of excellent quality. Over the course of gci, we've added thousands of lines of tests and code, squashed lots of bugs and had several reported, and have increased our test coverage by about 3.5%, all of which which represents a great deal of work for a large project like Parrot. As gci progressed, we've even been able to bump up the difficulty of our "difficult"-rated tasks substantially to challenge our most ambitious students. Parrot is much better off because of the efforts of all of you.

But gci isn't what this post is about. Now that gci is over, you students will have the opportunity to continue hacking on OSS projects such as Parrot, but you won't be doing it for the artificial currency that Google has been kind enough to create. If you continue, you'll be working for the same reason any other developer hacks on an OSS; for scratching an itch, for the excitement of having people use something you've helped build, and for the ability to contribute to something useful that's much bigger than any one person could create.

The Parrot project will welcome your contributions, as I'm sure any other gci projects will also do. Google gave you a motivation to get over the initial hump of finding a project and figuring out a couple accessible things to contribute to, but now it'll be your job to keep going. Much of OSS development happens because people are scratching their itches*. I have mine**, and I hope some of you gci students will find your own itches to scratch too. Along the way you'll run into all kinds of roadblocks, from broken libraries to half-assed implementations to outright lies in documentation, but those are just some of hazards of building something new. The best you can do is shave the requisite yaks*** so the road won't be as bumpy for the next hacker and get back on the track to making something awesome.

I hope to see all of you continue to make contributions to Parrot after the end of gci. Your incentives will be different from now on, but they'll also become much more exciting. If you're interested and don't know quite what you want to do, we'll always try to help you find something awesome to keep you busy. Please stick around and keep on hacking!
Thanks,

Christoph Otto
Architect, Parrot VM

* This includes corporate-sponsored OSS development, where you get hired to scratch an itch. gci and OSS experience looks good when companies search for these kinds of people.

** My personal itch is to make a PHP interpreter on Parrot that can interoperate with other Parrot-based languages. Yeah, it's a big itch.

*** Yak shaving means solving problems to solve problems to solve problems, etc. You may end up doing a lot of that in Parrot since it's more meta than many projects.