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

JSConf US '19 - Make Web Not War

JSConf US '19 - Make Web Not War

In the early days of the web, building a new website would often largely involve HTML and CSS with the occasional sprinkling of JavaScript. Over the years the browsers became more powerful and the use-cases more complex. We found ourselves in a world in which we had outgrown jQuery and now faced a vast array of tools, libraries and frameworks to pick from. Sadly, with these choices also came opinions, endless debates and futile statements such as Angular is dead or "React is the best solution because of the vDOM".

I believe that in order to move the web forward we need to take a step back and acknowledge that every developer and project comes with a different background of varying levels of knowledge, use cases and preferences. Framework authors learn from each other, so why shouldn't we?

In this talk we'll take a look how different frameworks over the years have competed and inspired each other. We'll see how we can combine the lessons from the past and present to work together towards a future of peaceful coexistence.

Dominik Kundel

August 14, 2019

More Decks by Dominik Kundel

Other Decks in Programming


  1. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Make Web

    Not War JSConf US 2019 - Dominik Kundel d-k.im/jsconf-us
  2. console.log(` Hi! I’m Dominik Kundel `); dkundel.com @dkundel [email protected] github/dkundel

    Developer Evangelist !&& JavaScript Hacker Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  3. You are wasting your time learning X because Y exists

    Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  4. You are wasting your time learning X because Y is

    faster Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  5. You are wasting your time learning X because Y is

    better Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  6. You are wasting your time learning X because Y is

    more popular Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  7. Why Do We Have Frameworks & Tools? Dominik Kundel |

    @dkundel | #jsconfus | #makeWebNotWar
  8. Unified Access to the DOM and Web Requests Dominik Kundel

    | @dkundel | #jsconfus | #makeWebNotWar
  9. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Without jQuery

    if (el.addEventListener) { el.addEventListener('click', eventHandler, false); } else if (el.attachEvent) { el.attachEvent('onclick', eventHandler); } With jQuery $(el).on(eventHandler);
  10. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Without jQuery

    if (window.XMLHttpRequest) { !// code for most browsers xmlhttp = new XMLHttpRequest(); } else { !// code for IE 6 xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } xmlhttp.onreadystatechange = function() { !// handle response }; xmlhttp.open('GET', 'https:!//dkundel.com', true); xmlhttp.send(); With jQuery $.ajax({ url: 'https:!//dkundel.com', success: function () { !// handle response } })
  11. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar From jQuery

    to Standards $('div') !=> document.querySelector('div'); $(el).on(fn) !=> el.addEventListener(fn); $.ajax(!!...) !=> fetch(!!...)
  12. Your Way Is Not Necessarily the Right Way Dominik Kundel

    | @dkundel | #jsconfus | #makeWebNotWar
  13. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar tldr; Extensible

    Web Manifesto • Focus on adding new low-level capabilities to the web platform that are secure and efficient.
 • Expose low-level capabilities that explain existing features, such as HTML and CSS, allowing authors to understand and replicate them.

  14. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar tldr; Extensible

    Web Manifesto • Develop, describe and test new high-level features in JavaScript, and allow web developers to iterate on them before they become standardized. This creates a virtuous cycle between standards and developers.
 • Prioritize efforts that follow these recommendations and deprioritize and refocus those which do not.

  15. How the Web Sausage Gets Made Monica Dinculescu - ffconf

    2017 youtu.be/326SIMmRjc8 Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  16. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Standards Might

    Not Necessarily Look the Same Way $.ajax({!!...}) !=> fetch({!!...}) RequireJS !|| CommonJS !=> ES Modules
  17. Tagged Templates Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar

    function scream(strings, !!...values) { return strings.reduce((output, currentString, idx) !=> { return ( output + currentString + (values[idx] !|| '').toString().toUpperCase() ); }, ''); } const eventName = 'jsconf us'; scream`Hello Everyone. Welcome to ${eventName}!` !// !!==> "Hello Everyone. Welcome to JSCONF US!"
  18. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Angular Community

    21 Conferences in 2019 on angularconferences.com
  19. – Evan You (github.com/customer-stories/yyx990803) “[...] I wanted something that captured

    the declarative nature of Angular’s data binding, but with a simpler, more approachable API. That’s how Vue started.” Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  20. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Toolkits •

    Vue CLI • Angular CLI • create-react-app & react-scripts • Preact CLI • ...
  21. ~70% of the Top 1 Million Websites Use jQuery libscore.com/#jQuery

    Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar
  22. Don't Tell Someone to Buy a New Hammer Dominik Kundel

    | @dkundel | #jsconfus | #makeWebNotWar
  23. Let's stop telling people they are wasting their time! Dominik

    Kundel | @dkundel | #jsconfus | #makeWebNotWar
  24. Build a Project with a Framework/Tool You Don't Know Dominik

    Kundel | @dkundel | #jsconfus | #makeWebNotWar
  25. Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar Talk to

    Each Other why they chose it what they like and dislike about it share your experiences help each other and learn from each other
  26. If frameworks can learn from each other and evolve, we

    can, too! Dominik Kundel | @dkundel | #jsconfus | #makeWebNotWar