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
#definetricks 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
namespacefeature 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.