Slide 1

Slide 1 text

Update from the Elixir team elixir-lang.org

Slide 2

Slide 2 text

Elixir v1.0 Sep 2014 > 180 contributors

Slide 3

Slide 3 text

Elixir v1.4 Jan 2017 > 520 contributors

Slide 4

Slide 4 text

Release every 6 months v1.5 → mid 2017 v1.6 → beg 2018 ... → ...

Slide 5

Slide 5 text

IMPROVEMENTS IN v1.5

Slide 6

Slide 6 text

UTF-8 atoms :""

Slide 7

Slide 7 text

Contributed back to OTP

Slide 8

Slide 8 text

test "こんにちは世界" do assert :こんにちは世界 end

Slide 9

Slide 9 text

josé = "wat" josé #=> "wat" UTF-8 VARIABLES http://erlang.org/pipermail/erlang-questions/2012-October/069820.html

Slide 10

Slide 10 text

Exception.blame/3

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

GenStage + Flow

Slide 15

Slide 15 text

A B C stages of computation with backpressure GenStage

Slide 16

Slide 16 text

parallel computations on collections Flow File.stream!("path/to/some/file") |> Flow.from_enumerable() |> Flow.flat_map(&String.split(&1, " ")) |> Flow.partition() |> Flow.reduce(fn -> %{} end, fn word, acc -> Map.update(acc, word, 1, &(&1 + 1)) end) |> Enum.to_list()

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

http://bit.ly/genstage

Slide 19

Slide 19 text

Many small improvements CHANGELOG.md

Slide 20

Slide 20 text

FUTURE

Slide 21

Slide 21 text

Deprecate tuple calls

Slide 22

Slide 22 text

{List, []}.first() List.first({List, []})

Slide 23

Slide 23 text

Dynamic supervisor

Slide 24

Slide 24 text

simple_one_for_one confusing/mixed API documentation

Slide 25

Slide 25 text

simple_one_for_one confusing/mixed API documentation DynamicSupervisor

Slide 26

Slide 26 text

RESEARCH PROJECTS

Slide 27

Slide 27 text

Data streams + Property testing

Slide 28

Slide 28 text

test "starts_with?/2" do assert for s1 <- Data.string(), s2 <- Data.string() do String.starts_with?(s1 <> s2, s1) end end

Slide 29

Slide 29 text

Google Summer of Code

Slide 30

Slide 30 text

ExFormat def foo ( a, b ) do a+ b end def foo(a, b) do a + b end

Slide 31

Slide 31 text

Language Server Protocol http://langserver.org

Slide 32

Slide 32 text

GenHTTP Functional, flexible HTTP client

Slide 33

Slide 33 text

github.com/elixir-lang/elixir

Slide 34

Slide 34 text

elixir-lang.org