Skip to content
0:00 / 0:00

#perl6#raku#concurrency

Parallelism, Concurrency, and Asynchrony in Perl 6 / Jonathan Worthington

yapcasia

1K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 2 people: 2 on Hacker News.
  • Presented by Jonathan Worthington
  • May be out of date. The tools, versions or practices it shows have likely moved on.

Intermediate. Assumes working knowledge.

6K views11 years ago2 recommendations

Programming languagesSystems programmingConcurrency and parallelismLanguage design and type systems

Jonathan Worthington explains the design and implementation of concurrency, parallelism, and asynchronous programming features in Perl 6.

The uploader added no description.

Why it's here

2 people recommend this

What people say. Recommended as a convincing demonstration of Perl 6's pragmatic design and powerful concurrency features.

Moments people linked to

keeperofdakeyson Hacker News • Recommends

On “Perl 6 hands-on tutorial – A small introduction to a big language [pdf]”

As someone who is relatively new to perl, I think perl 6 is definitely a positive direction. It removes lots of inconsistencies, while providing a clean base for future expansion. For something like the sigils, what's more important - to know that a variable is a scalar, or that it's some kind of hash/array? The second would definitely be less confusing when learning the language. There are also definitely some good things coming out of perl 6, like this link to this video

ppluon Hacker News • Recommends

On “Wow, Perl 6 [video]”

You can go to link , download it, and play with it now :) I recommend a look at a couple of videos to get started too: link link to this video

u/raiphin r/ProgrammingLanguages • Mentions

On “Dream language: Concurrency?”

First, being a bit provocative on your specific suggestions: * ✅ **message passing**. Actor model theory, where mathematics meets physics on the latter's terms, appropriately resolves uncertainty. In addition, it's consistent with good OO decomposition and makes it easier to communicate between components in a heterogenous authorship/ownership distributed computing environment -- like the internet. * ❌ `async`. Devs advocating for PLs whose designers deemed it *necessary* to force devs to color functions tend to advocate for requiring marking asynchronous functions with an `async` keyword or equivalent. But language designers willing to require that all compiler backends/platforms support s…
26View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On ““Concurrency made easy”: coming soon to a programming language near you”

This author is years behind. > Structured concurrency ... inklings of structured concurrency appeared ... for example, in 2014 ... However, it was this recent wave 2016-2018 of library authors who framed the problem clearly, proposed a coherent solution including cancellation and error propagation semantics The author is only paying attention to recent articles, libraries and hype. These issues have been pondered for decades. In Jonathan's closing remarks during a presentation showing off the clean design (and working code) that is already in place in Perl 6 he noted: > We've had a lot of ... years building these things out of Threads, out of call backs, out of locks. What I've shown…
6View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On “Are the any programming languages with syntax constructs to show parts which can be executed in parallel?”

…bar»baz # par-leaf-apply -- apply baz to every leaf of the tree bar bar «op» baz # par-leaf-apply -- apply op (eg +) pairwise to bar and baz leaves hyper ... # par-pipeline -- return results in same order as input race ... # par-pipeline -- return results in order they come back See for example this link to this video from 2015. I have to run now but tonight will have time to explain more and find suitable more recent videos this year.…

u/raiphin r/ProgrammingLanguages • Mentions

On “What Color is Your Function?”

P6 also avoids coloring of functions (like Go). (It adds support for structured concurrency atop multi prompt (scoped) continuations.)
4View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On “Notes on structured concurrency, or: Go statement considered harmful”

This reminds me of a key element driving Perl 6's concurrency/async design. As Jonathan Worthington^1 concluded several years ago near the end of his "Parallelism, Concurrency, and Asynchrony in Perl 6" presentation (link to this video, slides): > It's time to embrace structured approaches to parallel, asynchronous, and concurrent programming. Thus, while Perl 6 does have low- and mid- level concurrency/async related constructs, including an equivalent of `go` (`start`), and Promises, Channels, Supplies, `await`, and so on, it also has higher level structured control flow constructs such as `react` / `whenever`, which is like an async `for` loop inside a nursery in terms of the OP article's vocabula…

agumonkeyon Hacker News • Mentions

On “Larry Wall Unveils Perl 6.0.0”

The typing and grammar mechanism aren't common, it may influence other languages. Also, Perl managed to survive even without mainstream relevance so the community will probably keep enjoying it. ps: I found this talk pretty convincing about pragmatism link also: link to this video

u/raiphin r/ProgrammingLanguages • Mentions

On “[2014; Perl 6] Racing to writeness to wrongness leads”

Thanks for commenting. I'll return to it in a mo. But first... ----- OMG!!! My OP was supposed to be about an article Jonathan wrote in 2014. Hence the title "2014; Perl 6 Racing to writeness to wrongness leads". I talked in several places about "the linked article" because that was the whole point of my OP. I just realized I failed to link to the article! While I was delighted by you choosing to comment; was already grateful you did; and am now even more so; and happy to see your new article; I was quite disappointed that no one reacted to Jonathan's full article, not even you. Now I understand why. (Or at least can rationalize to myself that I know why,) It's because I didn't link…
2View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On “The Power of Lifetimes: Cyclone, Rust and beyond”

>A year ago, Nathaniel Smith articulated a similar attack on our current approach to concurrency (e.g., Go threads). He proposed a switch to structured concurrency instead. "our current approach"? Whose the implicit we? :) I've been confused about that article and its apparent premise that structured concurrency and nursery blocks weren't already available in other languages for a year. Perhaps you can explain to me what I'm missing? >... a language that supports structured concurrency and nursery blocks would be able to do something novel and different Aiui P6 has for years had elegant built in support for what that article discusses. As an initial attempt to document the P6 features I…
2View on Reddit

u/minimimin r/compsci • Mentions

On “Computer and Human Languages: The Linguistics of Programming Languages”

Here is a (very nice) presentation about how it can help: link to this video (Regarding your edit)
1View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On “Could a language have automatic future/promise/lazifying of expressions?”

In P6, that's done with `start` expression. P6 was built from the ground up with this sort of simple transitioning from synchronous code to parallel, asynchronous, and concurrent code in mind. Here's a link to simple examples showing the transition from synchronous to asynchronous code that's part of an easy to understand hour long presentation covering various flavors of easy transitioning from synchronous code to parallel, asynchronous and concurrent code. (Matching slides).
1View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On “Which programming paradigms do you find most interesting or useful, and which languages do you know that embrace those paradigms in the purest form?”

> Which ones feel most interesting? For this comment I'll primarily focus on paradigms related to concurrency. (NB Not parallel computing. Not asynchronous programming. cf What are the differences between parallel, concurrent, and asynchronous programming?.) The Wikipedia list of programming paradigms includes a top level "Concurrent computing" paradigm and five sub-categories. Of those, I find three especially interesting: * Actor-based. Quoting a 1981 paper the Actor Model, which was introduced in papers publishing in 1973, was "motivated by the prospect of highly parallel computing machines consisting of dozens, hundreds, or even thousands of independent microprocessors, each with its…
1View on Reddit