Next - Kharkiv JS 2016

Next - Kharkiv JS 2016

Frontend development keeps moving forward, however there are fundamental problems we don't dare to solve for many years.

Transcript

  1. None
  2. Next

  3. English

  4. Upcoming: Most JS Kyiv Dec 2016

  5. None
  6. Next

  7. Progress

  8. Technology Race

  9. Libraries and Frameworks

  10. Tools and Approaches

  11. VR IoT ECMAScript 2020 <Your Framework> Native Online and Offline

    Typed and Membraned
  12. Progress

  13. Stuff is Clearly Happening!

  14. Wild West

  15. Dojo jQuery jsLint YUI Ext Processing Underscore Handlebars Less Backbone

    Modernizr Bower Jasmine jsHint Stylus Knockout es-next Three Lodash Grunt D3 Socket.io Express Q Mocha Angular ESLint Meteor Yeoman Gulp Hapi TypeScript Babel Rx Velocity React Redux Vue
  16. JS fatigue

  17. many alternatives to every tool

  18. Dream Stack is a Moving Target

  19. Yarn + Webpack + TypeScript Vue + Rx + GraphQL

    CSS Modules
  20. That Slide is Already Old

  21. Fear Anxiety Despair Anger

  22. Hopes

  23. Chasing the Dream Stack Unicorn

  24. Enduring Race

  25. Stuck Ext

  26. Enlightened Ember

  27. Peloton React

  28. Forerunners Vue

  29. Race

  30. No one knows what we’re running for

  31. 15 years ago

  32. Quest for Productivity

  33. Today nobody mentions productivity anymore

  34. Boring

  35. Stop-word

  36. Synergy Robustness Maintainability Productivity Testability Agile Scalability

  37. You won’t believe what happens next!

  38. Synergy Robustness Maintainability Productivity Testability Agile Scalability Immutability

  39. Once Immutability joins the stop-word club I’m curious to see

    what we will come up next!
  40. Any guesses?

  41. Quest for Productivity

  42. Progress is being made!

  43. Outlook Web Access 2001 Google Maps 2006 Slack 2016

  44. Rhino CouchApps Node

  45. Couch Mongo PgV8 Meteor Rethink Horizon

  46. iUI Cordova React Native

  47. Node-Serial Johnny 5 Duktape Amazon Echo

  48. Advancing on All Fronts

  49. 1 step forward 2 steps back

  50. Meteor

  51. Realtime Experience Today

  52. By Throwing Everything You Had Away

  53. Own DOM library Own Templating Solution Own Data Model Own

    Storage System
  54. Tendency

  55. jQuery Angular React

  56. Reinvent the Wheel

  57. Bootstrap

  58. Bootstrap Less Bootstrap Sass AngularStrap Ember Bootstrap React Bootstrap

  59. Re-implementation

  60. Web Components

  61. Interoperability

  62. Stop-word, too!

  63. MVC Elements

  64. Advertizing “Native”

  65. React Component

  66. Easier to build Easier to Sell

  67. Virtual DOM Glimmer Elm-Html

  68. Bail-out on foreign DOM

  69. Disconnected rendering pipeline

  70. Ember React Elm Vue Ember

  71. Component API

  72. <x-modal title={title} as |modal|> <i-button on-close={modal.close}> </x-modal>

  73. Styles

  74. SASS Less Stylus Rework Myth CSS Modules

  75. BEM OOCSS CSS-in-JS

  76. Fundamental mismatch

  77. Global Style Guide

  78. Locality for Components

  79. Global Style Guide

  80. Padding vs Margin Flex vs Grids Calc vs JS

  81. Conventions may work if 3rd-party components aren’t used

  82. CSS-like layouts in Native Apps

  83. Minimal API Compatible Capabilities

  84. Minimal Style Language?

  85. Standards XKCD

  86. Languages

  87. Package Manager Test Runner Builder Debugger Profiler FFI

  88. Sockets HTTP Text Math Date-time Files OS Concurrency

  89. Bundler npm Cargo Swift Go CPP

  90. http-parser

  91. Interop

  92. const numpy = require('numpy')

  93. JVM

  94. Compile-to-JS WASM

  95. npm 350k Maven 160k RubyGems 125k Packagist 115k PyPI 90k

    Crates 7k
  96. Reuse, Not Redevelop

  97. Data Access

  98. SOAP REST WebSockets XML JSON Thrift

  99. Distributed Object Graph

  100. GraphQL

  101. Unpredictable Opaque Unversioned

  102. HAL JsonApi.org OData

  103. Keep Reinventing!

  104. Users <-> [ Data ] <-> Services

  105. Share.js Swarm

  106. Distributed Data Storage & Processing

  107. Riak Cockroach

  108. Browser Rapid Connects/Disconnects Partial Replication

  109. Rethink Horizon Metheor Pouch DB

  110. Offline First Pipe Dream

  111. 3rd-party Data Sources

  112. YQL

  113. Query the web

  114. select * from web apis

  115. select m.* from Gitter.messages m join GitHub.issues i where m.room_id

    = i.repo_id and i.status = 'closed' order by m.posted_at desc
  116. UI <-> [ YQL Proxy ] <-> APIs

  117. datatables.org

  118. Yahoo Finance was the last API that worked

  119. GraphQL for Entire Web

  120. Yet Another API Yet Another Framework

  121. Yet Another Thing to Replace That Thing

  122. Competition over Coexistence

  123. Don’t Reinvent The Wheel

  124. Yet We Always Reinvent Them

  125. Wheel-of-the-Year Award!

  126. Progress or Churn?

  127. Component Interop Styling Data Access X-Lang Code Reuse

  128. I Found a Solution Now What?

  129. Go to London

  130. Find Dan Abramov and Jake Archibald

  131. Show them your solution

  132. Don’t let them go until they are convinced!

  133. ...

  134. PROFIT

  135. DON’T REINVENT THE WHEEL

  136. Don’t glorify those who do

  137. Component Interop Styling Data Access X-Lang Code Reuse

  138. #kharkivjs @listochkin gitter.im/dev-ua