What I've lately been fond of explaining to friends is that "Perl6" is
the somewhat misleading name attached to Perl's skunkworks lab. It
develops, implements and tests various crazy ideas for new language
features, the best of which Perl adopts...
Yes, but no. But revealing.
Yes, a few ideas developed for Perl 6 have been added to perl5. And
there are some spinoff efforts, notably Moose. Yay.
But no, if Kelly had delivered a few parts instead of an airplane, that
would have been a total project fail.
But the perspective is revealing. "Perl (perl5) is us. Perl6 is them.
The only contribution they make to us, is coming up with crazy ideas,
some of which we adopt. Therefore we define them as our crazy feature
development lab." Even though that's not how the Perl 6 project
participants, past or present, have defined the project. Although...
the perspective does look something like that of the DoD/LM/etc
bureaucrats who try to starve and kill skunkworks, so maybe the analogy
works. ;)
I suggest the critical characteristic of the Perl 6 development effort
has been a dearth of developers. The lack of Perl community support.
There are others, like poor project management, the distraction of
Parrot, and a failure to retain good people. But mainly, almost no
developers.
For most of its existence, the Perl 6 effort has looked more like a
Factor or even a Slate, than like a pypy or rubinius, let alone a
python3 or ruby2. Has looked like yet another "let's make a new
interesting language" hobby project, with one or two principals, a small
weak team, and no broader support. With a similar "let's make a general
VM" project, loosely attached, but hogging resources. And some one
person projects on the side. To be fair, the other projects' support
started small (except for py3), and grew as the projects started
working, as it clearly would have with p6. And p6 specification has
received longer and larger participation than has its implementation.
And there have been two spikes of community p6 support, one for early
Parrot, and then for Pugs. But then rather than fixing administrative
and technical roadblocks encountered, people punted. Perhaps not
unexpected on an open source project... but no forks (but for Pugs,
perhaps Moose, and perhaps 5.12, and... well, lots of small
one-personish projects), and little collaborative community effort to
address the problems.
It would be interesting to see a detailed comparison of p6/parrot/p5 vs
py3/pypy/llmv/py2.x vs rb1.9/yarv/rubinius/rb1.8.x efforts. They all
developed a VM and JIT, created a new incompatible version while
continuing the old branch, and built a new implementation in the
language itself. Faced many of the same technical and social issues.
Perl being notable for its old complex language, crufty implementation,
the size of the language change attempted, and its lack of success so far.
Muling over the various efforts, two things seem particularly striking.
One, Dan's speculative VM experiment early picked up an imprimatur,
amazingly still widely believed, of "this is Perl 6". And absorbed a
startling portion of project resources, attention, and consideration.
The other efforts deferred such commitment until a candidate was at
least partially working. And Two, perl faced a much more complex space
of potential development paths. And got lost in them. There was never
any shortage of possible development paths to success. There are still
many. But there were never the focused developer resources to execute.
And still aren't. So the overall project had two parts, a hyperfocus on
parrot, and a slew of stymied attempts to find a cheap enough
development path to success. "Let's incrementally extend p5 re into p6
rx, and build p6 parsing and compilation on p5... oh, the p5 regexp
engine isn't reentrant (until years later), that's too expensive to fix,
given that the p5 community is having trouble even finding perlguts
maintainers, so punt, this isn't a viable path" was one of the first.
It happened again and again. The hairy and buggy state of perlguts was
repeatedly a critical problem. And there wasn't the project management
focus, or community, to break through. The other efforts had healthy
mainline development communities going in (unlike p5), providing the
resources to pursue a modest (relative to p5) critical path, and broke
off other components as "this is just for fun" (rubinius and pypy) or
"it's just a candidate until it's sort of working" (yarv, and pypy on llvm).
One other issue, the significance of which I don't know, is that at
least some perl folk have not merely given up on obtaining a p6
implementation, but more fundamentally, don't buy the p6 language
design. This too manifests as no developers, but isn't so much a
failure, as a vote of no confidence.
I think the developers of Perl 6 would do everybody a big favor by
renaming it. Calling it Perl 6 implies something that increasingly
doesn't seem to be true, and inhibits interest in and active development
of Perl 5.
And then? Is it any easier now than it was a decade ago to find people
to do perlguts maintenance? Is perl any less an increasingly obsolete
and dying language? (Seriously - Moose was having an impact some years
back, but I'm no longer following perl closely enough to know.)[1]
One benefit might be freeing up a near-term backwardly-incompatible rev
number. Are there any proposals about what to do with one? If so, one
could make the case in a positive sense of "just like 5.x has been
incrementing, as part of the slow background evolution of perl, we're
now doing what should properly get a major rev number, so we need 6.0
back." Or one might suggest that having 6.0 free would create a
dialogue about what to do with it?
Random thoughts,
Mitchell
[1] http://blogs.perl.org/users/jt_smith/2010/04/the-second-age-of-perl.html
via HN today.
Big picture, I suggest it doesn't matter how we get a particular set
of language features. Rich type system, aggressive static compilation,
and a fully dynamic fallback. Extensible powerful parser.
Multiple dispatch and a powerful module system. Bootstrapped compiler.
Because with those, it finally becomes easy to implement languages.
Perl 6. And perl5. And python, and ruby, and... much else. Perl 6 is
one such language. There is no other on the horizon. It doesn't bother
me that I disagree with some p6 language design decisions. Because
given a p6, I can change them. No more language committee hell.
Without a Perl 6... well, I've been waiting more than two decades for a
language which doesn't suck. Common Lisp is still the closest, and
that, not very. Maybe later this decade. Once it finally happens, it
seems likely the ecology of languages will radically change, and with
it, the rate of language evolution, and developer productivity. Which
is currently clearly society crippling. Sigh.
On 05/26/2010 04:16 PM, Tom Metro wrote:
Jason McIntosh wrote:
What I've lately been fond of explaining to friends is that "Perl6" is
the somewhat misleading name attached to Perl's skunkworks lab. It
develops, implements and tests various crazy ideas for new language
features, the best of which Perl adopts...
Yes, exactly.
The name could be better...
http://www.sdtimes.com/link/34307
The trouble with 6.0
6.0 seems to be a difficult number to reach. Last year, MySQL 6.0
was canceled when the community decided everything scheduled for
that version should just be added in the 5.x branches. The same fate
has just befallen the PHP community...
This is mirrored in Perl's 5.12 release, the first for that language
in a number of years. Most of the big minds in Perl have been
thinking very hard about how to make 6.0 awesome. Unfortunately,
they've been thinking and coding for almost 10 years now, and the
remaining issues in Perl's 5.x branch were increasingly ignored.
Updates were slow and infrequent, though new project management has
pledged to make them more common. And in 5.12, the big fixes are
almost all related to Unicode.
One more 6.0 release was Windows Vista, right? Maybe there's some
sort of 6.0 curse. -- Alex Handy
...but getting a 10-year-old open-source project to change its
name seems unlikely; it seems easier to spread the meme that it's
Perl's R&D lab.
True.
James Eshelman wrote:
I think the developers of Perl 6 would do everybody a big favor by
renaming it. Calling it Perl 6 implies something that increasingly
doesn't seem to be true, and inhibits interest in and active development
of Perl 5.
Agreed, but how do we make it happen. The people working on it seem to
be happy with the name, and they ultimately have the say. We could all
vote on it (post to whatever list covers perl 6 dev), but are they
likely to listen?
-Tom
_______________________________________________
Boston-pm mailing list
Boston-pm@mail.pm.org
http://mail.pm.org/mailman/listinfo/boston-pm