Raku (programming language): Difference between revisions
No edit summary |
No edit summary |
||
| Line 42: | Line 42: | ||
[[Category:Concurrent programming languages]] | [[Category:Concurrent programming languages]] | ||
[[Image:Detail-145451.jpg|thumb|center|A close-up shot of a computer screen displaying code written in Raku. The code should be clear and legible, with syntax highlighting to distinguish different elements of the code.]] | [[Image:Detail-145451.jpg|thumb|center|A close-up shot of a computer screen displaying code written in Raku. The code should be clear and legible, with syntax highlighting to distinguish different elements of the code.|class=only_on_mobile]] | ||
[[Image:Detail-145452.jpg|thumb|center|A close-up shot of a computer screen displaying code written in Raku. The code should be clear and legible, with syntax highlighting to distinguish different elements of the code.|class=only_on_desktop]] | |||
Latest revision as of 16:31, 7 November 2025
Introduction
Raku, formerly known as Perl 6, is a member of the Perl family of programming languages. It was officially renamed to Raku in October 2019. Raku introduces elements of many modern and historical languages. The development of Raku began in 2000 and its first stable version, Raku 6.c, was released in December 2015.
History
Raku's development was first announced by Larry Wall, the creator of Perl, on 19 July 2000. While initially intended to be a redesign of Perl 5, it was decided that Raku would be a complete break from the previous versions of Perl, allowing for greater innovation and reducing backward compatibility issues. The language's development was a community-led effort, with a team of volunteers contributing to its design and implementation.
Design
Raku's design philosophy is rooted in the principle of TIMTOWTDI (There Is More Than One Way To Do It), a philosophy shared with Perl. However, Raku aims to be more internally consistent than Perl, with a more coherent design. It also introduces several new features not present in Perl, such as a robust object-oriented programming model, a powerful type system, and support for concurrent and reactive programming.
Syntax
Raku's syntax is largely similar to Perl's, but with several significant differences. For example, Raku uses sigils consistently to mark the type of a variable, whereas Perl uses them to mark the context. Raku also introduces several new operators, and has a more consistent and extensible syntax for regular expressions.
Features
Raku includes a number of features designed to make programming easier and more flexible. These include:
- Object-oriented programming: Raku has a robust object-oriented programming model, with support for classes, roles (similar to interfaces or traits in other languages), and multiple inheritance.
- Type system: Raku has a powerful type system, with support for both static and dynamic typing. It also includes gradual typing, allowing developers to add type annotations to their code as needed.
- Concurrent and reactive programming: Raku has built-in support for concurrent and reactive programming, with features such as promises, channels, and supplies.
- Metaprogramming: Raku supports metaprogramming, allowing programs to modify their own structure and behavior at runtime.
- Grammars: Raku includes a powerful system for defining grammars, which can be used for parsing and generating structured data.
Implementations
There are several implementations of Raku, the most notable of which is Rakudo. Rakudo is developed by the Perl community and is the most complete and up-to-date implementation of Raku. It is available on a variety of platforms, including Windows, Linux, and macOS.
Usage
Raku is used in a variety of applications, ranging from web development to system administration to bioinformatics. Its flexibility and power make it a good choice for many different types of programming tasks.
See Also

