A good Computer Science syllabus will cover everything from bit manipulation to set theory, from Boolean algebra to concurrency, from parsing grammars to graph traversal, from two’s-complement arithmetic to higher-order functions, from sorting algorithms to multiple dispatch, from macros to closures. Along the way, the CS student should also learn how to program competently in (at least) the imperative, object-oriented, and functional paradigms.
Raku is a new programming language that aims to provide all of the major features of all of the major languages from all three dominant paradigms. It offers everything from low-level bitwise operations on raw bytes, to a full range of built-in system commands, to hygenic source code macros, to direct symbol-table introspection and manipulation, to run-time composition of multiply dispatched multimethods from mixins, to object-oriented grammars with hybrid DFA/NFA rules, to concurrent higher-order functions applied over infinite lists of pipelined arbitrary precision integers.
In other words, we stole the best features from 20 different languages, and then spent a decade working out how to put them together in a way that is clean, efficient, powerful, and still usable by actual human beings. And Raku was the result.
In this presentation, Dr Damian Conway (one of the principle designers of Raku) will discuss some of the more interesting features of the language and demonstrate how it might be of value in an integrated Computer Science curriculum.