<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jeff Delaney</title>
    <description>The latest articles on DEV Community by Jeff Delaney (@codediodeio).</description>
    <link>https://dev.to/codediodeio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F87741%2F78173ca2-5791-42ea-a5f3-7ccec052cc00.png</url>
      <title>DEV Community: Jeff Delaney</title>
      <link>https://dev.to/codediodeio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codediodeio"/>
    <language>en</language>
    <item>
      <title>The Weird History of JavaScript</title>
      <dc:creator>Jeff Delaney</dc:creator>
      <pubDate>Thu, 20 Jun 2019 21:12:27 +0000</pubDate>
      <link>https://dev.to/codediodeio/the-weird-history-of-javascript-2bnb</link>
      <guid>https://dev.to/codediodeio/the-weird-history-of-javascript-2bnb</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Sh6lK57Cuk4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The history of JavaScript is almost as weird as the language itself. Over the last 25 years, it has exploded from a rushed prototype for Netscape to the world's &lt;a href="https://insights.stackoverflow.com/survey/2019#most-popular-technologies" rel="noopener noreferrer"&gt;most widely used&lt;/a&gt; programming language. Here's how it happened, I guess... &lt;/p&gt;

&lt;h2&gt;
  
  
  Let there be JavaScript
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;1990 - 1999&lt;/em&gt;. During this period, we see the birth of JavaScript and its standardization through ECMA to version 3 (ES3). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Christmas Day 1990&lt;/strong&gt;. The world's first modern web browser, WorldWideWeb (later renamed to Nexus), is developed by Sir Tim Berners-Lee in Switzerland. Take it for a &lt;a href="https://worldwideweb.cern.ch/browser/" rel="noopener noreferrer"&gt;spin&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1c5hndyzam77lkm5wen5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1c5hndyzam77lkm5wen5.png" alt="world wide web"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;December 1991&lt;/strong&gt;. The High Performance Computing Act is passed (Gore Bill). Al Gore is later hilariously misquoted as having "invented the Internet". &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;January 1993&lt;/strong&gt; The Mosaic Browser is developed by &lt;a href="https://en.wikipedia.org/wiki/Marc_Andreessen" rel="noopener noreferrer"&gt;Marc Andreessen&lt;br&gt;
&lt;/a&gt; and Eric Bina at the University of Illinois with funds from the Gore bill. It takes off as the first mainstream web browser 🚀. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45eneg66jz4pf9itdwrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45eneg66jz4pf9itdwrg.png" alt="mosaic"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Early 1995&lt;/strong&gt;. Netscape (co-founded by Marc Andreessen) was growing rapidly to nearly 80% of the browser market share, but web designers needed a "glue" language to make their sites more dynamic. At first, they turned to Java, but realized something more dynamic and approachable was needed. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flip47baurwyucr2bkrc2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flip47baurwyucr2bkrc2.png" alt="netscape"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;May 1995&lt;/strong&gt;. &lt;a href="https://en.wikipedia.org/wiki/Brendan_Eich" rel="noopener noreferrer"&gt;Brendan Eich&lt;/a&gt; is recruited to put "Scheme in the browser", but was under pressure to produce a prototype quickly with the threat of Microsoft beating them to the punch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzowjg4ciusi01l7ym1di.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzowjg4ciusi01l7ym1di.jpg" alt="eich"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ten days later...&lt;/strong&gt; He creates a language called Mocha. It has the syntax of Java, first-class functions like Scheme, dynamic types like Lisp, and prototypes like Self. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;September 1995&lt;/strong&gt;. It is renamed to LiveScript for marketing reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;December 1995&lt;/strong&gt;. It is renamed to JavaScript for marketing reasons. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;August 1996&lt;/strong&gt;. Microsoft reverse engineers JavaScript and ships it with Internet Explorer 3, but calls it JScript for &lt;del&gt;marketing&lt;/del&gt; legal reasons. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1bnacombmb139pn7pxa.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1bnacombmb139pn7pxa.gif" alt="msft dance"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;November 1996&lt;/strong&gt;. Microsoft is crushing their competition with an internal culture of &lt;strong&gt;"embrace, extend, and exterminate"&lt;/strong&gt;, yikes 😬. Netscape submits documentation to standardize JavaScript with &lt;a href="https://www.ecma-international.org/publications/standards/Ecma-262-arch.htm" rel="noopener noreferrer"&gt;ECMA International&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 1997&lt;/strong&gt;. The first standardized version of JavaScript (ES1) is approved by the TC-39 committee as ECMA-262 or ECMAScript. It has many of the features we use in JS today, like first-class functions, objects, and prototypal inheritance. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 1998&lt;/strong&gt;. ES2 is standardized, mostly unchanged.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;December 1999&lt;/strong&gt;. ES3 is standardized, adding support for strict equality, exception handling, and more. It will stand for the next 10 years. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Dark Ages
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;2000 - 2008. After the tech bubble bursts, JS experiences numerous setbacks and the failure of ES4.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;March 2000&lt;/strong&gt;. The tech bubble bursts. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sometime later...&lt;/strong&gt; A wide range of features are proposed for ES4, like classes, interfaces, optional types, and other mechanics aimed at large enterprise needs. &lt;a href="https://en.wikipedia.org/wiki/Douglas_Crockford" rel="noopener noreferrer"&gt;Douglas Crockford&lt;/a&gt; from Yahoo raises concerns that the proposal is too complex and bloated, Microsoft agrees. &lt;/p&gt;

