left-pad 2016: Eleven Lines of JavaScript and the Fragility of Dependency Graphs
In 2016, removing the tiny left-pad package from npm broke builds across the JavaScript ecosystem and forced the registry to restore an unpublished version from backup.
In 2016, removing the tiny left-pad package from npm broke builds across the JavaScript ecosystem and forced the registry to restore an unpublished version from backup.
Seven language designers, standards editors, engine builders, and framework creators helped turn JavaScript into a global application platform.
The same-origin policy became the browser's core isolation rule, letting users visit mutually untrusted sites while restricting one site's scripts from reading another site's private state.
TypeScript added a structural static type system and large-scale development tooling to JavaScript while preserving the language's runtime behavior and allowing existing code to adopt types incrementally.
Yarn's 2016 launch made deterministic dependency installation, shared lockfiles, offline caching and monorepo workflows central concerns in the rapidly growing JavaScript package ecosystem.
npm paired a registry, command-line client and package.json metadata with Node.js, making tiny reusable JavaScript packages and deep dependency graphs a normal development style.
JavaScript transformed the browser from a document viewer into a programmable environment, then survived browser competition by becoming an independently standardized language.
The Web began as a system for linked documents. Within a few years, code had moved into the browser and the document surface was becoming an application platform.