Because It's Not Fun Enough: why languages fail
Programming language success, some argue, has less to do with technical elegance and more with human factors such as “fun,” ecosystem strength, and backing by major platforms or companies. Commenters push back on reducing everything to fun, pointing instead to job prospects, libraries and tooling, community culture, and historical accidents that helped languages like C, JavaScript, Python, and Rust thrive while more refined or expressive options (Lisp, Haskell, Scala, Objective-C) stayed niche. Several parallels are drawn to AI-assisted coding, which is seen as fast and convenient but often producing mediocre code, reinforcing the idea that tools win on practicality and integration rather than pure sophistication.
AI and Code Generation
- Several comments map the article’s “sampler vs musician” analogy to AI: AI can generate code quickly but lacks “soul” and design insight.
- Some argue AI is “great at producing code”; others strongly disagree, reporting bloated, poorly factored output that’s hard to steer toward elegant or idiomatic designs.
- Consensus: LLM code is fast and convenient for throwaway scripts or noncritical components, but not yet consistently “good” or architecturally sound.
Why Languages Succeed or Fail
- Many say success is rarely about language elegance alone; platform fit, timing, and backing matter more.
- “Native to a platform” status (e.g., JS in browsers, Swift for Apple, Java for JVM) is repeatedly cited as decisive.
- Ecosystem (stdlib, libraries, tooling, documentation, job market) is considered more important than core syntax.
Platform, Ecosystem, and Politics
- Vendor push is seen as crucial: Apple for Swift, Microsoft for C#/VB, Mozilla for Rust.
- Some argue language popularity is heavily political: dominated by English-speaking communities and “in-group” promoters.
- Commercial vs free availability (e.g., ColdFusion vs PHP) is cited as shaping early web language adoption.
Debates on Specific Languages
- Objective‑C vs Swift: disagreement over whether ObjC “failed” or was simply deprecated by Apple policy, not lack of fun.
- JavaScript vs Python: disagreement about which is “boom” vs “bust”; JS wins via browser ubiquity, Python via ecosystem and readability.
- Scala: blamed variously on elitist community, slow tooling, and a long compiler rewrite that didn’t fix core pain points.
- Lisp: praised for REPL, macros, and fun; criticized for weak, fragmented ecosystems.
- C/C++: disliked by some for complexity but acknowledged as performance and legacy incumbents.
- Kotlin vs Java: Kotlin seen as more pleasant but unable (so far) to displace Java’s entrenched position.
“Fun” vs Practicality
- Multiple commenters say “fun” is subjective and insufficient as a predictor of success.
- “Boring” or rigid languages (Go, Java, C) can thrive because they’re predictable, supported, and “safe bets.”
- Some maintainers explicitly hire for people who enjoy coding; others emphasize that jobs prioritize stability, not joy.
Tooling, REPLs, and Developer Experience
- Good package managers, build tools, and cross‑platform GUIs are seen as major adoption drivers.
- REPL-driven workflows (Lisp, others) are contrasted with unit-test‑centric workflows; viewed as complementary, not interchangeable.
- Rust is described as syntactically “unfun” but redeemed by excellent tooling (cargo, crates).