why elixir matters a genealogy of functional programming fileoutline 1. introduction 2. genealogy 3....

Post on 03-Sep-2019

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Why Elixir MattersA Genealogy of Functional Programming

Osa Gaiusgithub.com/osagaius

@osagaius

Who am I?

Engineer at Mailchimp

Organizer - Atlanta Elixir Meetup

Outline

1. Introduction2. Genealogy3. History of Functional Programming4. Why Elixir Matters5. Moving Forward6. Conclusion

Introduction

Language Popularity (TIOBE Index)

Genealogyjee-nee-ol-uh-jee

History ofFunctional Programming

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

Lambda Calculus

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

Lambda Calculus

LISP

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

Lambda Calculus

LISP

Scheme

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

Lambda Calculus

LISP

Scheme

ML

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

Lambda Calculus

LISP

Scheme

ML

Erlang

1930 1940 1950 1960 1970 1980 1990 2000 2010 2020

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

1930 1940 1950 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

20201960

1930 1940 1950 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

1960

1930 1940 1950 1960 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

F#

1930 1940 1950 1960 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

F#

Clojure

1930 1940 1950 1960 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

F#

Akka

Clojure

1930 1940 1950 1960 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

F#

Akka

Clojure

Rust

1930 1940 1950 1960 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

F#

Akka

Clojure

Rust

Elixir

1930 1940 1950 1960 1970 1980 1990 2000 2010

Lambda Calculus

LISP

Scheme

ML

Erlang

Miranda

Haskell

2020

Scala

F#

Akka

Clojure

Rust

Elixir

Elm

Why Elixir Matters

“The rise in popularity of the Internetand the need for non-interrupted

availability of services has extendedthe class of problems that Erlang can

solve.”Joe Armstrong

Erlang x Elixir

● Syntax● The Web● Evangelism

Erlang x Elixir

● Syntax● The Web● Evangelism

1930 1940 1950 1960 1970 1980 1990 2000 2010

Erlang

2020

1930 1940 1950 1960 1970 1980 1990 2000 2010

Erlang

Java

2020

1930 1940 1950 1960 1970 1980 1990 2000 2010

Erlang

Java

2020

JS

1930 1940 1950 1960 1970 1980 1990 2000 2010

Erlang

Java

2020

RubyJS

1930 1940 1950 1960 1970 1980 1990 2000 2010

Erlang

Java

2020

Ruby

RailsJS

Erlang x Elixir

● Syntax● The Web● Evangelism

“The rise in popularity of the Internetand the need for non-interrupted

availability of services has extendedthe class of problems that Erlang can

solve.”Joe Armstrong

Moving Forward

“Unpopular languages are niche languages”

Meyerovich and Rabkin

Moving Forward

● Breadth vs Depth● Evangelism

Breadth vs Depth

● Libraries (aka Gems)● Domains

Moving Forward

● Breadth vs Depth● Evangelism

Evangelism

● Marketing● Consultation● Fan Out

Conclusion

Gracias!

Questions?

github.com/osagaius@osagaius

top related