Perl 6 is awesome. Its design is based on the combined experience of many clever people. It addresses a whole range of contemporary computing problems, in fields as diverse as text processing and compiler development. It's being developed by, and for, some of the smartest people I want to risk approaching.
In short, Perl 6 is awesome: "Extremely impressive or daunting, inspiring awe". http://oxforddictionaries.com/definition/awesome?view=uk That is a problem, if we want to get it adopted widely and quickly. I've spent quite a lot of time teaching Perl 5 to a variety of normal commercial programmers. An early part of the course was the arithmetic operators, (+,-,*,/,%). A good many of the classes started to look nervous and uncomfortable around the time I introduced the modulus operator, because it was approaching the boundaries of their experience. (I don't think it was just my deficiencies as an instructor that led them to feel uneasy.) One of the difficulties of teaching a complex subject to any but the most motivated of students is overcoming their fear of that complexity, the feeling that "this is just too hard". There's also the practical consideration that a "solution" more complicated than the problem it addresses doesn't really deserve to be called a solution. Trying to teach adults something they don't need to know is like trying to teach a pig to sing. You will only succeed in annoying the pig. If all you need to do is total some lists of numbers, the ability to construct compilers is not a powerful attraction; it may in fact be a distraction. It's not even a matter of the learner not being terribly bright. It's sobering to visit the "Software Carpentry" site, software-carpentry.org and remember that it is aimed at graduate science students. We all share common limitations to learning, e.g. "the magic number 7, plus or minus 2" http://cogprints.org/730/ Introducing too much at once is counter-productive; it leads to confusion, not knowledge. For a concept to stick around long enough to become an unconscious competence, it has to be reinforced by practice. To encourage practice, it has to be rewarding, i.e. reasonably easy to get right, and do something useful, quickly. 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. The Synopses are comprehensive. They define the language in great depth, feature by feature, (some features bordering on the pathological, "do not try this at home"). Since they specify what the language is to become, not what is implemented at present, they can be frustrating to follow. Maybe it's just an effect of advancing age, but it's easy to forget the contents of a previous synopsis by the time one has read the next. The Perl 6 Tablets have a similar organisation, and hence the same problem. I haven't recently revisited the book in Rakudo*, but it struck me, last time I looked, as a powerful deterrent to learning the language. It starts with the tricky stuff. There's a paradox inherent in computer documentation; people who thoroughly understand software are probably the wrong people to try to explain it, because they know too much. (That's also true of the current state of the error messages; they assume the reader understands the issues as well as the author. It's forgivable at the present stage of development, but still frustrating.) Larry's metaphor of the Onion seems to be appropriate here. Present a core set of features to make a useful language, ("Perl 6 baby talk") and make a series of increasingly sophisticated and esoteric aspects available as the student becomes adept with the basics. For example, when discussing quoting, single and double quotes are quite enough to start with. All the Q forms can wait. Even then, they may be introduced in stages. Of course, when doing this, the problem is not to make statements that will have to be contradicted later. This concept might even help define when a 6.0.0 is "done" enough to launch. It's going to take a while for the more esoteric features of the language to get used. If they aren't in the first version, it may not cause much inconvenience as long as they are implemented Real Soon. If it does, the inconvenienced might be motivated to help.