Má smysl používat Perl 6? Postmoderní jazyk, lepicí páska, která drží pohromadě celý internet, TIMTOWTDI, Camelia a děti s poruchou autistického spektra.
10. Proč Perl 6?
• zlomky, komplexní čísla, …
say (1/13 + 3/7 + 3/8).perl; # <641/728>
say (3 + 5i) * (2 - 2i); # 16+4i
• lazy evaluation
my @sequence = 1, 1, { $^a + $^b } ... *; say @sequence[6]; # 13
.say for '50TB.file.txt'.IO.words;
• Unicode, stringy
my $multiline = q:s:to/EOF/;
c[HEBREW LETTER ALEF] and $scalar will be interpolated, @array won't.
EOF
11. Proč Perl 6?
• mnoho knihoven integrovaných do jádra
• datum / čas
• IPC – signály, systémová volání
• lazy IO přístup
• Data::Dumper, Getopt::Long, …
• syntaktický cukr
• parametry subrutin – defaultní, volitelné, typované
• přetěžování subrutin
• hyperoperátory, junctions
• regulární výrazy – Unicode, pattern matching
• tvorba gramatik / parserů
• …
12. Přechod P5 → P6
• změny syntaxe
• gramatika (given-when, volání metod, prázdné znaky, reference)
• regulární výrazy
• operátory
• zdrojový kód defaultně v UTF-8 (lze vynutit jiné kódování)
• změny v parametrech CLI, env. proměnných
• typy [6]
• vestavěné
• subsety – subset Prime of Int where *.is-prime;
• volně definované (Any)
• experimentální transpilery (pro jednodušší kód)
• 5to6-nutshell [8]
18. Má to smysl?
• rychlost
• plná podpora Unicode
• paralelní zpracování, konkurentní přístup, asynchronní
zpracování
• komunita, podpora, balíčky
• bioinformatika, matematika
• integrace (rozšiřování podpory VM, více jazyků v MoarVM)
19. Odkazy
[1] TIMTOWTDI
[2] Perl, the first postmodern computer language
[3] A Large-Scale Study of Programming Languages and
Code Quality in GitHub
[4] Perl 6 Types: Made for Humans
[5] The Perl 6 Programming Language
[6] Rakudo Perl 6, MoarVM
[7] A Mutable Grammar For Perl 6
[8] 5to6-nutshell