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...
Marc Lehmann never claimed that there were 0 lines of perl code in the world, but instead 0 lines of perl 6 (the compiler/language system etc.).
Please don't spread this myth, it would be easy enough to clarify that by asking him instead of spreading FUD.
Posted by: | 2006.03.14 at 01:14 AM
Actually, even worse, most of the myths mentioned in the Juerd talk were not mentioned by Marc at all. He never claimed perl6 would be an aprils fool joke, nor that "_" would be the concatenation operator, that perl6 would by closed development, that perl6 will depend on parrot and most other points mentioned in the Juerd talk.
If the perl6 developers cannot stand criticism by arguing by facts and reason. they should really be quiet about it, instead of spreading lies about what other people said or wrote, without even trying to get it right.
I am rather disappointed with this behaviour, and I think soemthing is really rotten with perl6 if the devs need to resort to this kind of fudding.
Posted by: | 2006.03.14 at 01:22 AM
Hello person who is too lazy or scared to type their name,
No matter how you look at Marc's "there are 0 lines in Perl 6" -- examples or implementation, he is definitely wrong. There is Perl 6 in implementation code, unit tests, examples, and modules.
Also, my talk wasn't JUST a response to Marc's talk. I have expanded an original talk, and added some slides to it. Audrey mentioned in her article that it was an *updated* talk.
Please be much more careful before posting silly remarks that state false information. Thank you!
Posted by: Juerd | 2006.03.14 at 01:46 AM
I'm terribly sorry. I should have been more clear -- Indeed, the first parts of Juerd's slides was already written months ago.
I've updated the phrasing of "extended his 'Perl 6 Myths'" in the main body to avoid confusion, and also clarified the "0 lines" statement.
However, there are more than 0 lines of Perl 6 compiler and runtime written in Perl 6; Prelude.pm alone is 281 lines, and the Pugs::Compiler::* suite is steadily growing with more self-hosted Perl 6 code. Not to mention Test.pm and other modules that forms part of the Perl 6 runtime.
Or did I miss Marc's original point? Was it that "Those are parts of Pugs, not part of Perl 6" ? I wasn't there, but I'll ask Marc about it. Thanks for the feedback. :-)
Posted by: Audrey T | 2006.03.14 at 02:00 AM
I am neither too lazy nor too scared, but I do request that my privacy is respected.
Anyways, this is silly. Of course there are no lines of the perl6 compiler existing yet (pugs, and this is claimed by lots of people) is just a prototype, which Marc explained. If you disagree with that, then that should be stated, instead of a completely wrong claim. Putting words into others mouths is very bad practise.
In fact, the "several outdated assertions are true" are simply not true.
And:
"Please be much more careful before posting silly remarks that state false information."
Thats pretty strong given that this blog is the thing that states false information. And on top of that, gives a very wrong impression. Its a perfect example of FUD.
And anyways, don't hit the messenger, I just clarified that this blog misstates facts badly :(
Posted by: | 2006.03.14 at 02:02 AM
If the original point was "Those are lines in Pugs, not Perl 6", then the actual point would be "Pugs is not Perl 6", which would actually be "There is no official Perl 6 implementation yet".
And that, indeed, would be correct: none of the current implementations is officially blessed by Larry Wall as the one and only true Perl 6. However, Marc didn't comment on that. Instead, he focussed on there being 0 lines and that work wouldn't have begun. And that's just not true. There are many people who work on Perl 6, and there are thousands of lines of code.
If the point was to say that there is no official Perl 6 yet, then it would have been easy to make it literally, and I would have agreed. But Marc's approach was fuddy and about lines of code.
Posted by: Juerd | 2006.03.14 at 02:05 AM
Audrey: next time you’re in Köln, feel free to give the cologne.pm a holler! (We’re not dead, even if the website is.)
Posted by: Aristotle Pagaltzis | 2006.03.15 at 10:37 AM