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

What did we Learn with JavaScript Fatigue? (Fro...

What did we Learn with JavaScript Fatigue? (FrontMania)

Lucas Fernandes da Costa

November 15, 2019
Tweet

More Decks by Lucas Fernandes da Costa

Other Decks in Programming

Transcript

  1. 1 PAGE NUMBER What can we learn with JavaScript Fatigue?

    github: lucasfcosta twitter: thewizardlucas L U C A S F C O S T A . C O M
  2. 2 PAGE NUMBER What did we learn with JavaScript Fatigue?

    github: lucasfcosta twitter: thewizardlucas L U C A S F C O S T A . C O M
  3. 3 PAGE NUMBER WHERE IS JAVASCRIPT GOING? github: lucasfcosta twitter:

    thewizardlucas L U C A S F C O S T A . C O M
  4. PAGE NUMBER 5 github: lucasfcosta L U C A S

    F C O S T A . C O M twitter: thewizardlucas
  5. PAGE NUMBER 6 github: lucasfcosta L U C A S

    F C O S T A . C O M twitter: thewizardlucas
  6. PAGE NUMBER 9 github: lucasfcosta L U C A S

    F C O S T A . C O M twitter: thewizardlucas
  7. PAGE NUMBER REALITIES OF YOUR INDUSTRY 101 16 LUCASFCOSTA.COM Software

    solves business problems Don't Call Yourself A Programmer, And Other Career Advice - Patrick McKenzie
  8. REALITIES OF YOUR INDUSTRY 101 PAGE NUMBER LUCASFCOSTA.COM 17 You

    are not paid to write code The less code you write, the better
  9. M O R E V A L U E 


    L E S S S O F T W A R E
  10. L E S S T I M E F I

    X I N G I T M O R E V A L U E 
 L E S S S O F T W A R E
  11. L E S S T I M E F I

    X I N G I T L E S S T I M E D E B U G G I N G I T M O R E V A L U E 
 L E S S S O F T W A R E
  12. L E S S T I M E F I

    X I N G I T L E S S T I M E D E B U G G I N G I T L E S S T I M E T H I N K I N G A B O U T I T M O R E V A L U E 
 L E S S S O F T W A R E
  13. L E S S T I M E F I

    X I N G I T L E S S T I M E D E B U G G I N G I T L E S S T I M E T H I N K I N G A B O U T I T M O R E V A L U E 
 L E S S S O F T W A R E
  14. PAGE NUMBER 36 Good programmers know what to write. Great

    ones know what to rewrite (and reuse) — Eric S. Raymond LUCASFCOSTA.COM OUR ROLE
  15. PAGE NUMBER LUCASFCOSTA.COM JAVASCRIPT 46 npm and the future of

    JavaScript - Laurie Voss - JSConf US 2018
  16. PAGE NUMBER LUCASFCOSTA.COM REALITIES OF YOUR INDUSTRY 101 Donald Knuth

    “ 49 "Premature optimisation is the root of all evil"
  17. PAGE NUMBER 50 REALITIES OF YOUR INDUSTRY 101 The greatest

    performance improvement of all is when a system goes from not-working to working John Ousterhout
  18. PAGE NUMBER 52 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM JS

    fatigue happened because of premature optimisation Assumption:
  19. PAGE NUMBER 53 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM JS

    fatigue happened because of premature optimisation Partially right Assumption:
  20. PAGE NUMBER 54 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM JS

    fatigue happened because we had too much to figure out
  21. PAGE NUMBER 55 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM JS

    fatigue happened because we had too much to figure out and we were doing it all at once
  22. PAGE NUMBER 56 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM JS

    fatigue happened because we had too much to figure out and we were doing it all at once but still, to solve problems we didn't have
  23. PAGE NUMBER 61 As the number of options increases, the

    costs, in time and effort, of gathering the information needed to make a good choice also increases Barry Schwartz REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM
  24. PAGE NUMBER LUCASFCOSTA.COM 63 REALITIES OF YOUR INDUSTRY 101 Creative

    Slides Presentation Your willpower is like a muscle Judges would make more favorable decisions after those breaks. After a lunch break the rates of favorable decisions immediately jumps to 65% again. Dotted lines represent food breaks In the morning we started with 65% of favorable decisions and at the end of the day this rate steadily drops to zero. As time goes by, less favorable decisions occur James Clear Image by James Clear
  25. PAGE NUMBER 64 We might not be JavaScript fatigued maybe

    we’re just decision fatigued REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM
  26. PAGE NUMBER 65 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM We

    were decision fatigued ❌ Wrong Assumption:
  27. M A R K 0 3 P R E S

    E N T A T I O N PAGE NUMBER 67 LUCASFCOSTA.COM
  28. PAGE NUMBER 74 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    JavaScript ecosystem was not mature yet. Assumption:
  29. PAGE NUMBER 75 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    JavaScript ecosystem was not mature yet. Assumption: ✅ Right
  30. PAGE NUMBER 77 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    S-curve theory of innovation cycles. QUORA Our growth phase is ending
  31. PAGE NUMBER 78 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    S-curve theory of innovation cycles. QUORA Our growth phase is ending 2013 - 2017
  32. PAGE NUMBER 79 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    S-curve theory of innovation cycles. QUORA The ecosystem is maturing, before it can retire 2013 - 2017 we are here now
  33. PAGE NUMBER 81 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM 25%

    of developers were using JavaScript for less than two years Assumption: This Year In JavaScript (NPM)
 https://img04.en25.com/Web/NPMInc/%7B82407d56-74c7-4fde- a3b7-59a2df23544f%7D_This_Year_In_JavaScript__2019_Predictions_Copy.pdf 69% are self taught
  34. PAGE NUMBER npm and the future of JavaScript 83 REALITIES

    OF YOUR INDUSTRY 101 LUCASFCOSTA.COM https://slides.com/seldo/npm-and-the-future-of-javascript/#/72 As the ecosystem becomes more mature, people will care more
  35. PAGE NUMBER npm and the future of JavaScript • 87

    REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM https://slides.com/seldo/npm-and-the-future-of-javascript/#/72
  36. PAGE NUMBER 88 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Innovation

    will happen mostly around tooling and performance Prediction:
  37. PAGE NUMBER 90 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    front-end ecosystem will focus on tools for state management, robustness, and data-handling Prediction:
  38. M A R K 0 3 P R E S

    E N T A T I O N PAGE NUMBER PRESENTATION BY: MARKZUGELBERG 91 We have already started to see this Apollo and relay were the pioneers. But tooling will be built around them, also on the server. GRAPHQL 1 Tools like Mobx and XState are on the rise. STATE MANAGEMENT 2 This is why we love TypeScript so much.
 We're getting better at tests too! ROBUSTNESS 3
  39. PAGE NUMBER LUCASFCOSTA.COM 92 REALITIES OF YOUR INDUSTRY 101 The

    costs for maintaining web applications was high.
  40. PAGE NUMBER “ 93 Abstractions are necessary to reduce the

    cognitive load of how things work so you can focus on creating. Eric Clemmons LUCASFCOSTA.COM JAVASCRIPT
  41. PAGE NUMBER 96 01 No previous examples 02 Lack of

    good abstractions 03 Web platform constraints 04 Productivity BUILDING USER INTERFACES IS HARD
  42. PAGE NUMBER 98 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    rhythm of release of new front-end frameworks is going to decrease Prediction:
  43. PAGE NUMBER 99 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM The

    front-end ecosystem will focus on productivity and cross-functionality Prediction:
  44. M A R K 0 3 P R E S

    E N T A T I O N PAGE NUMBER PRESENTATION BY: MARKZUGELBERG 100 We have already started to see this UI design tools are starting to focus on componentization and reuse UI DESIGN TOOLS 2 More and more people adopt tools like Docz, Storybook and Styleguidist. COMPONENT DIRECTORIES 1
  45. PAGE NUMBER 101 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Design

    systems will become ubiquitous Prediction: Interface production has been industrialized Innovation will happen on other fronts
  46. PAGE NUMBER 103 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Assumption:

    Transpilation was going to be necessary for a long time.
  47. PAGE NUMBER 104 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Transpilation

    was going to be necessary for a long time. Assumption: ✅ Right
  48. PAGE NUMBER 105 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM This

    Year In JavaScript (NPM)
 https://img04.en25.com/Web/NPMInc/%7B82407d56-74c7-4fde- a3b7-59a2df23544f%7D_This_Year_In_JavaScript__2019_Predictions_Copy.pdf
  49. PAGE NUMBER LUCASFCOSTA.COM 113 HOW TO DEAL WITH IT Because

    JavaScript is everywhere. Even in places it shouldn't be
  50. PAGE NUMBER LUCASFCOSTA.COM 114 HOW TO DEAL WITH IT “Any

    application that can be written in JavaScript, will eventually be written in JavaScript.”
 — Jeff Atwood, Cofounder of StackOverflow
  51. PAGE NUMBER LUCASFCOSTA.COM 115 HOW TO DEAL WITH IT We

    choose JavaScript because we like it
  52. PAGE NUMBER 118 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Module

    bundlers will be necessary until we can have a good native module system Assumption:
  53. PAGE NUMBER 119 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Module

    bundlers will be necessary until we can have a good native module system Assumption: ❌ Wrong
  54. PAGE NUMBER LUCASFCOSTA.COM 120 REALITIES OF YOUR INDUSTRY 101 Webpack

    ❤ Module bundlers are here to stay They're here, but not quite there yet. HTTP/2 push is hard and native modules aren't fast enough. NATIVE MODULES Tree-shaking, cache invalidation and other code transformations (eliminating dead-code, uglifying code, and pre-evaluation) OPTIMISATIONS Browsers adopting the same runtimes is dangerous, as it leads to an ecosystem where a single actor has too much power. LANGUAGE FEATURES JSX is here to stay, and even if we're not using React, TypeScript is also not going anywhere soon. NEW LANGUAGES PREDICTION 3
  55. PAGE NUMBER 126 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM In

    2019, the coding bootcamp market will grow by 49%, to an estimated 23,043 graduates in 2019, up from 15,429 in 2018. https://www.coursereport.com/reports/coding-bootcamp-market-size-research-2019
  56. PAGE NUMBER 127 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM Since

    2013 bootcamps have grown 11x https://www.coursereport.com/reports/coding-bootcamp-market-size-research-2019
  57. 133 PAGE NUMBER 64% 36% Coding Design Some Experience With

    Automated Aids To The Design Of Large-Scale Reliable Software - 1975 Occurrence of Errors REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM
  58. PAGE NUMBER LUCASFCOSTA.COM 134 REALITIES OF YOUR INDUSTRY 101 In

    the NASA Apollo project about 73% of all errors were design errors. HAMILTON, M., AND ZELDIN, S. "Higher order software--a methodology for defining software,"
  59. 135 PAGE NUMBER “ Louis Srygley Without requirements or design,

    programming is the art of adding bugs to an empty text file. REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM
  60. PAGE NUMBER LUCASFCOSTA.COM 136 REALITIES OF YOUR INDUSTRY 101 Good

    design adds value faster than it adds cost. Thomas C. Gale
  61. PAGE NUMBER LUCASFCOSTA.COM 137 REALITIES OF YOUR INDUSTRY 101 Programming

    is what you do when you're alone, software engineering is what you do when you're in a team.
  62. PAGE NUMBER LUCASFCOSTA.COM 140 HOW TO DEAL WITH IT do

    things that don’t scale Paul Graham
  63. PAGE NUMBER LUCASFCOSTA.COM 144 HOW TO DEAL WITH IT A

    technical recruiter, having discovered that the ways of Unix hackers were strange to him, sought an audience with Master Foo to learn more about the Way.
  64. PAGE NUMBER LUCASFCOSTA.COM 145 HOW TO DEAL WITH IT The

    recruiter said:
 “I have observed that Unix hackers scowl or become annoyed when I ask them how many years of experience they have in a new programming language. Why is this so?”
  65. PAGE NUMBER LUCASFCOSTA.COM 146 HOW TO DEAL WITH IT Master

    Foo stood, and began to pace across the office floor. The recruiter was puzzled, and asked “What are you doing?”
  66. PAGE NUMBER LUCASFCOSTA.COM 147 HOW TO DEAL WITH IT “I

    am learning to walk,” replied Master Foo.
  67. PAGE NUMBER LUCASFCOSTA.COM 148 HOW TO DEAL WITH IT “I

    saw you walk through that door” the recruiter exclaimed “and you are not stumbling over your own feet. Obviously you already know how to walk.”
  68. PAGE NUMBER LUCASFCOSTA.COM 149 HOW TO DEAL WITH IT “Yes,

    but this floor is new to me.” replied Master Foo. Upon hearing this, the recruiter was enlightened. http://www.catb.org/esr/writings/unix-koans/recruiter.html
  69. PAGE NUMBER TRENDS FOR 2020 REACT GRAPHQL CSS IN JS

    DENO IS COMING TYPESCRIPT COMPONENT LIBRARIES WEB ASSEMBLY SERVER-SIDE RENDERING
  70. PAGE NUMBER LUCASFCOSTA.COM 152 thank you L U C A

    S F C O S T A . C O M github: lucasfcosta twitter: thewizardlucas write code read books
  71. PAGE NUMBER LUCASFCOSTA.COM 153 thank you L U C A

    S F C O S T A . C O M github: lucasfcosta twitter: thewizardlucas twitter: thewizardlucas