Sunday, July 3, 2011

Parrot Weekly News for July 3rd, 2011

Welcome to the first edition of PWN. At YAPC::NA, long-time developer chromatic expressed frustration at the fact that Parrot as a community hasn't been effective in communicating the knowledge of its members. IRC, while great for immediate communication, doesn't lend itself to transparency for those who don't have time to hang out on #parrot 24/7 or to follow our irc logs. My hope for this newsletter is to make Parrot's development more transparent, even for those with only have an hour or two per week to keep up with Parrot. I also hope that this will serve as a common channel of communication for all Parrot developers in order to provide a basic understanding of what's been happening in Parrot and what's needed.

YAPC::NA

The past week contained YAPC::NA, a grassroots Perl conference organized by the Perl community for the Perl community. There were three Parrot-related talks given by kid51, dukeleto and me, and one Perl 6 talk given by colomon. There was also a well-attended Parrot/Perl6 BoF session on Tuesday and a hackathon on Thursday. The hackathon was largely focused on coding and didn't generate significant directed discussion.

kid51's 10 Questions

kid51 had a short talk in which he raised a number of important questions about OSS projects in general. He then proceeded to apply those questions to Parrot, with less than stellar results. He had some of good points, particularly that Parrot needs to become production-ready before it can be considered a true success, that Parrot needs to have a better-defined purpose and focus, and that the project needs to "get to the point". Asking tough questions isn't usually fun, but kid51 did Parrot a great service by honestly and directly pointing out some of the flaws of our community. I hope his feedback will lead to positive changes in the way we look at ourselves and the products we're producing.

dukeleto presented an introduction to the world of Parrot. His intent was to give Parrot newbies a high-level overview of Parrot, its community and its ecosystem. It was lighter in content due to being targeted toward less experienced audiences. Nevertheless, it was an entertaining talk for people who already knew Parrot and provided a novel metaphor for understanding VTABLEs. Once we're based on 6model, I look forward to seeing what kind of metaphor he comes up with.

I presented a talk on the state of Parrot just after dukeleto's talk. I covered developments in Parrot over the past year, some of the issues we need to deal with and what we expect the future to hold. The short version is that there are a number of problems that are keeping Parrot from realizing its potential, but I think we have it within ourselves to overcome them and to produce an exciting production-ready virtual machine with some novel and useful properties.

colomon gave a worthwhile talk about performing numerical calculations in Perl6, both in Rakudo and Niecza (pronounced "niecha"). The talk was a good display of how people are using code that's built on top of Parrot and Rakudo. As with all beta software, there were places where colomon ran into holes in the implementations of both Niecza and Rakudo, but the talk was hopeful and make me proud to be a Parrot hacker.

The Perl6 and Parrot BoF session was considerably more organization-focused than most attendees were expecting. Although the majority of attendees were from Parrot, Perl 6 (Larry Wall) and Rakudo (colomon) were also represented. A primary point was that Parrot need to get better at communicating communal knowledge among its members and users.

Someone also suggested an intriguing way of reframing participation in Parrot. Many of us developers work to scratch our own itches, but question "What would you be doing if the Parrot Foundation were paying you a salary?" provided a new way to look at how we manage Parrot and spawned a couplethreads on parrot-dev. For my part, this question provided the morivation for putting together this newsletter. I hope it will also provide a motivation for all developers to take a more complete view of Parrot.

Room For Improvement

In this section of the newsletter, I will highlight areas of Parrot that are ripe for optimization. Due to YAPC::NA this newsletter is already filling up quickly, so I'll highlight just one area.

config_lib.pir creates a hash that contains all data picked up by Configure.pl during configuration. It has more than 250 entries, the majority of which don't provide any useful information. Figuring out which entries in the hash are necessary and removing all the rest will help trim Parrot's startup time and make parrot_config a bit easier to sort through. If you're interested in this, drop by #parrot or parrot-dev and chances are good that someone will be able to put you to work.

If you see an interesting conversation on either #parrot, parrot-dev or #perl6, please mark it by saying "PWN". When preparing this newsletter, I'll search through irclog (moritz++) for any mentions of "PWN" and a summary of the conversation to the next edition of PWN.