1
Eich confessed in a 2014 interview to enjoying thumbing his nose at Sun Microsystems, who “hated Java‐
Script.”
For the most part, I have tried to keep this book to the “facts” of JavaScript, but it is
impossible to completely avoid opinion. Where I offer opinions, take them for what
they are. You are welcome to disagree, and you are encouraged to seek out the opin‐
ions of other experienced developers.
You are learning JavaScript at a very exciting time. The Web is leaving its infancy
(technically speaking), and web development isn’t the confusing, complicated Wild
West that it was 5 and 10 years ago. Standards like HTML5 and ES6 are making it
easier to learn web development, and easier to develop high-quality applications.
Node.js is extending the reach of JavaScript beyond the browser, and now it is a viable
choice for system scripting, desktop application development, backend web develop‐
ment, and even embedded applications. Certainly I haven’t had this much fun pro‐
gramming since I started in the mid-1980s.
A Brief History of JavaScript
JavaScript was developed by Brendan Eich, a developer at Netscape Communications
Corporation, in 1995. Its initial development was very rapid, and much of the criti‐
cism leveled at JavaScript has cited the lack of planning foresight during its develop‐
ment. However, Brendan Eich was not a dabbler: he had a solid foundation in
computer science, and incorporated remarkably sophisticated and prescient ideas
into JavaScript. In many ways, it was ahead of its time, and it took 15 years for main‐
stream developers to catch on to the sophistication the language offered.
JavaScript started life with the name Mocha, and was briefly named LiveScript before
being officially renamed to JavaScript in a Netscape Navigator release in 1995. The
word “Java” in “JavaScript” was not coincidental, but it is confusing: aside from a
common syntactic ancestry, JavaScript has more in common with Self (a prototype-
based language developed at Xerox PARC in the mid-’80s) and Scheme (a language
developed in the 1970s by Guy Steele and Gerald Sussman, which was in turn heavily
influenced by Lisp and ALGOL) than with Java. Eich was familiar with both Self and
Scheme, and used some of their forward-thinking paradigms in developing Java‐
Script. The name JavaScript was partially a marketing attempt to tie into the success
Java was enjoying at the time.
In November 1996, Netscape announced that they had submitted JavaScript to Ecma,
a private, international nonprofit standards organization that carries significant influ‐
ence in the technology and communications industries. Ecma International pub‐
lished the first edition of the ECMA-26 specification, which was, in essence,
JavaScript.
xvi | Preface