[Note: Posted to both perl6-language and perl6-documentation.
Since perl6-documentation is no longer advertised, I assume
follow ups should be posted to perl6-language only].
When Audrey gave a recent talk to Sydney.pm, she pointed out
some deficiencies in the current Pugs/Perl 6 documentation
and asked if I could help. Hence this email. In particular,
she noted:
* It is way too hard for newbies to come up to speed with p6
and Pugs because the documentation is scattered all over the
shop and much of it (e.g. the Apocalypses and Exegeses) is
dangerously out of date.
* http://dev.perl.org/perl6/ needs updating.
* http://www.pugscode.org/ needs updating.
* It would be good to now start building the documentation
that will eventually ship with Perl6 and Pugs. [Note that
Pugs is just one implementation of Perl 6 the language
(albeit the leading candidate for Reference Implementation)
thus there is a need for some Pugs-specific documentation.]
Needless to add, she proposed that this documentation be
built in the Pugs svn repository using the Pugs anarchic
[TM] development model.
After re-acquainting myself with Perl 6/Pugs and researching
some Perl 6 documentation history, here are my thoughts:
* I'm hopeful that the p6 spec has become stable enough that
it now makes sense to press forward with p6 documentation.
[It seems the lack of stability of the spec was one reason
the Perl 6 Documentation Project stalled (list archives:
http://www.nntp.perl.org/group/perl.perl6.documentation)].
* Having said that, I feel the Perl 6 spec itself properly
belongs with @Larry and any (highly-skilled) volunteers
they invite to help them. I doubt the Pugs development
model will work well for this owing to the phenomenal
skill level and precision required (just a personal
opinion, I'm interested to hear what @Larry thinks).
* I feel the Pugs model may work well for the non-formal-spec
part (e.g. perlintro, pugsintro, tutorials, ...) of the
documentation that will ship with Perl 6 and Pugs.
Accordingly, that effort has already been started
(mainly by Skud, so far) in the Pugs svn repository:
http://svn.perl.org/perl6/pugs/trunk/docs/p6doc/.
Call to Arms
Volunteers are sought for building the documentation that will
ship with Perl 6 and Pugs. This documentation lives in the Pugs
svn repository under docs/p6doc/. This documentation is being
written in POD.
If you want to contribute to this effort, hang around on the
#perl6 IRC channel and ask someone for a committer bit.
How should the documentation be organised?
==
Opinions are welcome on this. Certainly, there is much prior
art on how to document a computer language. I feel we should
essentially follow the p5 model, stealing good ideas from other
languages (especially Ruby and Python) where appropriate.
In particular, Ruby's PickAxe book seems a sound model for
documenting the new p6 OO libraries.
Though Audrey suggested modelling the documentation around
p5's 'perldoc perl' command, I personally prefer the (similar)
organisation at http://perldoc.perl.org/.
References
==
* The Perl 6 Synopses, Apocalypses and Exegeses at:
http://dev.perl.org/perl6/ (they are also stored in
http://svn.perl.org repository). The Synopses are the
most important of the three since they are the only ones
being kept up to date.
Some bits from current Pugs docs/ directory that might be useful:
* docs/quickref/ (Juerd)
* docs/articles/tpr.pod (gaal) draft (unpublished) TPR Pugs article
* docs/other/porting_howto (iblech) How to port p5 modules to p6
* docs/notes/docs_evil_plan.txt (asavige)
* examples/ directory (especially Ovid's cookbook)
Some bits of Pugs docs/ directory needing more work:
* 01Overview.html
* 02Architecture.pod
* 03Evaluator.pod
* Pugs Apocrypha
* Perl6::Bible (http://search.cpan.org/dist/Perl6-Bible/).
* Perl 6 Documentation Project
http://www.nntp.perl.org/group/perl.perl6.documentation
* Rod Adams S29 at http://www.rodadams.net/Perl/S29.html
* http://perldoc.perl.org/
* p5 'perldoc perl' command
* The camel book
* Python documentation http://www.python.org/
* PickAxe Reference section (for Perl Library Reference)
* Parrot documentation (www.parrotcode.org)
Send instant messages to your online friends http://au.messenger.yahoo.com