[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 

Reply via email to