July 20–24, 2015
Portland, OR

Perl 6: Transparadigm programming 101

Damian Conway (Thoughtstream)
9:00am–12:30pm Tuesday, 07/21/2015
Foundations E143/144
Tags: Perl
Average rating: ****.
(4.64, 14 ratings)

Prerequisite Knowledge

This tutorial is designed for those with some experience in one or more functional, procedural, declarative, OO, or concurrent programming languages. Participants will be expected to recognize and understand simple programs for such tasks as mean/median/mode calculations, quicksort, mergesort, Fibonacci number generation, data validation, prime number recognition, bank account management, LaTeX parsing, LZW compression, and SHA-256 digests,

Materials or downloads needed in advance

Participants may find it useful (but certainly not necessary) to have pre-installed the Rakudo Perl 6 compiler (and the MoarVM virtual machine) on their own laptops. See: http://rakudo.org/how-to-get-rakudo/

Description

Perl 6 is a new production-ready multi-paradigm 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 parsing 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 within a single compilation unit, namespace, block, subroutine, or even statement. Instead, you can easily combine and integrate all these functional, procedural, declarative, OO, and concurrent constructs within any chunk of code, no matter how small, without losing readability or efficiency. We call it “transparadigm programming”: not five separate choices of computation model, but a single computation model with five integrated choices.

In other words, we stole the best features from 20 different languages, and then spent over a decade working out how to fit them together in a way that is clean, efficient, powerful, and still usable by actual human beings. Perl 6 was the result.

In this class, Dr Damian Conway (one of the principle designers of Perl 6) will discuss and demonstrate some of the most interesting transparadigmatic features of the language, using familiar real-world examples stolen from every Programming 101 class you’ve ever taken.

Photo of Damian Conway

Damian Conway

Thoughtstream

Damian Conway is an internationally renowned speaker, author, and trainer, and a prominent contributor to the Perl community. Currently he runs Thoughtstream, an international IT training company that provides programmer training from beginner to masterclass level throughout Europe, North America, and Australasia. Most of his spare time over the past decade has been spent working with Larry Wall on the design and explication of the Perl 6 programming language. He has a PhD in computer science and was until recently an adjunct associate professor in the Faculty of Information Technology at Monash University, Australia.

Comments on this page are now closed.

Comments

Picture of Audra Carter
Audra Carter
07/02/2015 1:34am PDT

Hi James,

You are registered for the correct tutorial, but were unfortunately sent the wrong instructions. I was informed that the correct email will go out to you and the group today.

Apologies for any confusion.

James Myers
07/01/2015 5:48pm PDT

Everyone in the group I registered received an email about having signed up for this tutorial, but none of us chose this class (nothing against it, I <3 Perl). I’m concerned this will create some sort of issue when we arrive and attempt to attend the tutorial we actually selected. I’ll email OSCON directly to cover our bases, but leaving a comment here was the suggestion in the email itself.