goto chicago - the soul of erlang and elixir · beam (erlang vm) cpu cpu cpu cpu. client system....

20
The soul of Erlang and Elixir Saša Jurić @sasajuric

Upload: others

Post on 10-Aug-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

The soul of Erlang and ElixirSaša Jurić@sasajuric

Page 2: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

BEAM languages

ErlangElixirLFE

AlpacaGleam

Page 3: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

process... do_something(...) ...

Page 4: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

... spawn(fn -> ... end) ...

Page 5: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

process A

... foo(...) bar(...) ...

process B

... baz(...) qux(...) ...

Page 6: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

send( process_b, some_message )

receive do message -> handle(message) end

process a process b

Page 7: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

BEAM (Erlang VM)

Page 8: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

BEAM (Erlang VM)

Page 9: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

scheduler scheduler scheduler scheduler

BEAM (Erlang VM)

CPU CPU CPU CPU

Page 10: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection
Page 11: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

client

system

Page 12: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

client

system

sum(1..3)

6

Page 13: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

client

connection

client

connection

client

connection

Page 14: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

connection

calculation

spawn

send result & stop

Page 15: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection
Page 16: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection
Page 17: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

uniformity

simpler developmentsimpler testing

simpler deploymentsimpler maintenance

improved collaboration

Page 18: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

start simplego far

Page 19: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection

50% off using code wm042919au

40% off using code ctwgotochicago19

at manning.com

Page 20: GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system. client system sum(1..3) 6. client connection client connection client connection