On Tuesday, November 5, 2002, at 11:18 PM, Allison Randal wrote:
OK, let me pause for a second... pause, pause, pause... OK, I'm better now. Please forgive me, I'm going to be quite forceful in my evaluation of the situation here. To the point of making a Simon C. post look mellow. Get ready for some spectacular virtual coffee-mug-throwing here.Since you're interested in the management of the Perl 6 project, I'll let you in on some of it. Let's start with a step back into a bit of history:
This is a good summary, but please note that I'm already painfully aware of the RFC process and phase 2, and have followed it religiously since the beginning, though I have been purposefully invisible through most of it. Indeed, it was the RFP process which caused me to decide that my company could no longer continue to base our commercial software on Perl: with a few noteworthy exceptions, the RFCs all focused on narrow "feature add-ons" that did precious little to solve the core issues that have served to limit Perl5 in the marketplace.
It is the high quality of Parrot that later convinced me to hesitate in my decision, but it is Apoc5 that later convinced me to reverse it, and to even get directly involved. Apoc5 convinced me that, indeed, Larry and the design team were reworking the base assumptions of the language in a truly innovative way, and that the result was going to be what the real-world business community was hoping for.
We will and we should. But that isn't the focus. It can't be. If weThis, then is my point. I am not saying that Perl6 does not have a management strategy for dealing with this. I am saying that the management strategy for this particular part of the effort is so incredibly piss-poor as to be nonexistent. Parrot Good. Larry Good. Big, Big HOLE in the middle. _Who_ is fleshing out the mindless, trivial details that Larry posts to this list, and _who_ is creating/updating the documentation to reflect those changes? Anyone? If someone is, what, is it supposed to be a secret? Or does it simply not exist, and Why The Hell Not?
spend all our time fleshing out the details of earlier Apocalypses,
we'll never finish. Hmmm... let me rephrase that. If we spend all
Larry's time fleshing out the details of earlier Apocalypses, Larry will
never finish.
But what other exposure would I have? No, seriously -- let me summarize Perl6 from the standpoint of someone who isn't in the loop, whatever the "loop" is, so the people who _are_ in the loop can tell me why I'm completely misinterpreting the obvious public faces of the effort:The project is proceeding in a much more orderly fashion than you might think if p6-lang is your only exposure.
-- Apocalpyse 2 came out May 3rd, 2001. That's, what, about 18 months ago. Since then, there has been no edits or revisions: none of the obselete references have been purged or annotated, and none of the profound new decisions that have been made since then have been acknowledged. Ditto for Apoc 3 (Oct 2001), Apoc 4 (Jan 2002), and Apoc 5 (June 2002). Basic, fundamental decisions have been *invalidated*, but you will only know this if you have read and perfectly remember every post to perl6-lang since inception. Great, just great.
-- The Apos and Exes continue to be the _ONLY_ meaningful source of documentation of previously decided behaviors. No member of the community besides Larry and Damian has contributed in an ongoing way to documenting the rudimentary behavior of Perl6. Questions asked on perl6-language continue to be asked, repeatedly. Explanations are given, repeatedly, often contradicting previous explanations. Aside from Piers and his stunt doubles, explanations result in no "findable" specifications whatsoever.
-- Basic, fundamental questions like what each of these lines do:
my int $n = 5; # OK
my int $n = 5.005; # trunc or err?
my int $n = "5.05ff" # 5, 0, undef, Nan, or exception?
my int $n = "fdsjfdf" # 0, undef, Nan, or exception?
... are being asked repeatedly of _me_, implying that either (1) nobody knows, (2) some people know, but they aren't telling, (3) people know, and it has been answered, but people can't find the answer anymore because it's lost in N other unrelated answers, or (4) people no longer trust the answer, because they don't know what other decisions the answer was originally predicated on.
-- The "latest news" on the Perl6 section of dev.perl.org was updated July 7th, introducing Piers, and other than linking to Piers' summaries contains no information pertinent to Perl6 -- only Parrot.
-- It's November, 2002. We have just been through a hellacious thread reworking operators. (Apoc 3) The only documentation of those decisions has been my continual reposting of the current status, which I had to practically _force_ down people's throats.
I don't *WANT* to write damn documentation. I wrote a first-chapter summary of some basic Apocalypse 2 stuff because, a year and a half after it first came out, NOBODY HAD DAMN WELL DONE IT YET. Worse, I'm bloody *volunteering* great gobs of time to do it, and it's like pulling teeth to get people to agree to it!
So, to review: if this was the behavior of my staff, I'd fire them. If my staff said "well, we're waiting for Timmy to finish the design, then the rest of us can start helping too", I'd fire all of them but Timmy. And I'd feel damn good about doing it.
If there are efforts going on behind the scenes to document the current, as-it-stands-at-this-moment Perl6 design, to revise the Apocs and Exes, to write online documentation, etc, than I strongly object to keeping that information private. If there _IS_ no effort to do this, under the assumption that Larry/Damian will get around to it in a year or two, after we get to Apocalpyse 15, or 27, or 33, then Good Lord, I have no rational response to that.
If you really want to be involved where the rubber meets the road --I would *love* to. What should I work on first, simple numerics and string behaviors? Oh, right -- I can't, the details aren't final. OK, what about blocks and flow control? Nope, because some things in Apo4 are changing in as-of-yet unspecified ways. Oh, I know! I help build the core type system -- all the Perl6 primitive types. Damn, no I can't -- the only even remotely complete list of primitive types that exists is the one I posted to this list a week or two ago. And I still don't even know if "num" and "int" inherit from an abstract base class that we still have to come up with a name for (in order to even be able to test for its context) or if "int" is supposed to be a kludged subclass of "num", or what.
where the "abstract" design gets tested and every last detail must be
fleshed out -- you might contribute to Parrot. It has a good many of the
features of the first 5 Apocalypses implemented already.
When I first posted the incredibly sparse-of-solutions POOC, it got, what, 650+ unique individuals in the first 7-10 days? The only place it was even mentioned was on this list, and the weekly summary of this list. That implies there are a substantial number of people who are so eager to learn about Perl6 that they're willing to wade through non-existent, vaporous specs to find out. Maybe we could somehow harness that energy in a productive fashion?
Again, my point is that Parrot is doing fine, and Larry is doing fine. But the hole in the middle -- coming up with the details so that the Parroteers can actually implement something, and not have to sit on their @$$es for a few months after they've finished the non-Perl core -- is getting _very_ _wide_.
What do I have to do? Throw mugs? This isn't a damn social club. If people don't want me to write some documentation, FINE. Show me what you've got. Post it, and I'll shut the hell up. But don't tell me we don't need it yet, because not a day goes by when someone on perl6-language proves that we _do_ need it, and are suffering greatly without it, and that Larry and Damian are wasting untold hours because of it.
MikeL