On 2008-02-02, mncharity asked on #perl6 why people don't contribute more to the Perl6 project, and suggested a survey to find it out. I think a survey is more useful if the answer is written text, instead of a choice from pre-defined alternatives (which usually reflect the bias of the questioner). So here's my personal take on the question, posting here instead of responding in the channel, because I feel that IRC isn't really well-suited for an elaborate discussion.
I've been following the major announcements around Perl6 since the project was started. I like the "human-friendliness" of the design is (just like Perl5, only more modern). But I'm not a contributor to any Perl6 project, and it was actually just last week that I wondered if I might want to get involved. That's when I started seriously researching the state of the Perl6 effort.
What I'm writing here is a personal take on what makes it difficult for me to contribute to Perl6 (or even somewhat difficult to want to contribute, as you will see). My opinion is most definitely ill-informed, but perhaps valuable despite that. After all, my first impressions could be similar to other people's first impressions.
So here's a list of stumbling blocks I encountered, or worse, things that made me question whether the whole Perl6 project is going in a direction I want to support. As I said, this is all very personal. In no particular order:
Unmaintained websites. You almost get the impression that Perl6 is a disease that kills websites. It's not a huge problem, but don't downplay it either. There are so many websites giving outdated (or outright false) information about Perl or Parrot to be found on Google, it's hard to figure out what the correct information is. Dead websites also have this aura of "dead project", at least to the casual observer.
Unclear project boundaries. Getting an overview of the Perl6 project landscape is very confusing. I'm actually all for having several competing P6 implementations, with the common parts (specification, language test suite, grammar) factored out into separate, independent projects. Instead, bits of these common parts seem to be scattered across Parrot, Pugs and who knows where else. What's also missing is a website that gives a two-sentence summary of the purpose of each project, and gives a link to an up-to-date website for each one. (It's impossible to give this two-sentence summary as long as the the projects have these fuzzy boundaries.)
(Edit: Take the following three with a grain of salt. As subsequent discussion on #perl6 shows, I have a somewhat incorrect overview of the Perl6 landscape. See first two points.)
Parsing Perl6 requires Perl6. (I'm not sure about this.) It's not a bad idea to define the Perl6 grammar as a Perl6 grammar, even if only as a spec, and to make sure that Perl6 can parse Perl6 (for example I don't think that Perl5 can parse Perl5 with any sane effort). But what does all this Perl6 code do in STD.pm?
Over-ambition. Why does every single P6 project try to do "too much"? (I know this is entirely subjective.) Pugs is not only Perl6 interpreter, but also a compiler with multiple unmaintained back-ends. Parrot will be the ultimate runtime, and to that end has introduced (and deprecated) more intermediate compiler formats than it ever supported (non-toy) languages. In Germany we call that "sich verzetteln", which roughly means "trying to do so many things at once that you don't get anything done". (I don't know why we have such a succinct expression for this in German...)
The cult of bootstrapping. I understand why you want to use Perl to write Perl. But that's not the only path to "Christmas", and frankly, perhaps not even the most promising one (initially). Also, a non-bootstrapped implementation could be useful in either case, so why is there no alternative project to write a straight-forward interpreter in plain ANSI C? That's what Lua did; making especially sure that compiling Lua is as simple as "gcc *.c". And look at how popular it is, despite being such a poor language.
I think it's a lot of little things that add to the perception that Perl6 is not going anywhere, and that this perception keeps potential contributors away who are otherwise interested in the language. So maybe the most important thing that the Perl6 projects needs work on is its first impression... or maybe there are more serious problems. That's what I'm trying to figure out.
Thanks for reading. :)
-- monomorph