Est. 1995 Beginner

JavaScript

The ubiquitous scripting language of the web, enabling interactive websites and full-stack applications with Node.js.

Created by Brendan Eich

Paradigm Multi-paradigm: Event-driven, Functional, Imperative, Object-Oriented (prototype-based)
Typing Dynamic, Weak
First Appeared 1995
Latest Version ECMAScript 2024 (ES15)

JavaScript is the most widely deployed programming language in history. Created in just 10 days, it evolved from a simple browser scripting language into a full-stack powerhouse that runs on every web browser, server, mobile device, and even IoT hardware.

History & Origins

In May 1995, Brendan Eich was hired by Netscape Communications to embed the Scheme programming language into Netscape Navigator. Management soon changed direction, requesting a language that looked like Java (which Sun Microsystems was heavily marketing) but was simpler for non-programmers.

Under intense deadline pressure, Eich created the language’s first version in just 10 days. Originally called “Mocha,” it was renamed “LiveScript” and finally “JavaScript” - a marketing decision to capitalize on Java’s popularity, despite the languages having little in common.

The Name Confusion

JavaScript’s relationship to Java is purely superficial - similar to the relationship between “car” and “carpet.” The name was chosen for marketing purposes during the browser wars. This naming decision has confused beginners for three decades.

Browser Wars & Standardization

The language’s early years were chaotic:

  • 1996: Microsoft reverse-engineered JavaScript as “JScript” for Internet Explorer
  • 1997: ECMA International standardized the language as ECMAScript
  • 1999-2009: “The Dark Ages” - ECMAScript 4 abandoned after years of disagreement
  • 2009: ES5 finally shipped, bringing JSON support and strict mode

The Modern JavaScript Revolution

ES6/ES2015: The Renaissance

The 2015 release of ECMAScript 6 transformed JavaScript from a quirky scripting language into a modern programming language:

  • Arrow functions: const add = (a, b) => a + b
  • Classes: Syntactic sugar over prototype-based inheritance
  • Modules: Native import/export syntax
  • Promises: Built-in asynchronous programming support
  • Template literals: String interpolation with backticks
  • let/const: Block-scoped variable declarations
  • Destructuring: Extract values from arrays and objects elegantly

Node.js: JavaScript Everywhere

In 2009, Ryan Dahl created Node.js, bringing JavaScript to servers. This was revolutionary:

  1. Same language frontend and backend - Full-stack JavaScript teams
  2. Non-blocking I/O - Excellent for handling concurrent connections
  3. npm - The world’s largest software registry (3+ million packages)
  4. Event-driven architecture - Perfect for real-time applications

The Framework Era

JavaScript’s ecosystem exploded with frameworks:

YearFrameworkInnovation
2006jQuerySimplified DOM manipulation
2010Angular.jsTwo-way data binding, MVC
2013ReactVirtual DOM, components
2014Vue.jsProgressive framework, accessibility
2016Angular 2+TypeScript, complete rewrite
2016SvelteCompile-time optimization

Modern JavaScript Ecosystem

Runtimes

  • Node.js: The original server-side runtime, now at v22 LTS
  • Deno: Created by Node.js creator Ryan Dahl, security-first, TypeScript-native
  • Bun: Ultra-fast all-in-one toolkit (runtime, bundler, package manager)

TypeScript

Microsoft’s TypeScript has become the de facto choice for large JavaScript projects:

  • Static typing catches errors at compile time
  • Enhanced IDE support and autocompletion
  • Compiles to plain JavaScript
  • Used by Angular, React (optionally), Vue 3

Build Tools Evolution

The JavaScript build ecosystem has matured significantly:

  • Webpack (2012): Module bundler that defined an era
  • Vite (2020): Lightning-fast development with native ES modules
  • esbuild (2020): Go-based bundler, 10-100x faster than Webpack in benchmarks
  • Turbopack (2022): Rust-based, successor to Webpack by Vercel

JavaScript’s Quirks

JavaScript has notorious quirks that stem from its rushed creation:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// Type coercion surprises
[] + []       // ""
[] + {}       // "[object Object]"
{} + []       // 0

// Equality confusion
"0" == false  // true
"0" === false // false
null == undefined // true

// Array sorting gotcha
[10, 2, 1].sort() // [1, 10, 2] - sorts as strings!

These quirks led to best practices like:

  • Always use === instead of ==
  • Use explicit type conversions
  • Consider TypeScript for larger projects

Why JavaScript Matters

Despite its flaws, JavaScript’s dominance is assured by several factors:

  1. Universal deployment: Every web browser has a JavaScript engine
  2. Low barrier to entry: No compilation, runs in browser dev tools
  3. Massive ecosystem: npm has more packages than any other registry
  4. Constant evolution: Yearly ECMAScript releases add modern features
  5. Full-stack capability: Same language client and server
  6. Community: One of the largest developer communities worldwide

JavaScript may not be the “best designed” language, but it’s the most accessible and widely deployed programming language ever created - truly the “assembly language of the web.”

Timeline

1995
Brendan Eich creates JavaScript in 10 days at Netscape
1996
Microsoft creates JScript for Internet Explorer
1997
ECMAScript 1 standardized by ECMA International
1999
ECMAScript 3 adds regular expressions, try/catch
2005
Term 'Ajax' coined; asynchronous techniques popularized by Gmail (2004) and Google Maps
2006
jQuery released, simplifying DOM manipulation
2009
Node.js brings JavaScript to servers; ECMAScript 5 standardized
2010
npm package manager launches, kickstarting the ecosystem explosion
2013
React released by Facebook, popularizing component-based UI
2015
ECMAScript 6 (ES2015) adds classes, modules, arrow functions, promises
2016
Angular 2 released; Vue.js (first released 2014) gains significant traction
2020
Deno 1.0 released as alternative JavaScript runtime
2022
Bun runtime enters public beta, focusing on speed and developer experience
2024
Node.js 22 LTS; npm registry hosts over 2 million packages

Notable Uses & Legacy

Netflix

Uses Node.js for its UI rendering layer and API gateway, and React for its web user interface.

LinkedIn

Migrated its mobile backend from Ruby on Rails to Node.js, reportedly achieving up to 20x faster performance in some scenarios while reducing servers from 30 to 3.

PayPal

Adopted Node.js for web applications, enabling full-stack JavaScript development teams.

Meta (Facebook)

Created React and uses JavaScript extensively across its web properties including Instagram and WhatsApp Web.

Uber

Built its original real-time dispatch system on Node.js, leveraging its event-driven architecture for massive concurrent connections.

Every Modern Website

JavaScript runs on nearly 99% of all websites for client-side interactivity and dynamic content, according to W3Techs.

Language Influence

Influenced By

Java Scheme Self C AWK HyperTalk Perl

Influenced

TypeScript CoffeeScript Dart ActionScript QML

Running Today

Run examples using the official Docker image:

docker pull node:22-alpine

Example usage:

docker run --rm -v $(pwd):/app -w /app node:22-alpine node hello.js

Topics Covered

Last updated: