If I wanted to join the Oslo Perl Mongers for an RDF hackaton, Kjetil Kjernsmo asked me two months ago. We had met at the LAPIS workshop in Greece, where he showed me the open source work he had been doing. “Sure, I’d love to join”, I replied, “but there’s only a minor problem—I don’t know Perl!” Turns out there was nothing to worry about: learning Perl is easy, and the community embraces newcomers. Plus, the hackaton was located near a beautiful mountain landscape in Norway. Needless to say, I had a splendid week.
If you thought of Perl as the script language of die-hard old-school hackers, you’d be wrong—and so was I. In fact, the opposite is quite true: the Perl community is really alive and vibrant and the language itself is still under active development. CPAN, a network of Perl modules, currently counts more than 100,000 contributions and is still growing. Its fitting slogan is well known by Perl people: “stop reinventing wheels, start building space rockets”. One of those rockets is perlrdf, a library with RDF and Semantic Web functionality.
The plan for the Moving to Moose Hackaton was twofold: improving a new object system for the Perl5 core, and re-architecting the main RDF low-level API around Moose. Similar to other dynamic languages, Perl has a rather free object model, so you are free to choose how you do things such as attributes and inheritance. Moose labels itself as a “postmodern object system” and will likely have a big influence on the future of Perl.
The thing that struck me most is the openness of the community. Even as a complete newcomer (some fellow hackers had been programming in Perl for 20 years!) I felt most welcome. The week started with a hike to the Preikestolen, a nearby mountain cliff with a beautiful view. That gave all of us the opportunity to get to know each other better than by just spending computing time together. Also, it serves as a reminder that hacking yourself is the first step to achieve anything.
Programming-wise, we also made a big journey. I accepted the task of profiling the Turtle parser and optimizing the code for speed. In the end, the Turtle parser became two orders of magnitude faster. It became so fast, that I had to rewrite the NTriples parser to ensure it still outperformed its Turtle counterpart. Together with improvements by Konstantin Baierer, Toby Inkster, and Greg Williams, perlrdf has become at lot better in a few days time.