{"id":916,"date":"2016-12-31T20:47:22","date_gmt":"2017-01-01T04:47:22","guid":{"rendered":"https:\/\/www.goer.org\/?p=916"},"modified":"2016-12-31T20:47:22","modified_gmt":"2017-01-01T04:47:22","slug":"a-lost-javascript-framework","status":"publish","type":"post","link":"https:\/\/www.goer.org\/Journal\/2016\/12\/a-lost-javascript-framework.html","title":{"rendered":"A Lost JavaScript Framework"},"content":{"rendered":"<p>Toad and Frog went for a long walk.<\/p>\n<p>They walked across a large meadow.<\/p>\n<p>They walked in the woods.<\/p>\n<p>They walked along the river.<\/p>\n<p>At last they went back home to Toad&#8217;s house.<\/p>\n<p>&#8220;Oh, drat,&#8221; said Toad. &#8220;Not only do my feet hurt, but I have lost one of the JavaScript frameworks I was using to build my startup.&#8221;<\/p>\n<p>&#8220;Don&#8217;t worry,&#8221; said Frog. &#8220;We will go back to all the places where we walked. We will soon find your framework.&#8221;<\/p>\n<p>They walked back to the large meadow. They began to look for the framework in the tall grass.<\/p>\n<p>&#8220;Here is your framework!&#8221; cried Frog.<\/p>\n<p>&#8220;That is not my framework,&#8221; said Toad. &#8220;That framework is really just a glorified DOM abstraction library. My framework was component-oriented.&#8221;<\/p>\n<p>Toad cloned the DOM abstraction library from GitHub.<\/p>\n<p>A sparrow flew down. &#8220;Excuse me,&#8221; said the sparrow. &#8220;Did you lose a framework? I found one.&#8221;<\/p>\n<p>&#8220;That is not my framework,&#8221; said Toad. That framework supports two-way data binding. My framework relied on one-way data binding.&#8221;<\/p>\n<p>Toad cloned the framework with two-way data binding from GitHub.<\/p>\n<p>They went back to the woods and looked on the dark paths.<\/p>\n<p>&#8220;Here is your framework,&#8221; said Frog.<\/p>\n<p>&#8220;That is not my framework,&#8221; cried Toad. &#8220;That framework is highly opinionated. My framework was flexible.&#8221;<\/p>\n<p>Toad cloned the opinionated framework from GitHub.<\/p>\n<p>A raccoon came out from behind a tree. &#8220;I heard you were looking for a framework,&#8221; he said. &#8220;Here is one I just found.&#8221;<\/p>\n<p>&#8220;That is not my framework!&#8221; wailed Toad. &#8220;That framework is controlled by a giant corporation. My framework had a proper governance model.&#8221;<\/p>\n<p>Toad cloned the corporate framework from GitHub.<\/p>\n<p>Frog and Toad went back to the river. They looked for the framework in the mud.<\/p>\n<p>&#8220;Here is your framework,&#8221; said Frog.<\/p>\n<p>&#8220;That is not my framework!&#8221; shouted Toad. &#8220;That framework has to be transpiled from some hipster functional language. My framework was good old ECMAScript 2015.&#8221;<\/p>\n<p>Toad cloned the hipster framework from GitHub. He was very angry. He jumped up and down and screamed, &#8220;The whole world is covered with JavaScript frameworks, and not one of them is mine!&#8221;<\/p>\n<p>Toad ran home and slammed the door. There, open in vim on his MacBook, he saw his component-oriented, one-way data bound, unopinionated, well-governed, non-hipster framework.<\/p>\n<p>&#8220;Oh,&#8221; said Toad. &#8220;It was here all the time. What a lot of trouble I have made for Frog.&#8221;<\/p>\n<p>Toad took all of the frameworks out of his pocket.<\/p>\n<p>He took his MacBook off of his desk.<\/p>\n<p>Toad used all the frameworks to build a web application.<\/p>\n<p>The next day Toad gave his web application to Frog.<\/p>\n<p>Frog thought that it was beautiful. He shopped it around to angel investors. None of the frameworks crashed.<\/p>\n<p>Toad had glued them all together surprisingly well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Toad and Frog went for a long walk. They walked across a large meadow. They walked in the woods. They walked along the river. At last they went back home to Toad&#8217;s house. &#8220;Oh, drat,&#8221; said Toad. &#8220;Not only do my feet hurt, but I have lost one of the JavaScript frameworks I was using [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-916","post","type-post","status-publish","format-standard","hentry","category-web"],"_links":{"self":[{"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/posts\/916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/comments?post=916"}],"version-history":[{"count":2,"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/posts\/916\/revisions"}],"predecessor-version":[{"id":918,"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/posts\/916\/revisions\/918"}],"wp:attachment":[{"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/media?parent=916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/categories?post=916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.goer.org\/Journal\/wp-json\/wp\/v2\/tags?post=916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}