Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Here is my experience with XML:

The first time I had to parse an XML file, I started out using regular expressions. A while later, I discovered this thing called CPAN, and it had XML::Parser. I stumbled along with that until I started hanging out at PerlMonks, where people were using other things like XML::LibXML. I could easily see the clear advantage of this over the lower-level XML::Parser, but I struggled mightily with the docs. I gave up on it and tried XML::Twig. Twig had its own tutorial website which walked me through the baby steps I needed to get going. It had short XML example files and equally short code examples that I could run. Because of that tutorial, I've stuck with Twig because it does everything I need. Other modules may be better, but I have confidence that I can figure out any new things I need from the Twig docs.

XML is probably in the middle as far as complexity goes. Not as trivial as List::Util, but not as complex as PDL. Whenever I answer someone's XML question here or elsewhere, I typically warn XML new-comers that any parser requires an investment in time.

My experience with PDL mirrors yours. I've given a couple half-hearted attempts at it, but I easily give up. It looks cool, but I guess I really don't need it. I see this more as a personal flaw of mine than a criticism of PDL. I agree that I wish it had an easier jump-in point, if that is even possible. Is it possible for this and other complex modules? Should there be smaller stepping-stone modules that have a reduced function set? Once you need more than the basics, there is an obvious migration path to the real deal? The internet is full of free trial software that offers reduced functionality. Before you commit the big dollars, you can give it a trial run with the freebie. I realize this isn't the most direct analogy, but it is along the same lines.

Another experience: The first time I saw Devel::Cover, I knew I wanted to use it. I struggled a little bit, but finally got it. As penance for posting a worthless reply to Devel::Cover for Dummies, I put together a quick-start for the module: Re: Devel::Cover for Dummies (quick start). PerlMonks is hardly the best place for this; it would be better as part of the module's distribution.

Some suggestions:

  • Baby-step tutorials packaged with the module's files.
  • Small example scripts with small inputs that are runnable.
  • Companion starter modules with reduced functionality (Tiny, Simple, etc.).

I agree that many CPAN modules lack sufficient documentation. My initial reaction is disappointment, until I remember the adage: You get what you pay for. CPAN is free, after all. Perhaps the author just didn't have time, or is ignorant in the ways of documentation, or just doesn't care. I do have the option of trying to improve this situation: I could contribute and upload a patch to the POD (or example code files).


In reply to Re: The problem of documenting complex modules. by toolic
in thread The problem of documenting complex modules. by BrowserUk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2024-04-19 15:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found