Hello Sunil

The History of JavaScript: Everything You Need to Know

Eich ultimately created a quick proof of concept using Java-based syntax to express Scheme-based capabilities.

He then went on to incorporate, into this already unlikely combination, a unique style of object-oriented programming (OOP).

A Unique Language

In OOP, data and procedures are encapsulated together into “objects”, which are typically defined via a hierarchy of abstract classes.

Java is one of the most object-oriented languages in existence, with the concept of classes inextricably woven throughout. But OOP in Java has an all-encompassing and rigid flavor that Eich abstain from it.

He instead chose a unique style of OOP – a dynamic and relaxed prototypal inheritance system inspired by the language Self.

Objects could be created at will and linked to other objects (called prototypes). This prototypal inheritance adds comparatively little syntax to a language, yet is capable of simulating classical or alternative inheritance patterns.

This new language combined:

  • Superficialities and control structures from Java
  • Core functional and object-oriented behavior from Scheme and Self
  • Features that were minimalist yet flexible

Eich created a tool that satisfied requirements (“looks like Java,” “small”, “approachable”) but had greater potential than perhaps anyone had anticipated.

JavaScript was far from loved at first. Java developers viewed it as a lesser entity for non-engineers — “UI glue” with sparse tooling and a “weird” inheritance system – and designers and authors still struggled to manipulate page elements like form fields.

But the reality is that having a “glue” language allowed the internet to really flourish. Programmers could react better to use events and compose interactive components.

And due to that, JavaScript spread like wildfire and very quickly became the lingua franca of the web.

…led to a years-long period of misunderstanding, scorn and, yes, even hatred for the language. In the late 1990s and early 2000s even the authors of some books on JavaScript didn’t understand the fundamental elements of the language.

In spite of these issues, JavaScript took off quickly, and development of new tools and web page features outpaced the delivery of actual Java applets.

Java applets, meanwhile, were languishing:

  • Users did not enjoy keeping the Java Virtual Machine up to date
  • They were scared off by Java’s security prompt

In short, JavaScript was seamlessly integrated with the web, whereas Java was lumbering and often divorced from page content.

ECMAScript is born

Netscape realized that for an interactive, dynamic web to succeed, JavaScript would have to be consistent across browsers, so they asked the Ecma International standards organization to codify the language.

In 1997, the organization laid out the platform-agnostic specifications for “ECMAScript” (ES), the language commonly known as JavaScript.

Brendan Eich, famously commented about the name of the standardized language; stating that ECMAScript was an “unwanted trade name that sounds like a skin disease.”

In the decade to follow, ECMAScript went through a bevy of revisions and spinoffs.

ES2 (1998) and ES3 (1999) brought a number of important features (such as “exceptions,” a standard way of handling errors in code), continuing the JavaScript shift from mere “scripting glue” toward a full-fledged language for applications.

For trademark reasons, the ECMA committee was not able to use JavaScript as the name. The alternatives were not liked by many either, so after some discussion it was decided that the language described by the standard would be called ECMAScript.

Today, JavaScript is just the commercial name for ECMAScript.

Evolution of JavaScript

JavaScript still lacked certain features that would normally be expected of a “big” language, though, so ECMAScript 4 sought to remedy that with myriad additions: Java-style classes and interfaces, static types with annotations, improved scoping and variable types, etc.

Developers from Microsoft, Opera, Yahoo!, and Macromedia debated what direction JavaScript should take, while spinoff languages like Macromedia’s ActionScript for Flash added to the uncertainty.

ES4 descended into development hell and was eventually abandoned.

Douglas Crockford was one of the pioneers of the rediscovery of the JavaScript language. And the importance of his invention of the JSON data format using a subset of JavaScript syntax should not be underestimated.

During the 2000s mindshare slowly shifted to view JavaScript as a serious language: a critical mass of developers emerged who understood the language.

However, the “outsider status” of JavaScript continues to reverberate. Early design choices like automatic semicolon insertion, the event loop, lack of classes, unusual inheritance (prototypical) and type coercion are laughed at by people who have not taken the time to understand the thinking behind them.

History of JavaScript - Douglas Crockford

Douglas Crockford

Developers watch other developers laughing at these features and infer that these features are worthy of ridicule and the cycle continues.

Even Brendan Eich, the creator of the language, is occasionally apologetic for design decisions he made for the language.

However, these expressions of apology should not be taken as confirmation that those decisions were wrong: but rather acknowledgement of the necessary inability of one language to please all developers.

Despite bumps in the road, JavaScript was too entrenched and useful to go the way of increasingly irrelevant Java and Flash applets.

History of JavaScript - Jesse James Garrett

Jesse James Garrett

In 2005 Jesse James Garrett helped spark a renaissance by popularizing AJAX, a set of techniques that enable JavaScript-powered websites to feel more like fast native apps.

The JavaScript scene exploded with new, powerful libraries like jQuery , Dojo and MooTools which abstracted away browser inconsistencies and made it easier to apply design patterns.

Sunil Pradhan

Hi there 👋 My name is Sunil and I'm a front-end developer who loves to help others by simplifying web-dev related topics.

Add comment

Stay Updated

Want to be notified when our article is published? Enter your email address below to be the first to know.

Sunil Pradhan

Hi there 👋 My name is Sunil and I'm a front-end developer who loves to help others by simplifying web-dev related topics.