28.09.2021 -- #

Raku

“Larry Wall’s Stranger than Fact Talk” war so gut!Ich bin begeistert von Raku! Letztes Jahr habe ich Perl Programmiersprache ausprobiert. Es liegt zwischen Bash und Python.

Bash funktioniert gut für einfache Shell-Scripts, aber es ist echt irritierend. Zu frustrierend für mich. Perl ist viel klüger. Es hat “error handling” und ein gutes “type system”. Ich habe Perl bei der Arbeit verwendet, ein Script für lokale e2e Tests. Ich hatte ein großes Grinsen, als die JavaScript-Entwickler das gesehen haben 😃.

Raku ist Perl, aber besser. Es ist Perl, mit einem anderen Namen. Es behält die guten Teile und hat aber die schlechten nicht mehr. Jetzt ist es ganz leicht zugänglich. Hier sind meine Gedanken zu Raku:

  • Larry ist sehr nett.
  • Raku hat das gleiches Motto wie Perl, “There’s More Than One Way To Do It”. Ich stimme total zu!
  • Pipes ==> macht so viel Spaß! Yay Functional Programming!
  • Man kann immer noch Dinge “bless”-en ❤️
  • Leider ist Code Import immer noch schwierig. Genauso wie bei Perl 😦. Der Compiler kann keine Files finden. Mann muss dem sagen, wo die sind. Zum Beispiel: RAKULIB='./helpers/post_analysis/lib' raku ./helpers/post_analysis/bin/post_analysis.raku

Codebeispiel

Hier ist ein Codebeispiel über Reduction metaoperators, es ist gleich wie reduce.

sub draft_posts { $^a + ($^b{'is_draft'}  ?? 1 !! 0) };
my $draft_post_total = [[&draft_posts]] @posts;
  • @posts ist eine Liste min Post hash objects
  • ?? !! ist ein ternary
  • sub ist subroutin aka function
  • $^a ist das erste argument
  • $^b{'is_draft'} Der Wert von ‘is_draft’ Key

raku resources

CLI tool: Hugo Post Analysis

repo: https://git.sr.ht/~travisshears/hugo-post-analysis

Um Raku zu üben, habe ich hugo-post-analysis gemacht. Es findet die Antworten auf:

  • Wie viel Entwurfen habe ich?
  • Wie viel Prozent der Beiträge sind übersetzt?

Das Skript durchsucht die Dateien. Dann druckt es das Output

Output Beispiel:

$ post_analysis
Which sections do you want draft count for:
snippets
blog
tags
notes
tutorials
=== OR ===
all
blog
=== Site Analysis ===
English Posts: 69
German  Posts: 17
Percentage translated: 24.637681%
Draft Posts:   9
=== Drafts ===
kampenwand
s3 bucket for site plugins
diy temperature monitor
life clock dev log
first six months: coral
Mt Journey

Was habe ich über meine Site gelernt?

25% meiner Beiträge sind übersetzt! Nicht schlecht. Ich werde mehr schreiben und mehr übersetzen. Vielleicht kann ich den Prozentsatz erhöhen aber, es ist schwierig. Ich muss jeden Artikel zweimal schreiben.

Im Moment mag ich Raku. Ich hoffe, Sie sind inspiriert, es zu probieren. 👋

\- [ tech, raku ]