$30 off During Our Annual Pro Sale. View Details »

Keep Betting On JS

Keep Betting On JS

Brendan Eich's famous quip, "Always bet on JavaScript", revels in JS's history of naysayers predicting that we'd eventually reach a point where JS couldn't grow to meet the demands of modern development; it turns out those have always been bad bets.

It's safe to say JS is no longer trying to prove itself. It has arrived.

But where is it headed, and what does that mean for us?

Kyle Simpson
PRO

April 03, 2019
Tweet

More Decks by Kyle Simpson

Other Decks in Programming

Transcript

  1. "The best way to predict the
    future is to invent it."

    --Alan Kay

    View Slide

  2. brief history lesson
    (of American spaceflight)
    and
    incomplete!
    ^
    credit: David Hasan

    View Slide

  3. Mercury (Atlas)
    credit: David Hasan

    View Slide

  4. Gemini (Titan)
    credit: David Hasan

    View Slide

  5. Apollo (Saturn)
    credit: David Hasan

    View Slide

  6. lots of baby steps
    credit: David Hasan

    View Slide

  7. Brendan Eich

    View Slide

  8. Keep Betting On JavaScript
    Kyle Simpson
    getify

    View Slide

  9. another brief history
    (of my journey into JavaScript)

    View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. cheating: Flash

    View Slide

  17. $("#menu")

    View Slide

  18. flXHR

    View Slide

  19. LABjs

    View Slide

  20. View Slide

  21. View Slide

  22. There, I fixed it for you.
    "You Don't Know JS" books

    View Slide

  23. lots of
    baby steps

    View Slide

  24. totally not a history lesson
    (of JavaScript the language)

    View Slide

  25. ES-early

    View Slide

  26. ES1/ES2

    View Slide

  27. ES3

    View Slide

  28. ES4 (aka ActionScript3)

    View Slide

  29. E4X (totally not ES4)

    View Slide

  30. ES5

    View Slide

  31. ES6 (aka ES2015)

    View Slide

  32. ES2016 (aka ES7)

    View Slide

  33. ES2017 (aka ES8)

    View Slide

  34. ES2018 (aka ES9)

    View Slide

  35. ES2019 (aka ES10)

    View Slide

  36. ...blah, blah...

    View Slide

  37. best progress
    is incremental

    View Slide

  38. place
    your
    bets?

    View Slide

  39. View Slide

  40. View Slide

  41. PWA

    View Slide

  42. PWA

    View Slide

  43. ...a good bet
    open collaboration

    View Slide

  44. View Slide

  45. View Slide

  46. language
    machine

    View Slide

  47. View Slide

  48. incremental
    open
    always good?

    View Slide

  49. language

    View Slide

  50. code is

    human communication

    View Slide

  51. lingua franca

    View Slide

  52. multi-paradigm

    View Slide

  53. declarative

    View Slide

  54. compat

    View Slide

  55. not...
    - slow
    - sloppy
    - buggy
    - inconsistent

    View Slide

  56. coming soon to a
    JavaScript near
    you
    ...probably...maybe

    View Slide

  57. class fields

    View Slide

  58. private fields

    View Slide

  59. private methods

    View Slide

  60. optional chaining

    View Slide

  61. readable numbers

    View Slide

  62. BigInt

    View Slide

  63. from 10-days to now...

    View Slide

  64. machine

    View Slide

  65. assembly

    View Slide

  66. increased demands

    View Slide

  67. Proxy

    View Slide

  68. TypedArray/DataView

    View Slide

  69. shared memory!?!

    View Slide

  70. shared memory!?!

    View Slide

  71. shared memory!?!

    View Slide

  72. Atomics

    View Slide

  73. View Slide

  74. sourcemaps

    View Slide

  75. sourcemaps
    Problems:
    - stack traces
    - watch expressions

    View Slide

  76. TypeScript

    View Slide

  77. macros

    View Slide

  78. View Slide

  79. Tom Dale
    tomdale.net/2017/09/compilers-
    are-the-new-frameworks/

    View Slide

  80. experimentation
    in the wild?
    yes! eh, not so much :(

    View Slide

  81. asm.js

    View Slide

  82. View Slide

  83. WebAssembly

    View Slide

  84. View Slide

  85. language
    machine
    a tale of...
    ...two JavaScripts

    View Slide

  86. language
    machine
    so far...
    ...decent bets

    View Slide

  87. language
    machine
    humans
    where's your bet?

    View Slide