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