If there would be an election for the single greatest Perl 6 feature, many would select the box for grammars and others would root for concurrency/async (as expressed in several articles here and elsewhere). Roles and types might be also strong contenders. Here is why I would pick: none of the above, even I like all of them very much.

What is programming in its essence?

It is managing complexity. And we have to get better at in the future, because systems will become more and more complex. If there is something, the former chief programmer of MSFT was right about: complexity kills. Or to put it in positive terms: obvious code is a joy to work with and the base for long term success of the project.

But to create code that is "easy to read" you need qualities that contradict

the airy, breezy sound of that phrase. It takes an intelligent and knowledgeable programmer that can think in high abstractions and can identify which part of the task can be delegated. On video sites are many talks like this, where people preach for a programming style that uses mostly libraries and where programs have few classes and small methods.

Perl 6 is very supportive of such style because it not only have a very rich core, that even can streamline or even obsolete many libraries. One of the reason why Perl 6 took so long (time and risk not many are willing to take) is that the core had to be restructured or adapted many times. The goal was to get a core that is not only rich but also consistent with maximal reuse of its own components. The result is a structure that already addresses much of the complexities you will encounter as a programmer. Watch for instance the factor guy, explaining how having a complete set of set operations in the core of factor makes all the other code more compact and expressive. No need to say that some holds true for Perl 6 since our unofficial motto is: all you feature belong to us.

Further versions of Perl 6 will also be about the maintenance and expansion of this core and a verse Perl 6 coder will write short programs that achieve very much by extending the the core just a little. Its a bit like in the old LISP days, but with syntax. And the old LISP core didn't do much. It just had the tools for you making your own tools and no data types. As said, we have types, the tools and the meta tools.