Think "Language Reference" (was Re: Initial notes)

[email protected] (Michael Lazzaro)
Newsgroups perl.perl6.documentation
Message-ID <[email protected]>
>> I also think that we shouldn't try to provide too exact and final
>> documentation at once. Just define each area "with enough detail"
>> (whatever that means) and then move on. Until whole language-design
>> is somewhat complete, there will be things which requires earlier
>> decisions to be changed.

Let me explain what I (personally) am hoping for.  I don't think we 
should be locking down every aspect of the language before moving on, 
because we clearly can't.  But just as clearly, if we document portions 
of the language without going into all the details, we aren't really 
accomplishing anything: we haven't found potential buried issues, we 
haven't documented it well enough to answer user questions, and we 
haven't given p6i anything useful to work with.

In other words, if we leave the detail out of a section, we're going to 
have to write the section over again anyway, and there's no point.

So what I'm after is *lots* of detail, but in very narrow doses; hence 
a strict tree of sections and subsections.  We've had some initial 
proposals with outlines & contents for section 1; in general, however, 
I think we are still thinking _much_ too broadly.

***** For this phase, think Big Language Reference, _not_ Little 
Language Summary.  Or think along the lines of the Perl5 Cookbook, in 
which very small areas of the language are explored with impressive 
detail before moving on to the next small area.

For example:  we know Perl6 will have num, int, bit, and str types, or, 
loosely translated, "numbers" and "strings".  From that, we now must 
nail down the exact behavior of those types in every useful situation.  
There should be a section on "Numeric Types & Values", that contains or 
links to _all_ information about how Perl6 deals with numerics.  A user 
should be able to find out everything they need to know about how the 
numeric types from that one section, and not have to search anywhere 
else.

After we've nailed down the behavior of all the primitive builtins, 
then we can get to arrays, then hashes, then statements & operators, 
then blocks/closures/subroutines, etc.  A depth-first effort.  (I'll 
post another note giving an example of what I mean.)

As much as we've said Perl6 needs docs that will be understandable to 
beginners, this _initial_ part of the process will not directly 
accomplish that.  That will be phase 2, after we have the "reference" 
material from which to write the beginner version.  Hopefully, however, 
we will be able to write the reference material with the proper 
ordering & structure to be useful even to beginners, because everything 
will be easy-to-find in the tree -- beginners might just not want to 
drill down as far.

In general, I want us to be fairly easygoing about issues like POD 
formats, HTML look & feel, etc.  A rough consensus, but not set in 
stone, which is why I've been trying to close those things out as 
rapidly as possible.  On the text of the documentation itself, I think 
we need to be real hardnoses, and ask all the tough questions.

MikeL
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.