Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Evolution of a Language

The Evolution of a Language

I gave roughly the same talk at ElixirConf Mexico in Mexico City the week before this one.

Andrea Leopardi

December 07, 2018
Tweet

More Decks by Andrea Leopardi

Other Decks in Programming

Transcript

  1. The
    LANGUAGE
    LANGUAGE
    EVOLUTION
    EVOLUTION
    of a
    The
    of a
    Photo by Yousef Espanioly on Unsplash

    View Slide

  2. @whatyouhide

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. weedmaps.com/careers

    View Slide

  9. TIMELINE

    View Slide

  10. Erlang
    1988
    Ruby
    1993
    Programming Ruby
    2001
    Rails
    2004
    Elixir
    2011
    Clojure
    2007
    7 Languages in
    7 Weeks
    2010

    View Slide

  11. 2011
    Elixir
    Jun 2013
    Ecto ElixirConf
    Jul 2014
    Phoenix
    Jan 2014
    Elixir 1.0
    Sep 2014
    Programming Elixir
    Oct 2014

    View Slide

  12. LANGUAGE
    EVOLUTION

    View Slide

  13. team COMMUNITY ecosystem

    View Slide

  14. team

    coordination

    quality assurance

    maintenance

    View Slide

  15. Community

    experimentation

    ecosystem

    usage

    View Slide

  16. has Elixir been
    growing?

    View Slide

  17. CONTRIBUTORS
    new contributors
    0
    55
    110
    165
    220
    year
    2011 2012 2013 2014 2015 2016 2017 2018

    View Slide

  18. Elixir conferences

    View Slide

  19. ElixirConf
    2014

    View Slide

  20. ElixirConf
    2015
    ElixirConf EU
    ElixirConf MX

    View Slide

  21. 2016
    ElixirConf EU
    ElixirDaze
    EMPEX
    ElixirConf
    Elixir.LDN
    ElixirConf MX

    View Slide

  22. 2017
    LoneStar ElixirConf ElixirDaze
    Erlang & Elixir Factory
    ElixirConf
    EMPEX
    Elixir With Love
    Elixir.LDN
    ElixirConf EU
    ElixirConf MX

    View Slide

  23. 2018
    LoneStar ElixirConf ElixirDaze
    EMPEX LA
    ElixirConf
    EMPEX
    Elixir Brazil
    Code Elixir ElixirConf EU
    Ruby & Elixir Taiwan
    Gig City Elixir
    The Big Elixir
    ElixirConf MX

    View Slide

  24. Hex
    new Hex users
    0
    450
    900
    1350
    1800
    year
    2014 2015 2016 2017 2018
    (users)

    View Slide

  25. Hex
    new Hex users
    0
    600
    1200
    1800
    2400
    year
    2014 2015 2016 2017 2018
    (packages)

    View Slide

  26. Hex
    new Hex users
    0
    500000
    1000000
    1500000
    2000000
    year
    2014 2015 2016 2017 2018
    (downloads)

    View Slide

  27. things we got better at

    View Slide

  28. port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port port port port port port port port port port port
    port

    View Slide

  29. Ruby
    Erlang
    otp?

    View Slide

  30. Erlang
    Ruby

    View Slide

  31. Lisp
    Clojure
    Erlang
    Ruby

    View Slide

  32. more attention
    tow
    ards OTP

    View Slide

  33. |>

    View Slide

  34. [1, [2], 3]
    |> List.flatten()

    |> Enum.map(fn x -> x * 2 end)

    View Slide

  35. |>

    View Slide

  36. significant
    events

    View Slide

  37. the importance of
    ecto

    View Slide

  38. shows a new w
    a
    y to do things

    View Slide

  39. data + pure code

    View Slide

  40. v
    alidates metaprogramming in elixir

    View Slide

  41. shows power of metaprogramming
    (will slightl
    y regret later)

    View Slide

  42. phoenix

    View Slide

  43. hooks users on Elixir through web
    channels

    View Slide

  44. nerves

    View Slide

  45. Elixir is not just for the web?!

    View Slide

  46. GROWTH
    factors
    (key)

    View Slide

  47. docs

    View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. tooling/ux/developer happiness

    View Slide

  52. xref
    IEx breakpoints
    syntax highlighting in IEx
    formatter
    ExUnit diff

    View Slide

  53. View Slide

  54. community

    View Slide

  55. What's next

    View Slide

  56. what will the
    team
    focus on?

    View Slide

  57. maintenance
    research
    +
    +
    developer happiness

    View Slide

  58. View Slide

  59. /
    community ecosystem

    View Slide

  60. elixir gets picked up
    by big companies
    (hopefully)

    View Slide

  61. Ecosystem will get
    larger and better

    View Slide

  62. less core contributors
    more ecosystem contributors

    View Slide

  63. commits
    commits
    0
    700
    1400
    2100
    2800
    year
    2011 2012 2013 2014 2015 2016 2017 2018

    View Slide

  64. CONTRIBUTORS
    new contributors
    0
    55
    110
    165
    220
    year
    2011 2012 2013 2014 2015 2016 2017 2018

    View Slide

  65. less elixir contributors
    more beam contributors

    View Slide

  66. elixir erlang

    View Slide

  67. commits to OTP by Elixir team
    0
    10
    20
    30
    40
    year
    2012 2013 2014 2015 2016 2017 2018
    Erlang CONTRIBUTORS

    View Slide

  68. Benchee.run/2
    benchee:run/2

    View Slide

  69. will Elixir
    SURVIVE?

    View Slide

  70. View Slide

  71. not much relying on the
    TEAM + language

    View Slide

  72. Contributors
    Core team
    José

    View Slide

  73. with

    View Slide

  74. contribute

    View Slide

  75. start discussions

    View Slide

  76. View Slide

  77. thanks
    @whatyouhide
    elixir-lang.org

    View Slide