<

Scott Lystig Fritchie

Stuck in distributed systems tarpits for 30 years

Scott Lystig Fritchie was a UNIX systems administrator until he returned to programming full-time at Sendmail, Inc. While at Sendmail in 2000, a colleague introduced him to Erlang. His world hasn't been the same since.

In addition to writing Erlang and occasionally C for the Erlang virtual machine, he has had papers published by USENIX, the Erlang User Conference, and the ACM and has given presentations at Erlang Factory, Code BEAM, and Ricon.

Scott works at Wallaroo Labs on a polyglot distributed system of Pony, Python, and C.

Past Activities

Scott Lystig Fritchie
Code BEAM STO 2019
17 May 2019
11.25 - 12.10

The wide World of almost-Actors: comparing the Pony language to BEAM languages

As Erlang & Elixir programmers, the Actor Model of computation sits comfortably in our minds. Processes that communicate only by message passing makes building concurrent applications easy. It feels natural. We take it for granted.

The inventor of the Actor Model, Dr. Carl Hewitt, says that Erlang does not implement the Actor Model.

Erlang co-creators Joe Armstrong and Robert Virding agree with Hewitt.

Let's explore Actor Model wrongs & rights with BEAM languages compared to Pony.

OBJECTIVES

  • Have a solid understanding of what the Actor Model of computing is and the BEAM VM's interpretation of the model.
  • You will be very tempted to start writing safe, fast, concurrent programs in Pony.
  • You'll look at the BEAM's selective receive operator with fresh, new eyes.
  • You'll start seeing differences in other actor languages & frameworks used in industry, such as E, Scala, Akka, and Orleans.

TARGET AUDIENCE

People who want to understand why the BEAM VM is what it is today, but how other languages (such as Pony) can make very different choices when implementing the Actor Model.

And anyone interested in learning more about the Pony language.

Scott Lystig Fritchie
Code BEAM SF 2018
16 Mar 2018
16.15 - 17.00

Wide World of Actors: comparing the Pony language to Erlang

As Erlang & Elixir/OTP programmers, the actor model of computation sits comfortably in our minds. Processes that communicate only by message passing makes building concurrent applications easy. It feels natural. We take it for granted. The Pony language started with the same foundation as Erlang: the actor model of message passing and independent, concurrent computing units.

But Pony is a very different beast. Pony uses a strong static type system to create crash-free, concurrency-safe access to sharable, garbage-collected memory without running in a virtual machine.

To begin, Scott will review the actor model's definition and history. He will then discuss the design trade-offs that took Erlang/OTP's and Pony's implementations down very different paths. As an example, Erlang/Elixir's "selective receive" feature allows message handling in any order. Pony's message receiving is strictly first-in first-out (FIFO) order only. What good comes from that difference?

 

Talk objectives

  • Have a solid understanding of what the actor model of computing is and the BEAM VM's interpretation of the model.
  • You will be very tempted to start writing safe, fast, concurrent programs in Pony.
  • You'll start seeing differences in other actor languages & frameworks used in industry, such as Scala, Akka, and Orleans and in static typing systems such as Rust's.
  • You'll definitely start using the Dialyzer on your Erlang & Elixir code much more often.