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

JavaScript is Everywhere? Cool, let's try to level up programming.

febuiles
October 19, 2013

JavaScript is Everywhere? Cool, let's try to level up programming.

Dear jQuery plugin writer, say hello to three of my friends: abstraction, actors and functional programming.

Talk given at http://jsconf.co. Notes and more details about the talk can be found here: http://mheroin.com/jsconf/. Typography and colors were borrowed from Zach Holman's "If I Only Knew This Shit in College" (http://zachholman.com/talk/if-only-i-knew-this-shit-in-college/)

febuiles

October 19, 2013
Tweet

More Decks by febuiles

Other Decks in Technology

Transcript

  1. JAVASCRIPT IS EVERYWHERE?
    COOL, LET’S LEVEL UP PROGRAMMING
    FEDERICO BUILES
    @FEBUILES

    View full-size slide

  2. Our capacity to create new
    things is limited by what our
    computers can do.

    View full-size slide

  3. What our computers can do is
    [only] limited by what we can
    tell them to do

    View full-size slide

  4. What we can tell them to do is
    limited by... us?

    View full-size slide

  5. bar charts, our effort vs.
    computer

    View full-size slide

  6. This protocol is what allows
    us to express ideas to the
    computer

    View full-size slide

  7. One part of this protocol are
    programming languages

    View full-size slide

  8. Having a better protocol
    allows us to create greater
    things

    View full-size slide

  9. JAVASCRIPT IS EVERYWHERE

    View full-size slide

  10. JAVASCRIPT IS EVERYWHERE
    BROWSER

    View full-size slide

  11. JAVASCRIPT IS EVERYWHERE
    SERVERS

    View full-size slide

  12. JAVASCRIPT IS EVERYWHERE
    EDUCATION

    View full-size slide

  13. JAVASCRIPT IS EVERYWHERE
    ELECTRONICS

    View full-size slide

  14. EVERYWHERE IS JAVASCRIPT
    0_0

    View full-size slide

  15. TOMORROW’S LANGUAGES ARE
    DIRECTLY INFLUENCED BY THE
    LANGUAGES WE USE TODAY

    View full-size slide

  16. Mandatory cliché quote: “The best
    way to predict the future is to
    invent it."
    Alan Kay

    View full-size slide

  17. JavaScript is a mainstream
    language and it’ll affect the
    future of programming

    View full-size slide

  18. JavaScript is a mainstream
    language and it’ll affect the
    future of programming
    Let’s try to improve a bit.

    View full-size slide

  19. 3ABSTRACTION
    ACTORS
    FUNCTIONAL
    PROGRAMMING

    View full-size slide

  20. ACTORS
    FUNCTIONAL
    PROGRAMMING
    1ABSTRACTION

    View full-size slide

  21. [1] We Really Don’t Know How to
    Compute
    http://www.infoq.com/presentations/We-Really-Dont-Know-How-To-Compute
    [2] Up and Down the Ladder of
    Abstraction
    http://worrydream.com/LadderOfAbstraction/

    View full-size slide

  22. ABSTRACTION
    ACTORS
    FUNCTIONAL
    PROGRAMMING
    2

    View full-size slide

  23. “According to Carl Hewitt, unlike previous
    models of computation, the Actor model was
    inspired by physics including general relativity
    and quantum mechanics.”
    Wikipedia

    View full-size slide

  24. ACTOR
    SEND MESSAGES
    SPAWN ACTORS
    PREPARE FOR NEXT
    MESSAGE

    View full-size slide

  25. SEND MESSAGES
    SPAWN ACTORS
    PREPARE FOR NEXT
    MESSAGE
    ACTOR

    View full-size slide

  26. SEND MESSAGES
    SPAWN ACTORS
    PREPARE FOR NEXT
    MESSAGE
    ACTOR

    View full-size slide

  27. SEND MESSAGES
    SPAWN ACTORS
    PREPARE FOR NEXT
    MESSAGE
    ACTOR

    View full-size slide

  28. ACTOR
    SEND MESSAGES
    CREATE ACTORS
    PREPARE FOR NEXT
    MESSAGE
    CONCURRENTLY

    View full-size slide

  29. “This will take a
    while. I better
    spawn 10k agents
    and let the others
    know about them”

    View full-size slide

  30. “This will take a
    while. I better
    spawn 10k agents
    and let the others
    know about them”
    SEND MESSAGES
    CREATE ACTORS
    PREPARE FOR NEXT
    MESSAGE

    View full-size slide

  31. “This will take a
    while. I better
    spawn 10k agents
    and let the others
    know about them”
    SEND MESSAGES
    CREATE ACTORS
    PREPARE FOR NEXT
    MESSAGE

    View full-size slide

  32. “This will take a
    while. I better
    spawn 10k agents
    and let the others
    know about them”
    SEND MESSAGES
    CREATE ACTORS
    PREPARE FOR NEXT
    MESSAGE

    View full-size slide

  33. THE ACTOR DOES NOT KNOW
    WHO THE SENDER OF A
    MESSAGE WAS

    View full-size slide

  34. NOW YOU’RE FORCED INTO ASYNC.
    THE ACTOR DOES NOT KNOW
    WHO THE SENDER OF A
    MESSAGE WAS

    View full-size slide

  35. ACTOR
    IDENTIFIED BY AN ADDRESS

    View full-size slide

  36. [1] A Universal Modular ACTOR
    Formalism for Artificial Intelligence
    http://worrydream.com/refs/Hewitt-ActorModel.pdf
    [2] The Future of Programming
    http://worrydream.com/dbx/
    [3] Erlang & Scala

    View full-size slide

  37. ABSTRACTION
    ACTORS
    FUNCTIONAL
    PROGRAMMING
    3

    View full-size slide

  38. MAP/REDUCE
    HADOOP

    View full-size slide

  39. MAP/REDUCE
    HADOOP
    BIG
    DATA!

    View full-size slide

  40. [1] Why Functional Programming
    Matters
    http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf
    [2] Functional JavaScript
    http://shop.oreilly.com/product/0636920028857.do
    [3] Underscore.js
    http://underscorejs.org/

    View full-size slide

  41. "Google uses Bayesian
    filtering the way Microsoft
    uses the if statement."
    Ex-Microsoft Employee ca. 2005

    View full-size slide

  42. http://mheroin.com/jsconf
    [email protected]
    @febuiles

    View full-size slide