I have safely arrived at Leo's place, and started working on the Pugs.pm project in earnest (which I'll write in a separate journal entry).
The first day of GPW started at the next morning after OSDC.il. Because there were no overnight flights between Tel-Aviv and Düsseldorf, I had to arrive on the second day and hence missed Leo's Parrot talk.
When I arrived to GPW, the atmosphere toward Perl 6 was remarkably different from OSDC.il. On the first day Marc Lehmann delivered a talk "Was stimmt mit Parrot und Perl 6 nicht?" (What's wrong with Parrot and Perl 6?), which covered many aspects of shortcomings in the past few years of Perl 6 development.
Although I missed the talk, Juerd kept a play-by-play log in #perl6 and noted a few misleading assertions, such as there are currently 0 lines of Perl 6 in the world -- by this, Marc meant "0 lines of Perl 6 compiler and language system", an understandable but outdated claim. Juerd then extended his "Perl 6 Myths" slides to address some of these points, and presented it on the second day as a lighting talk.
As for me, I delivered the same 4 talks, but merging Mariner into the end of Pugs and shortened Haskell to 20 minutes, due to time constraints. It seems that "Pugs can use CPAN modules" and "Pugs will compile your Perl 6 modules to pure-perl5 CPAN modules" are the two pieces of news that really changed the audience's perspective.
Consequently, I engaged in long discussions in the hallway track with many people, esp. Nicholas Clark and Andreas König. As I didn't get the conference VPN going until the last few hours, and the hotel has no internet either, only a few sketches remained of the points I raised during those discussions:
- The fastest way in solving Perl 5 regex's leak/reentrancy problem may be to switch to PCRE altogether.
- With #perl6's help, putter++ and I did implement this shortly after, available in CPAN now as the re::override module.
- The GNOME bounty hunt model, where coporations and individuals can place rewards on getting bite-sized things implemented, may be a nice model for infrastructural Perl developments grants.
- To me, it seems like a nice complement to the current implementor-submits-proposal model, where donors couldn't specify the use of their donations.
- The darkpan problem, where large bodies of Perl5+XS code exist in private organizations, is an obstacle in Perl6/Parrot adoption, because we can port what's on CPAN, but not what's off CPAN (hence "dark CPAN" as in "dark fiber"). This problem was raised as early as 2003, with the Ponie project proposed as the solution.
- However, Pugs offers another solution by compiling Perl 6 to perl5, allowing projects to migrate to Perl 6 in a per-module (or even per-block) basis. Of course, this means suboptimal performance and functionality on threading/method-call/bytecode-loading etc, so companies might be eventually motivated to compile Perl 6 to parrot -- and hopefully provide more resources to the (currently understaffed and stalled) Ponie project.
- The Sixpan prototype (with .jib extensions) can be cleanly hosted on the same CPAN, with people uploading Perl 5 and/or Perl 6 modules with the .jib extension -- or even reuse the .par extension and embed dependency information in PAR files.
- All we need is a separate indexer, and a canonical way to load multiversioned modules in Perl 5 (i.e. a rationalized only.pm that supports the Packaging Spec), and it will solve the "I upgraded CPAN modules, now all my scripts break" problem for good.
- Andreas also noted that we shouldn't be shy to upload Perl 6 extension modules, even though there are only 44 of them in existence; we can reuse Perl 5 modules, just like Perl 5 modules did "require 'getopt.pl'" at first, and when CPAN first started, there was only 35 modules. It's certainly a warming thought. :-)
- Also, this reminded me of three years ago at CPLAN meeting, Andreas also encouraged me to not get depressed on the then-slow uptake of Module::Install, as when he first announced ExtUtils::MakeMaker, nobody would switch to it until Andreas started writing Makefile.PL for their modules himself, and contact the authors one-by-one to convince them of the merit CPAN and MakeMaker.
After GPW, I went to Köln for three days, and very much enjoyed the Reality there, accompanied by Lugwig Wittgenstein: The Duty of Genius, a nice biography book borrowed from gaal. It's been 8 years since I pursued Wittegenstein's train of thought in earnest, and this time it brought me a lot of insights into Perl's way of language design. But that's another journal entry for another time...

Recent Comments