Do I not like Ruby anymore? (2024)

Language flexibility, macros, and stability

  • Some reminisce about languages like Lisp/Smalltalk where you can effectively “program the language” via macros and metaprogramming.
  • Others argue that extreme flexibility harms tooling and shared understanding; if everyone can redefine core constructs, IDEs, linters, and teammates all suffer.
  • Examples like C #define tricks or Scala’s operator overload “gibberish” are cited as cautionary tales: power easily leads to unreadable code.
  • There’s a split between those who prize maximal expressiveness (even at the risk of misuse) and those who increasingly value obvious, non‑magical code.

Typing, tooling, and large codebases

  • Many commenters say good editor support (LSP, autocomplete, jump-to-definition) pushed them away from untyped Ruby toward TypeScript, Kotlin, Go, etc.
  • Strong sentiment that static types shine as projects and teams grow: easier refactors, clearer contracts, fewer “type-checking tests.”
  • Others warn about over-annotation in Python turning it into “Java-with-worse-performance,” but like gradual typing: prototype dynamically, then add types.
  • Ruby’s RBS and Sorbet are discussed: some see them as evidence Ruby does support gradual typing; others find them clunky, second‑class, or too much overhead.

Ruby vs Python: syntax and evolution

  • Ruby still loved for ergonomics, expressiveness, and “luxury” feel; often chosen for prototypes, scripts, or Rails backends despite performance and surprise‑factor concerns.
  • Python is seen as the pragmatic “workhorse” that has evolved aggressively (typing, pattern matching, libraries like Typer), sometimes at the cost of original simplicity and “learn-in-a-weekend” appeal.
  • Debate over Ruby’s many ends vs Python’s indentation: some find Ruby visually noisy; others find Python’s invisible‑whitespace rules brittle.
  • Ruby’s upcoming namespace feature splits opinion: some welcome isolation from the global constant space, others fear more complexity and abuse.

Ecosystems, domains, and career constraints

  • Python’s dominance in data science and JS/TS in the frontend are acknowledged as hard to escape professionally, even if one prefers Ruby.
  • Several note Ruby’s web niche (Rails) vs Python’s broad ecosystem; some see Ruby as losing momentum, others report renewed RoR job postings.
  • TypeScript is called both a “gold standard” for types-on-dynamic-langs and an inherently complex workaround layered on JavaScript.

Taste, emotion, and language “hate”

  • Commenters push back on framing whole languages as “red flags,” likening it to irrational tool hatred; others say repeated “footguns” can justify strong aversion.
  • Overall tone: Ruby remains beloved but feels dated to some without first-class, elegant typing; Python is respected but often described as heavy, cluttered, or joyless by comparison.