The Perl 6 Advent Calendar is a community blog of yearly articles on Perl 6 (now Raku) features, releases and examples.
HN links it as evidence that Perl 6 was finally released and as a resource on its features, spec tests and tutorials.
Let me clear that up for you, if you are still in doubt.
Perl5 had a period of slow releases in the 2000s, this changed in 2010 with the release of version 5.12. Since then, Perl 5 has been on a yearly release cycle. The current release is version 5.30.0. When it became clear Perl6 wasn't coming any time soon, some people left Perl. Others knuckled down and wrote some great code that made Perl5 into a much better language. With many core feature additions and deprecations, new CPAN modules, and tooling to support consistent work by teams, the Perl5 language is more expressive and better than ever.
Perl6 took forever, had major internal conflicts, but managed to survive and ship a specification in December 2015, version 6.c (6.a was an alpha version, and 6.b a beta). The Rakudo Perl6 compiler gets monthly releases, but most people install the Rakudo Star distribution, which bundles some extra modules and just makes life a bit easier. Rakudo Star began shipping "A usable Perl 6 compiler" in 2010. Regular releases tracked changes in the compiler.
The Perl6.c spec was announced in December 2015, and the first Rakudo to implement it was released at the same time. Rakudo Star, lagged a bit and released in January 2016.
Here's the Perl6 release announcement: https://perl6advent.wordpress.com/2015/12/25/christmas-is-here/
The Perl 6.d spec was released in November 2018, and the Rakudo 2018.11 version defaults to supporting it.
Here's a link the Perl6 FAQ with more…
You wont get many opinions of people's experience of Perl6 from Hacker News. Just a lot of rage and assumptions it's somehow just like Perl5, which it's not. There are only a few of us (tens, maybe a hundred very quiet people) actually writing it daily. With no official "released" 6.0.0 version it's not supported that well by Linux distros yet either. Like if you install Rakudo on Debian stable right now it would be about two years out of date iirc. In the last two years a custom Perl6 VM was written with a JIT compiler and tonnes of concurrency stuff was added! You can however easily install it yourself and keep up to date with rakudobrew http://perl6advent.wordpress.com/2014/12/02/day-2-rakudobrew/
My $0.02 is you'd mostly want to learn Perl6 if you were after something like Ruby but perhaps with more room to express yourself and form a community and build new technologies. At least I really love the language and find it very expressive and intuitive to use and it has a lot of features useful for doing Bioinformatics built in (something I'm going to add to the P6 advent calendar on the 15th Dec). The extra level of detail ten years of design puts into a language like all the funky features working together and being consistent helps a lot. So much of the cooler expressive/functional stuff in Python feels out of place like lambda and list comprehensions. Maybe I'm wrong but I wouldn't write anything /that/ complicated or important using Python lambda or list…
Is there a production-grade implementation available yet?
Depends on your use case: There are two reasonably complete and stable Perl6 implementations - Rakudo on Parrot and Niecza on .NET/Mono.
What needs to be addressed before Perl6 can be recommended for arbitrary production use are modules and performance:
The module ecosystem[1] is somewhat ad-hoc and modules may have bit-rotten, so batteries are not included.
Rakudo is more feature-complete, but performance is less-than-awesome and Niecza might be a better choice if that's relevant and you're comfortable with the CLR. The performance issue can be somewhat mitigated by implementing critical code in C (in case of Rakudo) or C# (in case of Niecza), but that's more of a band-aid than a real solution.
You might also want to take a look at the Perl6 advent calendar[2] to gain some insights into the current state of Perl6.
[1] http://modules.perl6.org/
[2] http://perl6advent.wordpress.com/2012/12/01/perl-6-advent-calendar-2012-table-of-contents/
Please reread https://perl6advent.wordpress.com/2015/12/25/christmas-is-here/
Note especially this passage:
...the primary deliverable ... is the language specification, known as “roast” (Repository Of All Spec Tests) ...
In other words it's roast, the digital acceptance test for any candidate Perl 6 compiler, that is arguably the only thing that was officially declared, and hence the only thing that could be construed to have been officially declared any particular thing such as "stable".
Continuing:
... This Rakudo release targets those tests (over 120 thousand of them), and passes them all on at least some architectures when the moon is in the right phase.
Rakudo is a Perl 6 compiler (so that one can try out the announced language).
Note the moon phase comment. While obviously not literal and arguably misleading it is a brilliantly concise and precise explanation of the degree to which Rakudo, the leading Perl 6 compiler, should or could be characterized as officially "stable".
(For those who were wondering, the article is about DSLs in Kotlin).
DSLs can be very elegant ways to improve code readability (as long as the assumptions and language they use is meaningful to the team).
This is an area that I wish node.js had invested in. Perl6 has "slangs" which are extremely powerful, see [1] for some examples that just flow elegantly. Combine that with custom operators to write code like "4.7kΩ ± 5%" that would make sense to electronicians [2] and you can get some really user-friendly syntaxes.
(Again, it bears repeating that a DSL improves readability by sacrificing generality, so a DSL is for audience that's usually a subset of that language's users. That electronics code would be useless to the average web developer.)
[1] https://github.com/tony-o/perl6-slang-sql
[2] https://perl6advent.wordpress.com/tag/dsl/
> UTF-8, for example, allows to encode the character "ä" as \xc3\xa4 OR \x61\xcc\x88. They look visually identical, yet fail any string comparison.
Well-designed high-level programming language (see Perl6) compares strings depending on how they look, not on their binary representation [0].
For example let's play with Perl6 REPL:
> my $a = Blob.new(0xc3, 0xa4)
Blob:0x<c3 a4>
> my $b = Blob.new(0x61, 0xcc, 0x88)
Blob:0x<61 cc 88>
> $a eqv $b
False
> $a.decode() eqv $b.decode()
True
> $a.decode() eq $b.decode()
True
As another example, Python3 would fail:
>>> a = b'\xc3\xa4'
>>> b = b'\x61\xcc\x88'
>>> a == b
False
>>> a.decode() == b.decode()
False
Perl6 is definitely going to dominate the world one day.
[0] https://perl6advent.wordpress.com/2015/12/07/day-7-unicode-perl-6-and-you/