# Raku

> member of the Perl family of programming languages

**Wikidata**: [Q2052676](https://www.wikidata.org/wiki/Q2052676)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Raku_(programming_language))  
**Source**: https://4ort.xyz/entity/raku

## Summary
Raku is a member of the Perl family of programming languages, designed as a successor to Perl 5 with enhanced features for modern software development. It was officially released on December 25, 2015, and is known for its multi-paradigm approach supporting object-oriented, imperative, and functional programming styles.

## Key Facts
- Inception date: December 25, 2015
- Designed by: Larry Wall, Damian Conway, and Audrey Tang
- Current stable version: v6.d "Diwali" released July 17, 2019
- License: Artistic License 2.0
- Mascot: Camelia
- File extensions: .raku, .rakumod, .rakudoc, .rakutest, .t
- Official website: https://raku.org/
- Cross-platform operating system support
- Influenced by: Perl, Common Lisp, Haskell, META II, APL, Lua, Python, Smalltalk, and Self
- Typing discipline: Dynamic typing with gradual typing support

## FAQs
### Q: What is Raku and how is it related to Perl?
A: Raku is a member of the Perl family of programming languages, designed as a successor to Perl 5 with modern features and improvements. It was originally known as Perl 6 before being renamed to Raku in October 2019.

### Q: Who created Raku and when was it released?
A: Raku was designed by Larry Wall, Damian Conway, and Audrey Tang, with its official release on December 25, 2015. Larry Wall is also the creator of the original Perl language.

### Q: What programming paradigms does Raku support?
A: Raku supports multiple programming paradigms including object-oriented programming, imperative programming, and functional programming, making it a versatile multi-paradigm language.

### Q: What are the main features that distinguish Raku?
A: Raku features gradual typing, powerful pattern matching, built-in concurrency support, and a rich set of built-in data types. It also includes a unique syntax that emphasizes readability and expressiveness.

## Why It Matters
Raku represents a significant evolution in the Perl language family, addressing many of the limitations and challenges faced by Perl 5 while introducing modern programming concepts and features. It matters because it provides developers with a powerful, expressive language that combines the flexibility and pragmatism of Perl with contemporary programming paradigms like functional programming and gradual typing. Raku's design philosophy emphasizes programmer productivity and code clarity, making it particularly valuable for complex software projects that benefit from multiple programming approaches. The language's cross-platform nature and extensive standard library make it suitable for a wide range of applications, from system administration to web development and beyond. By maintaining compatibility with Perl's philosophy while advancing its technical capabilities, Raku serves as both a bridge to Perl's legacy and a forward-looking tool for modern software development.

## Notable For
- Successor to Perl 5 with modern language features and improved syntax
- Multi-paradigm design supporting object-oriented, imperative, and functional programming
- Gradual typing system that combines dynamic and static typing capabilities
- Built-in support for concurrency and parallel processing
- Rich pattern matching and grammar system for text processing

## Body
### Development History
Raku began as a redesign of Perl 5, with development starting in 2000. The language underwent extensive design discussions and iterations before reaching its first stable release on December 25, 2015. Originally named Perl 6, the language was renamed to Raku in October 2019 to clarify its relationship with Perl 5 and to establish its identity as a separate language.

### Technical Architecture
Raku features a sophisticated runtime system that supports multiple dispatch, gradual typing, and built-in concurrency primitives. The language includes a powerful grammar engine that allows for easy creation of domain-specific languages and advanced text processing capabilities. Raku's type system supports both static and dynamic typing, giving developers flexibility in how they approach type safety.

### Ecosystem and Tools
The Raku ecosystem includes the Rakudo compiler, which is the most widely used implementation of the language. Raku provides extensive standard libraries covering areas such as networking, file systems, and data manipulation. The language also includes tools for testing, documentation generation, and package management through the Zef module installer.

### Community and Adoption
Raku has an active community of developers who contribute to the language's development and maintain various modules and tools. The language has communities on platforms like Reddit (r/rakulang), IRC (irc://irc.libera.chat/#raku), and various mailing lists. While not as widely adopted as some mainstream languages, Raku has found use in areas requiring sophisticated text processing, concurrent programming, and expressive syntax.

### Language Features
Raku includes features such as hyperoperators for parallel operations, junctions for boolean logic, and roles for composable object behavior. The language's syntax emphasizes readability and expressiveness, with features like Unicode operators and built-in support for various data structures. Raku also provides excellent support for functional programming concepts including higher-order functions, lazy evaluation, and immutable data structures.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Raku",
  "description": "Member of the Perl family of programming languages",
  "url": "https://raku.org/",
  "sameAs": [
    "https://en.wikipedia.org/wiki/Raku_(programming_language)",
    "https://www.wikidata.org/wiki/Q7425"
  ],
  "additionalType": "ProgrammingLanguage"
}

## References

1. [2016](https://github.com/rakudo/rakudo/blob/master/LICENSE)
2. [Source](https://github.com/perl6/roast/blob/master/docs/announce/6.d.md#changelog)
3. Freebase Data Dumps. 2013
4. [Source](https://docs.raku.org/language/filename-extensions)
5. KBpedia