-
-
Save moritz/7df64717d8dd772a87a0 to your computer and use it in GitHub Desktop.
The State of Perl 6 in 2014 - preview for the advent calendar
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=head1 The State of Perl 6 in 2014 | |
Welcome to the 7th annual edition of the Perl 6 advent calendar, code name I<2014>. | |
In 2014, L<MoarVM|http://moarvm.org/> has become the de-factor standard | |
backend for the L<Rakudo Perl 6 compiler|http://rakudo.org/>. Parrot and JVM | |
are still supported as a backend, but MoarVM provides much lower memory usage, | |
faster startup time, and is usually significantly faster at runtime too. | |
Rakudo on MoarVM also has concurrency support, including L<reactive programming|http://jnthn.net/papers/2014-nlpw-reactive.pdf>. | |
L<Much work has been done|http://jnthn.net/papers/2014-yapceu-performance.pdf> | |
to improve performance, some in MoarVM, some in Rakudo and NQP. Maybe most | |
notably is the JIT compiler for MoarVM that came out of the | |
L<http://brrt-to-the-future.blogspot.nl/|Google Summer of Code project by Bart | |
Wiegmans>. | |
Another Google Summer of Code project by L<Filip Sergot|http://filip.sergot.pl/> brought us L<HTTP::UserAgent|https://github.com/sergot/http-useragent/>, a versatile HTTP client library with SSL/TLS support. | |
During the Austrian Perl Workshop in fall 2014, many of the Perl 6 and Rakudo core contributors met, and identified three roadblocks for a "final" Perl 6.0 release: GLR, NFG and NSA. | |
Here I<GLR> stands for the I<Grand List Refactoring>, a plan to make the list-y types more transparent, list iteration faster, and more transparent when a list will flatten. | |
I<NFG> is the I<Normal Form Grapheme>, a plan for implementing grapheme-based string indexing. | |
Finally I<NSA> stands for I<Natively Shaped Arrays>, a flexible feature for declaring typed, potentially multi-dimensional arrays, potentially with pre-defined dimensions. It will make memory-efficient matrix storage and operations possible, for example. | |
With these three blockers defined, Larry Wall submitted a talk to FOSDEM called L<Get ready to party!|https://fosdem.org/2015/schedule/event/get_ready_to_party/>, predicting that 2015 will be the year that Perl 6 will get a production release. | |
Sorry, this was meant to become a summary of the current state of Perl 6, and it derailed into an outlook. To allow me to keep the "state" in the title, let me just tell you that Rakudo on the MoarVM is quite fun to work with. It's fast enough for small (and sometimes even mid-sized) tasks, module installation works fairly reliably, and the range of available modules has also increased. | |
Also I feel that any attempt to summarize the progress of this awesome community is bound to be very incomplete; I hope that my fellow Perl 6 hackers will in some details in the upcoming 23 posts. | |
Have a nice pre-Christmas time, and enjoy the show! |
de-factor standard => de facto standard
potentially multi-dimensional arrays, potentially with pre-defined dimensions => potentially multi-dimensional arrays with pre-defined dimensions
"Parrot and JVM are still supported as a backend" => Parrot and JVM are still supported backends
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I know you're already linking to jnthtn's performance talk, but I think it might make sense to actually go into a little more detail on the current Rakudo+MoarVM performance. After all, answers to the two questions "How complete is the language design?" and "How fast is the implementation?" are the top things that readers will expect when they see the title "The State of Perl 6".
Maybe instead of the half-sentence "It's fast enough for small (and sometimes even mid-sized) tasks", have a bullet list like: