On Tue, 22 May 2012 19:35:34 -0400, Parrot Raiser wrote:
> The problem we have is to provide a path for learning 6, that presents a
> comprehensible but useful subset of the language to the average user as
> soon as possible, while leading the programmer with more complex needs,
> (and greater abilities), to the features they need or will appreciate.

We need multiple paths.  The term "beginner" creates problems just by 
using it because there are several incompatible types of "beginner," and 
the complexity of Perl 6 exacerbates this multiplicity.  I see at least 
these entry points:

 - Never coded anything in any kind of language before
 - Experienced in Perl 4 (many Perl 5 programs are really just Perl 4)
 - Experienced in Perl 5
 - Experienced in other dynamic languages (PHP/Python/Ruby/JavaScript)
 - Experienced in other nondynamic languages

Another dimension is the learning style of any of the above.  Virtually 
everyone reading this belongs to a small proportion of the programming 
population: early adopters.  Most of you would learn Perl 6 even if the 
only documentation was written in Klingon and secreted in the small 
intestines of a rabid vole.  Increasingly larger proportions of the 
population require greater levels of assistance; the next group is 
satisfied with a relatively complete reference document, then we have 
people who need tutorials, people who need live instructors and/or 
examples, other media like video, feedback from mentors, and so on.  

There's nothing new in this breakdown, but why I see it as being 
important to consider when constructing Perl 6 educational materials is 
the sheer depth of the language.  This is the most incredible language 
ever created.  If it weren't, it wouldn't have taken this long to build.  
It's beyond the ability of most programmers to encompass the whole 
language within their brains.  Attempting to feed them the entire thing 
would be like pushing them into the Total Perspective Vortex.  

I suggest we think in terms of useful subsets of the language that can be 
assimilated by mortals, documenting the more esoteric parts behind "For 
When You Are Ready" banners.  I have found that learning is mostly driven 
by thinking about what you leave out (or leave until later).  Otherwise 
you could just throw the Camel at people and be done.  That works only on 
a very few.  Those subsets might be broken down by the categories I list 
above, or by application domain, or educational background (CS major/
other), or something else.  When Perl 4 came out, you could count on most 
of the people learning it to have a CS background (and the rest were 
sysadmins).  Now the landscape looks very different.

-- 
Peter Scott

Reply via email to