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

35bdded0ed436595945447a2484a77b0?s=47 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/)

35bdded0ed436595945447a2484a77b0?s=128

febuiles

October 19, 2013
Tweet

Transcript

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

    @FEBUILES
  2. None
  3. MOTIVATION

  4. Our capacity to create new things is limited by what

    our computers can do.
  5. What our computers can do is [only] limited by what

    we can tell them to do
  6. What we can tell them to do is limited by...

    us?
  7. bar charts, our effort vs. computer

  8. None
  9. This protocol is what allows us to express ideas to

    the computer
  10. One part of this protocol are programming languages

  11. None
  12. Having a better protocol allows us to create greater things

  13. JAVASCRIPT

  14. JAVASCRIPT IS EVERYWHERE

  15. JAVASCRIPT IS EVERYWHERE BROWSER

  16. JAVASCRIPT IS EVERYWHERE SERVERS

  17. JAVASCRIPT IS EVERYWHERE EDUCATION

  18. JAVASCRIPT IS EVERYWHERE ELECTRONICS

  19. EVERYWHERE IS JAVASCRIPT 0_0

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

    TODAY
  21. Mandatory cliché quote: “The best way to predict the future

    is to invent it." Alan Kay
  22. JavaScript is a mainstream language and it’ll affect the future

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

    of programming Let’s try to improve a bit.
  24. 3ABSTRACTION ACTORS FUNCTIONAL PROGRAMMING

  25. ACTORS FUNCTIONAL PROGRAMMING 1ABSTRACTION

  26. [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/
  27. ABSTRACTION ACTORS FUNCTIONAL PROGRAMMING 2

  28. “According to Carl Hewitt, unlike previous models of computation, the

    Actor model was inspired by physics including general relativity and quantum mechanics.” Wikipedia
  29. ACTOR SEND MESSAGES SPAWN ACTORS PREPARE FOR NEXT MESSAGE

  30. SEND MESSAGES SPAWN ACTORS PREPARE FOR NEXT MESSAGE ACTOR

  31. SEND MESSAGES SPAWN ACTORS PREPARE FOR NEXT MESSAGE ACTOR

  32. SEND MESSAGES SPAWN ACTORS PREPARE FOR NEXT MESSAGE ACTOR

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

  34. “This will take a while. I better spawn 10k agents

    and let the others know about them”
  35. “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
  36. “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
  37. “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
  38. THE ACTOR DOES NOT KNOW WHO THE SENDER OF A

    MESSAGE WAS
  39. NOW YOU’RE FORCED INTO ASYNC. THE ACTOR DOES NOT KNOW

    WHO THE SENDER OF A MESSAGE WAS
  40. ACTOR IDENTIFIED BY AN ADDRESS

  41. None
  42. [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
  43. ABSTRACTION ACTORS FUNCTIONAL PROGRAMMING 3

  44. None
  45. None
  46. None
  47. ; ;

  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. None
  58. None
  59. MAP/REDUCE

  60. MAP/REDUCE HADOOP

  61. MAP/REDUCE HADOOP BIG DATA!

  62. [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/
  63. "Google uses Bayesian filtering the way Microsoft uses the if

    statement." Ex-Microsoft Employee ca. 2005
  64. http://mheroin.com/jsconf federico@mheroin.com @febuiles