Worse Is Better
Share
JavaScript's success demonstrates how technologies with initial limitations can evolve to dominate through adaptation rather than perfect initial design.
The "Worse is Better" Paradigm
- A concept from the early days of internet development
- "Worse" in the sense of less powerful or feature-complete
- Constrained technologies can be more predictable and adaptable
- Success often comes through evolution rather than intelligent design
- Brendan Eich (JavaScript creator) views tech success through the lens of natural selection
JavaScript's Evolutionary Advantage
- JavaScript has an "unfair advantage" - it's the only language that runs in every web browser
- Beat alternatives like Flash (killed by Steve Jobs) and Java applets
- Initially viewed as a "toy" language with significant limitations
- Created in just 10 days due to extreme time constraints from Marc Andreessen
- Named "JavaScript" for marketing purposes despite having no relation to Java
- Started as a simple inline code to make HTML "slightly more alive"
How JavaScript Evolved
- The MooTools team created workarounds for missing features (like classes)
- Developers built upon the minimal foundation to add missing capabilities
- The language evolved to become more sophisticated over time
- Critics focused on what JavaScript couldn't do at that moment rather than its potential
- Now "JavaScript has eaten the world" despite initial limitations
The Power of Minimal Viable Foundations
- "What is the minimum surface that you can ship on top of which evolution can be bootstrapped?"
- Better to ship something minimal that can evolve than aim for completeness
- Success often comes from reduction and focus on essentials
- Constraints (like deadlines) can force beneficial simplification
- Human nature tends to add complexity, but success often comes from simplicity
The Harry Potter Newspaper Analogy
- Server-side JavaScript is like printing a newspaper (pre-rendered content)
- Client-side JavaScript makes it "come alive" like newspapers in Harry Potter
- Content can be manufactured/printed but then becomes interactive when delivered
- This dual capability gives JavaScript unique power in web development