I was chatting with a P6 person the other day (who can remain
nameless unless he chooses to identify himself). He made the
following observation:
Every time we're lambasted for how long Perl 6 is taking I remind
myself that Short Term Thinking is the norm now.
I think there are a couple of reasons for this lambasting, and the
more important (and remediable) one is lack of education on the part
of the baster. They don't understand :
(A) how hard it is to design a language; and,
(B) how much progress really has been made.
I'd like to propose that there be a single web page (or maybe a small
wiki, but one page might be preferable) somewhere that could be
pointed at to show just how much has been done. It could list all
the CPAN modules in the Bundle::Perl6 module (are those all Perl6
modules explicitly or are some of them support framework?), all the
sites where Pugs has been deployed in production (I gather there are
some?), any non-toy / non-arcane projects that are being worked on in
Perl6, etc. I suppose it could also list the various language
implementations that are targetting Parrot, but that's much less
impressive to the common hacker who just wants to get work done, and
not terribly relevant to the question "Why is __Perl6__ taking time?".
Also, the page should talk about why it is difficult to do what is
being done. Ask the reader questions: "You want to <support
continuations / have coroutines / embedd yacc in your language /
whatever>. How do you do it?" Then offer up an analysis of various
design choices that were considered and rejected and why. In
particular, since the average person probably thought of the naïve
answer, shoot big holes in that one. That way they sit up and say
"Oh. Hmm, I guess this really is kinda hard."
I see this as a small effort towards community outreach, where
"community" is both the existing Perl people and the wider Internet.
I volunteer to create the page, host it, and maintain it, but I would
need help gathering the information in the first place. And if the
Perl6 community doesn't think it's a good idea, then I won't bother.
Comments?
--Dks