Generated by GPT-5-mini| Raku | |
|---|---|
| Name | Raku |
| Paradigm | Multi-paradigm: object-oriented programming, procedural programming, functional programming, concurrent computing |
| Released | 2015 (as rename from Perl 6) |
| Designer | Larry Wall |
| Developer | Rakudo developers, MoarVM community |
| Typing | Dynamic, gradual |
| Influenced by | Perl, Haskell, Smalltalk, Python, Ruby, Lisp |
| Influenced | Julia (programming language), Rust (programming language), Elixir (programming language) |
| License | Artistic License, GNU General Public License |
| Website | raku.org |
Raku is a high-level, general-purpose programming language that evolved from a major redesign of Perl started in the early 2000s. It emphasizes expressiveness, programmer ergonomics, and modern features for concurrency, metaprogramming, and Unicode support while retaining practical text-processing strengths found in its predecessor. Its development has involved contributors from multiple projects and institutions and has influenced contemporary language research and implementations.
Raku originated as a redesign effort of Perl led by Larry Wall and contributors from the Perl 6 design documents process, with ongoing work coordinated among the Perl Foundation, the Perl 6 Steering Committee, and independent implementers such as the Rakudo project. Major milestones include the naming transition from Perl 6 to its current designation in 2019 after discussions among stakeholders including maintainers of Perl 5 and the Open Source Initiative community. Early implementations targeted virtual machines and runtimes such as JVM, MoarVM, and Parrot (virtual machine), while standards and grammar work involved collaborations with projects including YAPC and conferences like Perl and Raku Conference. The language evolution has intersected with broader movements in programming languages at venues such as ACM SIGPLAN and influenced language tooling seen in ecosystems around Python Software Foundation and Mozilla Foundation projects.
Raku's design centers on features inspired by languages like Haskell (functional patterns), Smalltalk (object model), and Lisp (metaprogramming), while maintaining practical utilities reminiscent of Perl and Ruby. Key features include an object system supporting roles and multiple dispatch, a gradual typing system influenced by TypeScript and research in gradual typing literature, and native Unicode handling aligned with standards from Unicode Consortium. Concurrency constructs such as promises, supplies, and channels borrow ideas from languages like Go (programming language) and Erlang's actor model, and Raku provides powerful regex and parsing capabilities evolved from PCRE and context-free parsing techniques used in compiler projects at institutions like MIT and Stanford University. The language also integrates grammars, macros, and metaobject protocol facilities comparable to those in Common Lisp implementations and CLOS research.
Raku's syntax is expressive and designed for readable domain-specific idioms; it provides sigils, interpolated strings, and hyperoperators with semantic models influenced by Perl and Ruby. Its substring and pattern matching facilities extend concepts from Regular expression engines and parsing expression grammars discussed in O'Reilly Media texts and academic courses at Carnegie Mellon University. The type and coercion semantics reflect research from University of Cambridge and gradual typing experiments such as those in Scripting Languages Summit discussions. Scoping rules, lexical and dynamic variable distinctions, and exception semantics are informed by language theory presented in ACM proceedings and textbooks used at Princeton University.
Multiple implementations exist, notably the Rakudo compiler targeting MoarVM and the JVM backend; earlier experiments involved the Parrot (virtual machine) project. Tooling includes build and dependency systems like zef and integration with editors and IDEs such as Visual Studio Code, Emacs, and Vim. Continuous integration and packaging efforts appear in repositories hosted on platforms like GitHub and GitLab, and binary distributions are provided by package maintainers for operating systems including Debian, Fedora, and macOS. Runtime performance and VM integration have been topics at conferences including Perl and Raku Conference and Strange Loop, with benchmarks compared against runtimes like CPython and JVM-based languages.
The Raku community is organized through groups such as the Raku Foundation and regional meetups tied to conferences like Perl and Raku Conference and YAPC. Educational and corporate adopters include teams in web operations, bioinformatics, and data processing at organizations similar to those participating in OSCON and FOSDEM. The language has been used in tooling, scripting, and DSLs within companies and research labs referenced in case studies at PyCon and EuroPython-adjacent talks. Community resources include mailing lists, IRC/Matrix channels, online learning materials hosted by contributors affiliated with institutions like University of Oxford and University of Toronto, and books published by technical publishers such as O'Reilly Media.
Raku is suited for tasks ranging from text processing and system scripting to web development and concurrent services. Example domains include log analysis in environments run by organizations like NASA-adjacent research groups, data munging used in bioinformatics pipelines at institutions like Broad Institute, and DSLs for configuration used in infrastructure tooling alongside projects such as Ansible and Terraform-style ecosystems. Web frameworks and HTTP libraries integrate with web servers common in production stacks such as NGINX and Apache HTTP Server, while asynchronous I/O and actors make Raku applicable to microservices architectures examined at Kubernetes-focused conferences. Libraries and modules for numerics, networking, and parsing are maintained in community repositories similar to those on CPAN for Perl and are used in academic and industrial prototypes showcased at venues like Strange Loop and FOSDEM.