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 (2+ 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
2020SvelteCompile-time optimization

Modern JavaScript Ecosystem

Runtimes

  • Node.js: The original server-side runtime, now at v22 LTS
  • Deno: Created by Node.js founder, 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 (2014): Module bundler that defined an era
  • Vite (2020): Lightning-fast development with native ES modules
  • esbuild (2020): Go-based bundler, 100x faster than Webpack
  • 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
Ajax techniques revolutionize web applications (Gmail, 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 and Vue.js rise as major React alternatives
2020
Deno 1.0 released as alternative JavaScript runtime
2022
Bun runtime released, 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 streaming platform's backend services and React for its user interface.

LinkedIn

Migrated from Ruby to Node.js, improving performance by 20x while reducing server count.

PayPal

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

Meta (Facebook)

Created React and uses JavaScript extensively across Instagram, WhatsApp Web, and Threads.

Uber

Uses Node.js for handling massive concurrent connections in real-time ride matching.

Every Modern Website

JavaScript runs in 99% of all websites for client-side interactivity and dynamic content.

Language Influence

Influenced By

Java Scheme Self C AWK HyperTalk Perl

Influenced

TypeScript CoffeeScript Dart JSON Node.js ecosystem

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: