100 Years of Erlang
Quinn Wilton / @wilton_quinn / quinnwilton.com
Joe Armstrong, 1950 - 2019
The Computer Science Laboratory Team, 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)
The Boardman Building, first commercial telephone exchange
George Willard Coy
Notes about George W. Coy, University of Connecticut Library
Hello Alexander.
Hello Watson!
Notes about George W. Coy, University of Connecticut Library
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
Bjarne Däcker
New-York tribune, December 7, 1919
The Bamberg herald, February 27, 1913
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"
Strowger Sunburst Dial, circa 1903
AE 40 Monophone, circa 1940s
circa 1902
Abbeville Press and Banner, January 6 1892
New-York tribune, December 7, 1919
Western Kansas World, November 5th 1892
A wall of two-motion selectors in a central office
New-York tribune, December 7, 1919
If you wish to make an erlang from scratch, you must first invent the uniselector
- Carl Sagan
From chapter 13: "Programming Telephony", in "New Concepts in Parallel Programming"
Ivar Jacobson
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
Joe philosophizing, 1985
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)
Joe Armstrong, Making reliable distributed systems in the presence of software errors (2003)
influenced_by(elixir, erlang).
influenced_by(elixir, clojure).
influenced_by(elixir, ruby).
influenced_by(erlang, lisp).
influenced_by(erlang, plex).
influenced_by(erlang, prolog).
influenced_by(erlang, smalltalk).
influenced_by(clojure, lisp).
influenced_by(clojure, erlang).
influenced_by(clojure, haskell).
influenced_by(clojure, java).
influenced_by(clojure, prolog).
ancestor_of(X, Y) :- influenced_by(Y, X).
ancestor_of(X, Y) :-
influenced_by(Y, Parent),
ancestor_of(X, Parent).
Atom
Atom
Functor
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)
Research Roadmap for STARDUST
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
100 Years of Erlang
By quinnwilton
100 Years of Erlang
- 630