Raku

Raku is Article description::a high-level, general-purpose, and gradually typed programming language. Raku is not tied to a specific programming paradigm; it supports procedural, object oriented, and functional programming.

The reference implementation of the Raku programming language has several major components:


 * The Rakudo reference compiler.
 * The NQP compiler toolchain.
 * MoarVM Raku's native virtual machine.
 * Zef a module manager for interacting with Raku's ecosystem.

Raku was created as both a specification and a test suite. Any implementation that passes the test suite Raku/roast is considered to be Raku. Thus, while MoarVM is Raku's default virtual machine it's not the only virtual machine that Raku supports. Currently, Raku can be run from within the Java and JavaScript virtual machines and more virtual machine targets are expected to follow.

Notable features

 * Multi-paradigm: procedural, object oriented, and functional programming styles are supported.
 * Grammars combine named regexes in a hierarchy with human readable rules and grapheme-level Unicode support to enable advanced text processing capabilities far beyond that of standard PCRE-style regular expressions.
 * A concurrency and async model that ensure that non-linear code is easy to read and maintain.
 * Native support for rational numbers which permits direct comparison of floating point numbers without concern for any accumulated rounding errors that would occur in other programming languages.
 * Lazy evaluation which enables features such as infinite sets.
 * Low boilerplate object oriented programming.

External resources

 * https://learnxinyminutes.com/docs/raku/ a basic primer on Raku.
 * https://raku.guide/ a quick overview of the Raku programming language.
 * https://course.raku.org/ a complete course for the Raku programming language.
 * Raku/roast Raku's test suite.