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

JavaScript and The Monomyth

Tian Davis
October 11, 2014

JavaScript and The Monomyth

JavaScript and The Monomyth explores the story of JavaScript as you've never seen before.

Learn more about The Monomyth. Dig deeper into the story of JavaScript: http://tiandavis.com/posts/javascript-and-the-monomyth/

Tian Davis

October 11, 2014
Tweet

More Decks by Tian Davis

Other Decks in Programming

Transcript

  1. JavaScript and the Monomyth

  2. @tiandavis

  3. JS Dynamic Prototypical Functional Familiar

  4. JS Dynamic Prototypical Functional Familiar

  5. IDEAS THAT SPREAD, WIN -Seth Godin

  6. JS Browsers

  7. JS Servers

  8. JS Hybrid Mobile Apps

  9. JS Games

  10. JS Drones

  11. JS Micro Controllers

  12. JS Atwood’s Law Any application that can be written in

    JavaScript, will eventually be written in JavaScript.
  13. Have we seen this before?

  14. Monomyth The Hero’s Journey

  15. The Hero’s Journey

  16. It is by going down into the abyss that we

    recover the treasures of life. -Jospeh Campbell
  17. Where you stumble, there lies your treasure. -Jospeh Campbell

  18. The cave you fear to enter holds the treasure you

    seek. -Jospeh Campbell
  19. The thing in the cave that was so dreaded has

    become the center. -Jospeh Campbell
  20. Departure Initiation Return

  21. Departure Initiation Return

  22. Departure Initiation Return

  23. Departure The Call to Adventure

  24. Brendan Eich Recruited to bring scheme to the browser.

  25. Departure Refusal of the Call

  26. Scheme

  27. Scheme ! ! JAVA WITHOUT CLASSES?

  28. JavaScript

  29. Common Mythic Element Lone Animal Chased Into Enchanted Forest

  30. Star Wars Princess Leia’s R2D2 distress hologram requesting rescue

  31. The Matrix Neo “follows the white rabbit” to the nightclub

    where he meets Trinity
  32. Dune House Atreides follows exclusive spice mining contract to Arrakis

  33. JavaScript Create Scheme for the Browser

  34. Departure Supernatural Aid

  35. Tight Release WRITES JAVASCRIPT IN 10 DAYS

  36. Internet Explorer + VBScript Intense. Fear. Netscape Killer

  37. Departure Crossing the Threshold

  38. Brendan Eich Rewrites JavaScript.
 Extracts SpiderMonkey.

  39. Microsoft JScript released with IE3

  40. JavaScript JScript is Douglas Crockford

  41. Common Mythic Element The Mentor

  42. Star Wars Obi-Wan Kenobi

  43. The Matrix Morpheus

  44. Dune Duncan Idaho

  45. JavaScript Douglas Crockford

  46. Rhino Created Java Fork of SpiderMonkey

  47. Departure Belly of the Whale

  48. Brendan Eich Mozilla Project March ‘98

  49. Aol. Buys Netscape March ‘99

  50. Aol. Closes Netscape July ‘03

  51. Brendan Eich Creates Mozilla Foundation July ‘03

  52. SpiderMonkey Firefox is its new home Feb ‘04

  53. Brendan Eich CTO Mozilla Corporation Aug ‘05

  54. Departure JavaScript no longer tied to a specific browser.

  55. Departure JavaScript now funded indefinitely.

  56. Departure Initiation Return

  57. Initiation The Road of Trials

  58. The DOM is a MESS Many Browser Vendors Many Browser

    Bugs
  59. None
  60. None
  61. None
  62. var ua = navigator.userAgent.toLowerCase(); 
 if (ua.indexOf('safari') != -1) {

    if (ua.indexOf('chrome') > -1) { //alert(‘I HAZ CHROME SKILLZ’); } else { //alert(‘ALL UP IN YOUR SAFARI’); } }
  63. None
  64. No Separation of Concerns Embedded CSS Inline JavaScript

  65. JavaScript Organization

  66. JavaScript Organization

  67. Initiation The Meeting with the Oracle

  68. John Resig BarCamp NYC Jan ‘06

  69. Non-Obstrusive JavaScript Birth of a Best Practice

  70. Cross Browser JavaScript We Dared to Believe

  71. Common Mythic Element The Oracle

  72. Star Wars Yoda

  73. The Matrix The Oracle

  74. JavaScript John Resig

  75. Initiation Temptation away from the true path

  76. The Framework Wars

  77. jQuery versus MooTools

  78. jQuery versus Prototype

  79. jQuery versus ExtJS (Sencha)

  80. jQuery versus Dojo

  81. KEEP! CALM! AND! CODE! ON

  82. Common Mythic Element Failed Hero

  83. Star Wars Biggs

  84. The Matrix Morpheus once believed Cypher was “The One”

  85. JavaScript MooTools, ProtoType …

  86. Initiation Atonement with the Father

  87. The Framework Wars

  88. jQuery.noConflict May ‘08

  89. jQuery The Effect

  90. From MooTools My Swtich from MooTools to jQuery

  91. Initiation Apotheosis God-Like

  92. May ‘08 Douglas Crockford

  93. Sep ‘08 Microsoft

  94. Mid ‘09 Douglas Crockford JSON

  95. Mid ‘09 Ruby on Rails

  96. Oct ‘09 SVG RaphaelJS

  97. FLASH DEAD IS

  98. ISH…

  99. R.I.P. Flash Java Applets Silverlight

  100. The web is not a movie.

  101. The web is not a plugin.

  102. The web is not a single vendor.

  103. The web is not a single technology.

  104. The “truthiness” of these things is part of what makes

    the web better.
  105. Initiation The Ultimate Boon

  106. Initiation Cross Browser JavaScript is a REAL Thing

  107. Initiation “Real” Developers Use JavaScript Now

  108. Departure Initiation Return

  109. Return Refusal of the Return

  110. John Resig Resigns Mozilla Corporation & Fulltime Work on jQuery

  111. Lightweight Mobile Optimized DOM Libraries

  112. Zepto.JS

  113. Zepto jQuery 9kb 84kb

  114. jQuery 2 71kb IE6, IE7, IE8

  115. Return The Magic Flight

  116. Designer Languages

  117. CoffeeScript or JavaScript

  118. GWT May ‘06

  119. Objective-J Late ‘08

  120. CoffeeScript Dec ‘09

  121. Dart Aug ‘11

  122. ClojureScript Aug ‘11

  123. TypeScript Aug ‘12

  124. Common Mythic Element Wearing Enemy’s Skin

  125. Star Wars Luke and Han wear stormtrooper outfits

  126. The Matrix Neo jumps into Agent Smith’s skin

  127. JavaScript GWT uses Java to write frontend code

  128. package com.example.foo.client;! ! import com.google.gwt.core.client.EntryPoint;! import com.google.gwt.core.client.GWT;! ! public class

    Foo implements EntryPoint {! public void onModuleLoad() {! GWT.log("Hello World!", null);! }! }
  129. Common Mythic Element The Shapeshifter

  130. Star Wars Han Solo

  131. The Matrix Cypher

  132. JavaScript CoffeeScript

  133. Return Rescue from Without

  134. NO Flash on iOS devices

  135. Adobe drops support for Flash on mobile devices

  136. Drops support for IE6

  137. Return Crossing the Return Threshold

  138. JavaScript Organization

  139. JavaScript Organization

  140. JavaScript Organization Micro MVC Libraries

  141. JavaScript Organization Backbone

  142. JavaScript Organization KnockOut

  143. JavaScript Organization Spine

  144. JavaScript Organization JavaScript MVC (CanJS)

  145. Open Sources V8 JavaScript Engine

  146. JavaScript on the Server is Legit Now. Node.JS

  147. None
  148. Canvas HTML5

  149. WebSockets HTML5

  150. LocalStorage HTML5

  151. WebRTC HTML5

  152. Browser Normalizers Gain Popularity HTML5

  153. Socket.IO Normalizers

  154. Store.JS Normalizers

  155. MicroControllers

  156. Drones

  157. MongoDB BSON

  158. Return Master of Two Worlds

  159. JavaScript Frontend Backend

  160. Workflow, Security, API Backend

  161. Core Business Logic Frontend

  162. None
  163. Common Mythic Element Two Worlds: Mundane vs. Special

  164. Star Wars Planetside vs. Death Star

  165. The Matrix Reality vs. The Matrix

  166. JavaScript Backend vs. Frontend

  167. Single Page Applications

  168. Modern Frontend Frameworks

  169. None
  170. None
  171. None
  172. Designer Language Optional…

  173. JavaScript is now for SERIOUS engineers.

  174. Return Freedom to Live

  175. Return Frontend development is now a legitimate software profession.

  176. Return Focus on the Frontend or the Backend. The choice

    is yours.
  177. Return JavaScript is the most popular language on the planet

    Earth.
  178. JAVASCRIPT IS LEGITIMATE

  179. JAVASCRIPT IS FULLSTACK

  180. JAVASCRIPT IS EVERYWHERE

  181. WHERE DO WE GO FROM HERE…? JS

  182. Thanks.

  183. Tian Davis @tiandavis tiandavis.com/talks