{"id":866,"date":"2020-03-12T13:00:33","date_gmt":"2020-03-12T21:00:33","guid":{"rendered":"http:\/\/www.wirfs-brock.com\/allen\/?p=866"},"modified":"2022-11-30T17:10:32","modified_gmt":"2022-12-01T01:10:32","slug":"javascript-the-first-20-years","status":"publish","type":"post","link":"https:\/\/wirfs-brock.com\/allen\/posts\/866","title":{"rendered":"JavaScript: The First 20 Years"},"content":{"rendered":"<p><em><a href=\"http:\/\/www.wirfs-brock.com\/allen\/jshopl.pdf\">JavaScript: The First 20 Years<\/a>\u00a0 by\u00a0<\/em>Allen Wirfs-Brock and Brendan Eich<br \/>\n<a href=\"http:\/\/www.wirfs-brock.com\/allen\/posts\/866\/jshoplp1\" rel=\"attachment wp-att-867\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-867\" src=\"http:\/\/www.wirfs-brock.com\/allen\/wp-content\/uploads\/2020\/03\/JShoplp1-209x300.png\" alt=\"\" width=\"209\" height=\"300\" srcset=\"https:\/\/wirfs-brock.com\/allen\/wp-content\/uploads\/2020\/03\/JShoplp1-209x300.png 209w, https:\/\/wirfs-brock.com\/allen\/wp-content\/uploads\/2020\/03\/JShoplp1.png 332w\" sizes=\"(max-width: 209px) 100vw, 209px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Our HOPL paper is done and submitted to the ACM for June 2020 publication in <a href=\"https:\/\/dl.acm.org\/toc\/pacmpl\/2020\/4\/HOPL\">PACMPL<\/a> (Proceedings of the ACM on Programming Languages)\u00a0 and presentation at the HOPL 4 conference in June 2021. PACMPL is an open access journal so there isn&#8217;t a paywall preventing people from reading our paper.\u00a0 The official version of the paper is at <a href=\"https:\/\/dl.acm.org\/doi\/abs\/10.1145\/3386327\">\/\/dl.acm.org\/doi\/abs\/10.1145\/3386327<\/a>. A version with minor corrections is accessible as <a href=\"http:\/\/www.wirfs-brock.com\/allen\/jshopl.pdf\">\/\/www.wirfs-brock.com\/allen\/jshopl.pdf<\/a> or <a href=\"https:\/\/zenodo.org\/record\/4960086\">\/\/zenodo.org\/record\/4960086<\/a>. But before you run off and start reading this 190 page \u201cpaper\u201d I want to talk a bit about HOPL.<\/p>\n<h3>The History of Programming Languages Conferences<\/h3>\n<p>HOPL is a unique conference and the foremost conference relating to the history of programming languages.\u00a0\u00a0<a href=\"https:\/\/hopl4.sigplan.org\/\">HOPL-IV<\/a> wll be only the 4th HOPL. Previous HOPLs occurred in\u00a01978, 1993, and 2007.\u00a0 The <a href=\"https:\/\/hopl4.sigplan.org\/track\/hopl-4-papers#History-of-HOPL\">History of HOPL<\/a> web page\u00a0 provides an overview of the conference&#8217;s history and which languages were covered at each of the three previous HOPLs.\u00a0 HOPL papers can be quite long.\u00a0 As the\u00a0HOPL-IV call for papers says, \u201cBecause of the complex nature of the history of programming languages, there is no upper bound on the length of submitted papers\u2014authors should strive for completeness.\u201d HOPL papers are often authored by the original designers of an important language or individuals who have made significant contributions to the evolution of a language.<\/p>\n<p>As the <a href=\"https:\/\/hopl4.sigplan.org\/track\/hopl-4-papers#Call-for-Papers\">HOPL-IV call for papers<\/a> describes, writing a HOPL paper is an arduous multi-year process. Initial submissions were due in September 2018 and reviewed by the program committee.\u00a0 For papers that made it through that review, the second major review draft was due September 2019.\u00a0 The final \u201ccamera ready\u201d manuscripts were due March 13, 2020.\u00a0 Along the way, each paper received extensive reviews from members of\u00a0 the <a href=\"https:\/\/hopl4.sigplan.org\/committee\/hopl-2020-papers-program-committee\">program\u00a0 committee<\/a> and each paper was closely monitored by one or more program committee \u201cshepherds\u201d who worked very closely with the authors. One of the challenges for most of the authors was to learn what it meant to write a <a href=\"https:\/\/hopl4.sigplan.org\/getImage\/orig\/HOPLReviewing.pdf\"><em>history paper<\/em><\/a> rather than a traditional technical paper.\u00a0 Authors were encouraged\u00a0 to learn to think and write\u00a0 like a professional historian.<\/p>\n<p>I&#8217;ve long been a fan of HOPL and have read most of the papers from the first three HOPLs.\u00a0 But I&#8217;d never actually attended one.\u00a0 I first heard about HOPL-IV on July 7, 2017 when I received an invitation from Guy Steele and Richard Gabriel to serve on the program committee. I immediately checked whether PC members could submit and because the answer was yes, I accepted. I knew that JavaScript needed to be included in a HOPL and that I probably was best situated to write it. But my direct experience with JS only dates to 2007 so I knew I would need Brendan Eich&#8217;s input in order to cover the early history of the language and he agreed to sign-on as coauthor.\u00a0 \u00a0My initial outline for the paper is dated July 20, 2017 and was titled \u201cJavaScript: The First 25 Years\u201d (we decided to cut it down to the first 20 years after the first round of reviews). The outline was seven pages long. I hadn&#8217;t looked at it since sometime in 2018 but looking at it today, I found it remarkably close to what is in the final paper.\u00a0 I knew the paper was going to be long.\u00a0 But I never thought it would end up at 190 pages.\u00a0 Many thanks to Richard Gabriel for repeatedly saying\u00a0\u201cdon&#8217;t worry about the length.\u201d<\/p>\n<p>There is a lot I have to say about gathering primary source materials (like a real historian) but I&#8217;m going to save that for another post is a few days. So, if you&#8217;re interested in the history of JavaScript, start reading<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript: The First 20 Years\u00a0 by\u00a0Allen Wirfs-Brock and Brendan Eich Our HOPL paper is done and submitted to the ACM for June 2020 publication in PACMPL (Proceedings of the ACM on Programming Languages)\u00a0 and presentation at the HOPL 4 conference in June 2021. PACMPL is an open access journal so there isn&#8217;t a paywall preventing [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,20,70,6,8],"tags":[],"_links":{"self":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/posts\/866"}],"collection":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/comments?post=866"}],"version-history":[{"count":21,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/posts\/866\/revisions"}],"predecessor-version":[{"id":1133,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/posts\/866\/revisions\/1133"}],"wp:attachment":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/media?parent=866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/categories?post=866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/tags?post=866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}