Perl outreach

pierre masci piemas25 at gmail.com
Sun Dec 2 01:47:32 GMT 2012


Someone did two talks on this subject at the LPW. One of his main concerns
was the welcoming of newcomers : how to make their life simpler when they
start, so that they will want to keep on learning. If the first few
minutes/hours/days/months of learning a language are painful, it's not
going to help newcomers appreciate the language.

I was a total Perl newbie a year ago, so i can share how it was for me and
give a few ideas to make things better.

Before discovering Perl i would say that i was (and still am) an
intermediate programmer. Programming is not my job, by i did 6 months
projects in Java, C and C++ in Uni. And since then it has been a passion.
Hopefully a job too, soon.

I love really like language and its community, and am sad that there's less
people using it now : it means that there's less cool tools built on CPAN,
and less interactions in general. Well, i wouldn't say that London.pm is
poor in interactions though ;-)

 -   -   -   -   -
So, my beginners impressions.

    * It was hard to find "how to start" online.
I was disappointed by the Tutorials and perlfaq pages in
http://perldoc.perl.org.
First, the website doesn't make it easy to know where to look. As a
beginner i would start by looking in Tutorials. In there, the tutorial are
ordered in a strange order: the first tutorial is about references; maybe
not the first thing to look at for beginners. The second one is named "
perldsc <http://perldoc.perl.org/perldsc.html> - data structure complex
data structure struct", which doesn't make me want to read it. And then
there are a few "This document has been deleted" lines. It just feels like
i'm not in the right place to learn. Where should i go, then?
Also, the small font and the general display makes it a bit repulsive to
me. It just feels (again, to me) like unfriendly technical document.
Doesn't make me want to go through it unless if i have to.

This website is supposed to be the "Welcome" gate of the Perl paradise /
pirate bay. What it told me was "you are not welcome, you'll have to fight
your way in".
There have been enough people around telling me that "Perl is old and messy
- i used it 10 years ago and it was crap". The
http://perldoc.perl.orgwebsite made me think that they might be right.

I must say that fortunately perlmonks.org gave me the opposite impression
:-)

I decided to buy a few books (not everybody would have made the effort) :
Learning Perl, and some others. They are good. Perl Best Practices was a
revelation. Very good book for any programmer. Well, for me at least :-)


    * A few online tutorial about Moose helped a lot, and then reading the
whole Moose documentation. There was no easy way to print all of the
documentation though : i had to print each page of the manual, and then of
the cookbook. In fact, i wanted to change the border and font and get rid
of each page's summary, to have it in fewer pages, so i copy-pasted it by
hand to turn in into a big PDF (still 74 pages - it took me a few hours to
get there). I'd be very happy to share this PDF. This kind of thing should
be readily available: Moose is at the core of the Perl ecosystem, its
documentation should be easy to reach.

Maybe we could even have all documentation available in a nice printable
format, that doesn't take too many pages. And for big modules with several
webpages of doc, there could be a PDF with all of its documentation pages
on, maybe without each page's summary. I realised too late that pod2pdf
exists. Maybe that all POD documentation should be turned into
print-friendly PDF and available for download.
It's a lot easier for me to read documentation on paper, and i can add
notes, underline, etc.


    * Finally, a big inconvenience, especially for beginners, is to search
modules in the CPAN.
CPAN is great but there are not enough reviews. Even Moose has only 16
reviews ! And Carp only 5. Not enough to make me think that many people use
it and think it's good. Lots of good modules don't even have any review !

Reviews are important for me : positive ones might confirm that i found
what i need, without having to read the whole documentation; negative ones
can tell me that the module has a flaw that i cannot accept.

I, myself, didn't leave many reviews.
It takes some time to familiarize yourself with a module, and then you
forget to come and say "thanks".
When i install a module with cpan>install This::Module, i would like CPAN
to send me an email after 2 months saying "2 months ago, you installed this
module; do you want to review it? Here is a link : ..."
That could be as simple as
cpan> install This::Module -r
( -r for Review, or Reminder)

Another point if we had more Reviews, is their ageing. Some reviews are old
and aim at earlier versions of the module. We could make them "lose value"
over time.
Nowadays, the "total review score" (the stars) that appears when i do a
search, is the average of all reviews for this module. But  Instead of
using a simple average, we could use a weighted average where more recent
reviews would have more weight.
For me this is important : these little stars next to the module name make
me feel confident that i'm making the right choice; that a module is
reliable and i'm not going to regret it.
We can also probably figure out something so that new modules who don't
have many reviews, seem more attractive (to the research engine and to us)
than old modules who don't have many reviews.


That's it for my beginner's impressions.
Short summary :
My main point is that we should try to make leaning Perl an easier and a
nicer experience for newcomers.
A few ideas in this direction :
 - http://perldoc.perl.org is not welcoming at all. Do we want to change
this? Can we?
 - modules documentation could be readily available in PDF print-friendly
format.
 - We need more modules reviews. CPAN could propose users to send them an
email reminding them to send a review for a module.
 - Reviews could be weighted according to their age, to make it easier to
identify trusted modules.


This is all just my opinion, obviously.

I'd be happy to try and help in any of the above, but not right now : i
don't have a job, don't have much savings left, and thus, not much time for
non-paid work.
I'd be quite happy to be paid for participating in any of this though ;-)
Or not paid, but later. Right now, this testimony is the best i can do to
help.


More information about the london.pm mailing list