&lt;p&gt;The TC-39 committee decides to develop ECMAScript 3.1 (the simple version) and ECMAScript 4 (the enterprise version) in parallel. Ultimately, this approach fails and ES4 never sees the light of day. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxfsrdmk0dv5g8p3463h.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxfsrdmk0dv5g8p3463h.gif" alt="fire"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meanwhile...&lt;/strong&gt; Microsoft's Internet Explorer is dominating with approx 90% of the browser market share. They contribute to ECMAScript, but mostly play by their own rules, shipping new features for JS in their browser. Most notably, &lt;a href="https://en.wikipedia.org/wiki/Ajax_(programming)" rel="noopener noreferrer"&gt;AJAX&lt;/a&gt; sets the stage for the single page applications of the future. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;August 2006&lt;/strong&gt;. John Resig creates &lt;a href="https://jquery.com/" rel="noopener noreferrer"&gt;JQuery&lt;/a&gt;. The library addresses extremely-frustrating issues related to cross-browser compatibility that existed at the time. It also provides a well-documented terse API that sets a new standard for the "developer experience". Today, it remains the most widely used JS library in terms of actual page loads.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;September 2008&lt;/strong&gt;. Google releases the Chrome Browser and open-sources its high-performance runtime, called the &lt;a href="https://v8.dev/" rel="noopener noreferrer"&gt;V8 engine&lt;/a&gt;. It opens the door to new possibilities...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9xrj5b1ovfzjcc0plxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9xrj5b1ovfzjcc0plxt.png" alt="v8"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Renaissance
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;2009 - 2015. JavaScript goes fullstack and sees prolific growth in its dev ecosystem&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;May 2009&lt;/strong&gt;. &lt;a href="https://en.wikipedia.org/wiki/Ryan_Dahl" rel="noopener noreferrer"&gt;Ryan Dahl&lt;/a&gt; develops NodeJS with Google's V8 project. It is unique for its ability to run non-blocking code with an event loop on the server. It gives rise to the &lt;strong&gt;JavaScript Everywhere&lt;/strong&gt; paradigm. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fnodejs.org%2Fstatic%2Fimages%2Flogos%2Fnodejs-new-pantone-black.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fnodejs.org%2Fstatic%2Fimages%2Flogos%2Fnodejs-new-pantone-black.png" alt="nodejs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;December 2009&lt;/strong&gt;. Exactly 10 years after ES3 we finally see a new version of JavaScript - &lt;strong&gt;ES5&lt;/strong&gt;. It adds a conservative set of new features based on ES3.1 like strict mode, accessors, and JSON.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5dqg77o8kc9uzwxoh0k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5dqg77o8kc9uzwxoh0k.gif" alt="es5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;October 2010&lt;/strong&gt;. Both &lt;a href="https://en.wikipedia.org/wiki/AngularJS" rel="noopener noreferrer"&gt;AngularJS&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Backbone.js" rel="noopener noreferrer"&gt;Backbone&lt;/a&gt; frameworks see their initial releases. They become extremely popular for different reasons - Angular was declarative and opinionated, while backbone was imperative and minimal. This marks the beginning of the modern single page application (SPA) and "framework churn". &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;May 2013&lt;/strong&gt;. Facebook releases &lt;a href="https://en.wikipedia.org/wiki/React_(JavaScript_library)" rel="noopener noreferrer"&gt;ReactJS&lt;/a&gt;. It sees rapid growth in the years ahead solidifies the declarative UI patterns used in many apps today. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2ned2ciwfsaycox0w2m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2ned2ciwfsaycox0w2m.png" alt="react"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dozens of other frontend, backend, and fullstack frameworks emerge roughly around this time period, like Angular, Ember, Meteor, Sails, Vue, Svelte, Mithril, Knockout, Polymer, just to name a few. &lt;/p&gt;

&lt;h2&gt;
  
  
  Modern Times
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;2015 - present. A ton of new features land in ES6 changing the way modern JS devs write their code.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2015&lt;/strong&gt;. ES6 brings a ton of new features to the language (many of which originated in the failed ES4), such as let/const, arrow functions, classes, promises, and more. It gives rise to transpilers like Babel and Typescript, so developers can write modern code, but still support legacy browsers that run ES5/3. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2016&lt;/strong&gt; ES7. We get minor changes, like Array.includes(). Most importantly, ECMA is now making small changes on an annual basis. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2017&lt;/strong&gt; ES8. We get Async Await!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2018&lt;/strong&gt; ES9. We get Rest/Spread syntax!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2019&lt;/strong&gt;. ES10. More small, but useful updates have been finalized. Should be out this summer. &lt;/p&gt;

&lt;p&gt;Where does JavaScript go from here? Will WASM replace JS? Will microfrontends make React obsolete? Will the new tech bubble burst? &lt;/p&gt;

&lt;p&gt;Only time will tell, stay tuned for Part II in 2045!&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
  </channel>
</rss>
