JavaScript creator Brendan Eich has spoken out against the perception that JavaScript was an arbitrary or random success. In a comment at Hacker News Eich explains the historical context from which JavaScript emerged and how it was unlikely to have happened any other way.
In comment at Lambda the Ultimate, Eich wrote: “History has reason and rhyme as well as chance, it is not all and only random. For my part, there was little ‘arbitrary’ in what I did, including the mistakes — some of those weirdly recapitulated early LISP mistakes.”
Eich’s comments were in response to comments like this one: “If Brendan Eich chose SmallTalk for the Netscape browser, that’s probably what you’d be gushing about today.”
And this one: “It’s just dumb luck and path dependence. If Netscape had put scheme into Navigator we’d be using that instead.”
Eich writes at Hacker News:
“Subtle chains of cause and effect were at play among people involved, going back years to Silicon Graphics (Netscape drew from UIUC and SGI, plus montulli from Kansas, and jwz). Also going back through the living history of programming languages. SICP and some of the Sussman & Steele ‘Lambda the …’ papers made a big impression on me years before, although I did not understand their full meaning then.
“Remember, I was recruited to ‘do Scheme’, which felt like bait and switch in light of the Java deal brewing by the time I joined Netscape. My interest in languages such as Self informed a subversive agenda re: the dumbed down mission to make ‘Java’s kid brother’, to have objects without classes. Likewise with first-class functions, which were inspired by Scheme but quite different in JS, especially JS 1.0.
“Apart from the ‘look like Java’ mandate, and ‘object-based’ as a talking point, I had little direction. Only a couple of top people at Netscape and Sun really grokked the benefit of a dynamic language for tying together components, but they were top people (marca, Rick Schell [VP Eng Netscape], Bill Joy).
“Rather than dumb luck, I think a more meaningful interpretation is that I was a piece of an evolving system, exploring one particular path in a damn hurry. That system contains people playing crucial parts. Academic, business, and personal philosophical and friendship agendas all transmitted an analogue of genes: ideas and concrete inventions from functional programming and Smalltalk-related languages.”
Eich also tells the story of how JavaScript came to be here.
In short, the decision to use JavaScript instead of a language like Smalltalk or Scheme was far from arbitrary and arose from specific circumstances.
Also, although the lack of a better alternative has certainly ensure JavaScript’s popularity, neither Netscape nor JavaScript’s success was ensured from the beginning. Other browsers, such as Mosiac and Cello existed. I had all three on my computer around the time JavaScript was being developed, and I still knew people who still preferred Lynx to the graphical Web.
And as Eich points out, not everyone saw the value in a scripting language in addition to Java. Had JavaScript not been good enough, it could have been discontinued or replaced.