< Return to Video

Elixir Conf 2014 - Keynote: Elixir by Jose Valim

  • Not Synced
    Good morning .. ahh I'm really excited to
  • Not Synced
    do this talk because it's actually the
  • Not Synced
    first time I can give a talk about Elixir
  • Not Synced
    and assume that the audience knows what
  • Not Synced
    Elixir is, right?
  • Not Synced
    (laughter)
  • Not Synced
    So that's really great, that's really..ah
  • Not Synced
    changing face because usually I'm going
  • Not Synced
    to other conferences and I'm always giving
  • Not Synced
    the introductory talk, right? What Elixir
  • Not Synced
    is about, what are the language goals.
  • Not Synced
    So this talk is not about that okay?
  • Not Synced
    This talk is about Elixir past and future.
  • Not Synced
    I think it's kind of expected to talk
  • Not Synced
    about from where the language came,
  • Not Synced
    because now we are close to reach 1.0.
  • Not Synced
    And I think there are important lessons,
  • Not Synced
    things that happened throughout this
  • Not Synced
    process that we could share, that could
  • Not Synced
    help the community grow.. ah.. together.
  • Not Synced
    So if we want to talk about Elixir past,
  • Not Synced
    one think we could do is that we could go
  • Not Synced
    to the Elixir timeline. So this, I got it
  • Not Synced
    from GitHub. So, the vertical, we got the
  • Not Synced
    number of commits, and I think it's per
  • Not Synced
    week, and we have the whole year of 2011
  • Not Synced
    in there. And the first commit was right
  • Not Synced
    at the beginning of 2011, okay, it was
  • Not Synced
    like 9 January or something like that. But
  • Not Synced
    I actually want to rewind a little bit
  • Not Synced
    more, okay, I want to go a little bit back
  • Not Synced
    before 2011 but not too much.. it's not
  • Not Synced
    about my birth or anything like that. It's
  • Not Synced
    when...I'm going back to 2005 and I choose
  • Not Synced
    this article, The Free Lunch is Over,
  • Not Synced
    because it was about this time that I was
  • Not Synced
    personally starting to get aware of the
  • Not Synced
    changes that are happening. So The Free
  • Not Synced
    Lunch is Over is a paper from Sutter and
  • Not Synced
    basically what he's referring to .. ah ..
  • Not Synced
    the free lunch, it's not about this
  • Not Synced
    conference, you still have free lunch, so
  • Not Synced
    don't worry. But basically, what he was
  • Not Synced
    talking about is that ah throughout the
  • Not Synced
    previous two decades or even more, you
  • Not Synced
    wrote software and then you could just
  • Not Synced
    wait like two years? and your software
  • Not Synced
    will run twice faster, that was amazing
  • Not Synced
    right? You didn't need to do anything just
  • Not Synced
    wait and bam, it's faster. But..and we
  • Not Synced
    heard this story already, a couple of times
  • Not Synced
    now right? It's almost ten years since
  • Not Synced
    that article, that our machines are not
  • Not Synced
    getting any faster now, in terms of we're
  • Not Synced
    not having, we don't have machines with
  • Not Synced
    8 GHz, right, the CPUs. We're starting to
  • Not Synced
    have more and more core, so if we actually
  • Not Synced
    want to leverage all the capacity of the
  • Not Synced
    machine, it's not just waiting anymore,
  • Not Synced
    right, we need to change the way you
  • Not Synced
    write software. So, the free lunch is over
  • Not Synced
    And then, other important things happened
  • Not Synced
    for example in 2007, we had the
  • Not Synced
    Programming Erlang book, published by
  • Not Synced
    Pragmatic Programmers, by Joe Armstrong,
  • Not Synced
    which is one of the creators of the
  • Not Synced
    language. And I have it here because it
  • Not Synced
    was when I first started to hear about
  • Not Synced
    Erlang, right. It brought Erlang into
  • Not Synced
    other communities and in particular
  • Not Synced
    it brought it to communities I was
  • Not Synced
    involving with. And then, another event
  • Not Synced
    that happened in this timelines is that
  • Not Synced
    in 2009, Rails, we had a Rails release,
  • Not Synced
    that said that Rails was "threadsafe".
  • Not Synced
    And the reason why they did that, is the
  • Not Synced
    Rails Core Team, they did that, is because
  • Not Synced
    there was, if you were around the Rails
  • Not Synced
    community around that time, you.. there
  • Not Synced
    was a pressure, at that time right, on the
  • Not Synced
    Rails Core Team, exactly that we need to
  • Not Synced
    make Rails threadsafe, exactly because
  • Not Synced
    Rails developers wanted to leverage the
  • Not Synced
    ability of using all the cores on the
  • Not Synced
    machine, and use the machine efficiently.
  • Not Synced
    And one year later, I joined the Rails
  • Not Synced
    Core Team, and I actually found out ah
  • Not Synced
    that Rails was actually not really
  • Not Synced
    "threadsafe", that's why I put it in
  • Not Synced
    between quotes. Because I was constantly
  • Not Synced
    fixing bugs, and there was actually many
  • Not Synced
    reasons, not going to go into details,
  • Not Synced
    that Rails was not actually threadsafe. So
  • Not Synced
    I was working on fixing those bugs, and it
  • Not Synced
    was kind of frustrating, it was kind of
  • Not Synced
    hard, and it was about that time that I
  • Not Synced
    start to put the pieces together, right?
  • Not Synced
    So if I'm doing this work and it feels
  • Not Synced
    hard, it feels frustrating, but I know
  • Not Synced
    that concurrency is becoming more and
  • Not Synced
    more important, and I know that there
  • Not Synced
    are languages like Erlang and many other
  • Not Synced
    languages, that solve this concurrency
  • Not Synced
    well, okay, um, I need to do something,
  • Not Synced
    right? I don't want to, we need to see
  • Not Synced
    ways, I can make this situation better.
  • Not Synced
    And then I started to study, learn, play
  • Not Synced
    with other languages, and throughout this
  • Not Synced
    process, so I was reading many books,
  • Not Synced
    trying to get ideas from different places.
  • Not Synced
    I found this book, 7 Languges in 7 Weeks
  • Not Synced
    by Bruce who'll be speaking later today.
  • Not Synced
    And I was actually familiar with the
  • Not Synced
    majority of the language in the book, but
  • Not Synced
    the thing that really stood out in that
  • Not Synced
    book is that it got languages like Haskell
  • Not Synced
    Scala, Clojure, Erlang, and a few other
  • Not Synced
    more, and it was talking about those
  • Not Synced
    languages, and also their concurrency
  • Not Synced
    models but it was, to me, the book really
  • Not Synced
    put them, like, in separate places, right,
  • Not Synced
    and okay, this the advantages of the
  • Not Synced
    approach, followed by this language,
  • Not Synced
    here are the advantages, here are the
  • Not Synced
    trade-offs. And after I read the book,
  • Not Synced
    what really stood out, was the Erlang
  • Not Synced
    virtual machine. I was saying, I want to
  • Not Synced
    write software that going to run on this
  • Not Synced
    runtime, on this ecosystem, and so that's
  • Not Synced
    the lesson I got from it. And the way I
  • Not Synced
    like to say is that I like it so I went
  • Not Synced
    and bought more books on Erlang, and I
  • Not Synced
    also actually really like Clojure after I
  • Not Synced
    read the book so I went to study Clojure
  • Not Synced
    too. It kinda shows later in the languages
  • Not Synced
    some of our features. And the way I like
  • Not Synced
    to say about when I was studying Erlang,
  • Not Synced
    writing software in Erlang now, trying to
  • Not Synced
    put some things in production, is that
  • Not Synced
    I like it, everything I saw, but I hated
  • Not Synced
    the things I didn't see. Okay, and at
  • Not Synced
    first, the things I didn't see was a
  • Not Synced
    little bit unclear, but I decided okay, so
  • Not Synced
    I want to try my own language, just for
  • Not Synced
    fun, to see if I could get some of those
  • Not Synced
    ideas, some of those things I'm missing,
  • Not Synced
    if I can get it there, and see how it's
  • Not Synced
    going to play out.
Title:
Elixir Conf 2014 - Keynote: Elixir by Jose Valim
Description:

more » « less
Video Language:
English
Duration:
59:32

English subtitles

Incomplete

Revisions