Slide 1

Slide 1 text

Elixir |> Fun

Slide 2

Slide 2 text

UFRJ |> Startup |> Visagio Github: /victorlcampos Facebook: /victorlcampos Youtube: Cast2Dev

Slide 3

Slide 3 text

defmodule Elixir do @moduledoc “”” Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain. “”” end

Slide 4

Slide 4 text

Why is Elixir Fun?

Slide 5

Slide 5 text

Functional Paradigm

Slide 6

Slide 6 text

Same Argument Same Result

Slide 7

Slide 7 text

No Share States

Slide 8

Slide 8 text

No Side Effects

Slide 9

Slide 9 text

Unit Test is SO EASY NOW

Slide 10

Slide 10 text

Concurrency If you are locking you are probably doing something (very) wrong!

Slide 11

Slide 11 text

Erlang 99.999999999%

Slide 12

Slide 12 text

Erlang (29 anos)

Slide 13

Slide 13 text

Erlang (OTP) The (right) answer for concurrency problems. Ask Whatsapp!!

Slide 14

Slide 14 text

But... (Very) Ugly Syntax

Slide 15

Slide 15 text

Elixir comes to renew the Erlang Syntax SO...

Slide 16

Slide 16 text

The pipe operator |> g(h(f(x))) x |> f() |> h() |> g()

Slide 17

Slide 17 text

Pattern matching

Slide 18

Slide 18 text

Pattern matching

Slide 19

Slide 19 text

Lazy Evaluation

Slide 20

Slide 20 text

Tail Call Optimization (forget Stack Overflow)

Slide 21

Slide 21 text

Macros (with great power comes great responsibility)

Slide 22

Slide 22 text

Scalability (1 million processes in 7 s)

Slide 23

Slide 23 text

Fault-tolerance

Slide 24

Slide 24 text

Where can I use this to solve real problems?

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

FAST (Responds requests in microseconds)

Slide 28

Slide 28 text

2 Million Websocket Connections

Slide 29

Slide 29 text

Easy (and fun) to Learn “How long it took to convert our team from Rails to Phoenix? One Week” - Dockyard

Slide 30

Slide 30 text

Where can I start?

Slide 31

Slide 31 text

No content