Skip to content

Instantly share code, notes, and snippets.

@awwaiid
Last active May 6, 2016 16:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save awwaiid/6d9c9965578e721077c132943fde504c to your computer and use it in GitHub Desktop.
Save awwaiid/6d9c9965578e721077c132943fde504c to your computer and use it in GitHub Desktop.

Strange Loop talk proposal -- due 2016-05-09 http://thestrangeloop.com/cfp.html

Title: Rakudo/Perl6, The Polyglot Language

Abstract (max 1500 chars)

Taking multi-paradigm to a new level, Perl 6 goes far beyond its Perl 5 roots, adopting concepts from many languages. From Haskell/Elixir style typed multi-dispatch to Ruby style objects-all-the-way-down, you can pick a model that best fits your problem domain. Add to this some very practical innovations, such as a grammar engine and native stream/promise async/concurrency, and you have both a useful tool and an interesting experimentation platform. The production-ready Rakudo implementation of Perl 6 targets both its own MoarVM and the JVM, and a JS target is in progress!

In this talk I'll highlight both some of the expected/standard features of a modern gradually-typed dynamic language, along with highlights of where Perl 6 provides some innovative concepts.

What will the attendee learn? [private]

Instructions: Describe (briefly) what the attendee will learn from this
session beyond what we can see in the abstract. This section will be
available only to organizers and reviewers. Please avoid any personally
identifying information.

Attendees will learn some Perl 6! I'll especially highlight two things:

  • "boring" code is what you'll normally see in day-to-day life. Classes, functions, library usage
  • Demonstrate some advanced language features that fit nicely into the language. There are too many to go over, so I will pick 2 of them to do a deep dive, and mostly mention others at a very high-level.

Example:

# No parallel map-reduce
@big-data.map(*.calculate).grep(*.is-good)

# Parallel map-reduce, add 'race'
@big-data.race.map(*.calculate).grep(*.is-good)

Adding .race makes this use multiple threads (separate cpu cores), under the hood switching from plain lists to basically streams of promises.

I'll use this and other similar examples, looking to both inspire people to try Perl 6 and steal some ideas back into their own systems!

I could also do this as a workshop-session if you'd like, in which case an additonal focus would be on some hands-on exercises.

Talk history [private]

Instructions: Please list where you have given or may give this talk prior
to Strange Loop, and whether videos of the talk are available. Reviewers
will NOT see this information but the organizers may use it during final
consideration - we WILL accept talks that have been previously given
elsewhere.

I haven't presented this exact talk, but have presented similar material at the DC Polyglot Programming Meetup and at the 2015/2016 DC-Baltimore Perl Workshop. I've been an active contributor to the Perl 6 and Rakudo projects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment