100 Years of Erlang

Quinn Wilton / @wilton_quinn / quinnwilton.com

Joe Armstrong, 1950 - 2019 

The Computer Science Laboratory @ Ellemtel, circa 1988

Joe Armstrong, A History of Erlang (2007)

of the many inventors of technical improvements in that historic period, most have remained anonymous. Few names have been recorded in the history of the telephone, most of them being completely unknown.

- Robert Chapuis, 100 Years of Telephone Switching (2003)

Boardman Building, New Haven, Connecticut

First Telephone Exchange

The first telephone

Hello Alexander.

Hello Watson!

Notes about George W. Coy, University of Connecticut Library

George Willard Coy

The first telephone directory

ELLEMTEL CS Lab Directory (as of 1994)

Blueprint of Coy's Exchange

An early exchange, modeled after Coy's, in Bridgeport, Connecticut

Western Electric "Standard" Switchboard

Almon Strowger

The Bamberg herald, February 27, 1913

New-York tribune, December 7, 1919

Strowger, at the height of his paranoia

The Bamberg herald, February 27, 1913

The Bamberg herald, February 27, 1913

Strowger's nemesis. Probably.

The Bamberg herald, February 27, 1913

Up four, and over three

The Bamberg herald, February 27, 1913

Step-by-Step Switch

Step-by-Step Switch, front

New-York tribune, December 7, 1919

Patent for the "Two-Motion Strowger Switch"

circa 1902

Strowger Sunburst Dial, circa 1903

Abbeville Press and Banner, January 6 1892

New-York tribune, December 7, 1919

A wall of Strowger switches

Western Kansas World, November 5th 1892

Joe Armstrong, A History of Erlang (2007)

AXD301

If you wish to make an erlang from scratch, you must first invent the uniselector

- Carl Sagan

Concurrent Programming in Erlang (1993)

Chapter 13: Programming Telephony, New Concepts in Parallel Programming (1990)

Ivar Jacobson

Communication Between Heterogeneous Systems (2000)

defmodule Phone do
  def idle() do
    receive do
      :off_hook ->
        start_tone()
        getting_number()
        
      {:seize, pid} ->
        send(pid, :seized)
        start_ringing()
        ringing_b_side()
    end
  end
  
  defp getting_number() do
    receive do
      ...
    end
  end
  
  defp ringing_b_side() do
    receive do
      ...
    end
  end
  
  defp start_tone(), do: ...
  defp start_ringing(), do: ...
end

phone = spawn(&Phone.idle/0)
send(phone, :off_hook)

Magnus Fröberg

Magnus Fröberg

Message Sequence Diagram generated by et_viewer

Joe philosophizing, 1985

Solve Ericsson's software problem.

- Bjarne Däcker

This seemed to me at the time a quite reasonable request—though I now realise that it was far more difficult than I had imagined

- Joe Armstrong, A History of Erlang (2007)

Joe Armstrong, A History of Erlang (2007)

influences(erlang, elixir).
influences(erlang, clojure).

influences(prolog, erlang).
influences(prolog, clojure).

influences(lisp, erlang).
influences(lisp, clojure).

influences(clojure, elixir).
influences(ruby, elixir).
influences(plex, erlang).
influences(smalltalk, erlang).
influences(haskell, clojure).
influences(java, clojure).

ancestor(X, Y) :- influences(X, Y).
ancestor(X, Y) :-
  influences(Parent, Y),
  ancestor(X, Parent).

Atom

Atom

Functor

u :- p, q, ..., t.
u ← (p ∧ q ∧ ... ∧ t)
false ← p ∧ q ∧ ... ∧ t

...to first-order logic!

...negate it!

...find a contradiction!

Solution!

Logic Programming for Real-Time Control of Telecommunication Switching Systems (1990)

Joe Armstrong, Making reliable distributed systems in the presence of software errors (2003)

Strand: New Concepts in Parallel Programming, 1990

UBF(B) specification for an IRC server

(types omitted for space)

Joe Armstrong, Erlang Mailing List (2016)

Joe Armstrong, Erlang Mailing List (2016)

Joe Armstrong, Making reliable distributed systems in the presence of software errors (2003)

Research Roadmap for STARDUST

github.com/gertab/ElixirST

Type safe distributed actors with hot code reloading!

I have this idea in which we’ll connect all of the worlds Erlang systems to each other, imagine if every process could talk to every other process, world-wide!

- Joe Armstrong

Abbeville Press and Banner, September 28, 1892

Made with Slides.com