To paraphrase Robert Heinlein: “A developer should be able to master 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. Specialization is for insects.”
Perl 6 is a new multiparadigm language in the Perl family. 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.
More importantly, Perl 6 does not restrict you to a single paradigm across your entire application. Nor even within a single subroutine. You can easily combine and integrate all of these functional, procedure, declarative, and concurrent constructs within the same chunk of code, without losing readability or efficiency.
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. Perl 6 was the result.
In this presentation, Dr Damian Conway (one of the principle designers of Perl 6) will discuss and demonstrate some of the most interesting multi-paradigm features of the language.