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

Transcript of GOTO Chicago - The soul of Erlang and Elixir · BEAM (Erlang VM) CPU CPU CPU CPU. client system....

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.