6guts is the blog of Jonathan Worthington, a core developer of Rakudo Perl 6 and MoarVM, covering virtual machine and compiler work.
HN links it for Perl 6 implementation internals, such as the MoarVM design and async IO work, and for the language's progress.
I could give a list of features as to how Perl 6 will make my life as a developer better, but a list of features is not enough to justify adopting a whole new language with a small ecosystem. To adopt a language, it really has to improve your productivity. For instance, I think we've seen this with Go's adoption by people from dynamic languages, as it offered type safety, speed, and concurrency in a package that was generally more readily acceptable to them than Java/C#/Scala/etc.
jnthn has a great series of blog posts illustrating how many of Perl 6's features come together to make developing a library very easy. To me, this is a great example of "how does Perl 6 help a business": by allowing rapid development of a complex asynchronous application, which is a use case many of us face. He illustrates this by writing a STOMP client for RabbitMQ, going from toy to a serious library: https://6guts.wordpress.com/2016/01/04/not-guts-but-6-part-1/
I look at this workflow and think, "Wow, I wish I could do things that easily." But now I can, because Perl 6 is out. :)
Since H. Merijn Brandt started working on the Perl 6 version of Text::CSV, he has kept a log of how long a specific test (referred to as test-t) too to run.
https://tux.nl/Talks/CSV6/speed.log
Since then, Rakudo Perl 6 has become more than 100x as fast, at least for this test. And more than 250x as fast using a concurrent version of the test (which was as simple as putting a `.race` in the code).
This makes it still slower than the Perl 5 version, which uses XS (all parsing logic written in C). But the gap is closing with another round of optimizations to be merged later this week after an extensive refactor that took about 2 months. Of which you will most certainly see a report on https://6guts.wordpress.com , the blog of Jonathan Worthington.
It turns out that the same NFG mechanism developed to support graphemes works for this non-grapheme scenario too:
"... POSIX doesn’t promise you’ll get UTF-8, or even ASCII. It promises ... a bunch of bytes. We can now cope with this properly – surprisingly enough, thanks to the power of NFG. We now have a special encoding, UTF-8 Clean-8-bit, which turns bytes that are invalid as UTF-8 into synthetics, from which we can recover the original bytes again at output. This means that any filename, environment variable, and so forth can be roundtripped through Perl 6 problem-free. You can concat “.bak” onto the end of such a string, and it’ll still work out just fine."
From https://6guts.wordpress.com/2015/11/21/what-one-christmas-elf-has-been-up-to/
> Any benefit you get from using UTF-16 vanishes the moment you need to operate on it like a string, in other words.
So, don't decode to a string, and do all your character manipulation on the bytes.
> A better solution is to allow programmers to specify string encoding and default it to UTF-8.
Absolutely not: the internal representation of a string should be of no interest to a user of your language. The 'best' solution is to represent strings as a list of index lookups into a palette, and to update the palette as new graphemes are seen. This is similar to the approach Perl6 is using[0].
[0]: https://6guts.wordpress.com/2015/12/05/getting-closer-to-christmas/
Perl6 (with the MoarVM backend at least) should have proper async IO on both network and file IO.
jnthn (one of the primary contributors to MoarVM) has a write up about recent work done to improve the system here: https://6guts.wordpress.com/2017/06/08/sorting-out-synchronous-io/
This is part of a sequence using TDD to refactor and extend a Stomp client. The earlier posts (not doing much with async code) are https://6guts.wordpress.com/2016/01/04/not-guts-but-6-part-1/ and https://6guts.wordpress.com/2016/01/05/not-guts-but-6-part-2/ . There will be more.