Eu Amo Ruby

O foco do Ruby na felicidade do desenvolvedor, na sintaxe expressiva e nos recursos amigáveis a DSL ainda inspira grande afeição, especialmente para prototipação rápida e trabalho web com Rails, mas também levanta preocupações sobre manutenção, comportamento implícito e ferramentas fracas em comparação com ecossistemas tipados modernos. Os comentaristas contrastam o estilo “lê-se como inglês” e a metaprogramação poderosa do Ruby com a segurança e o suporte de IDE de linguagens como Rust, Kotlin, TypeScript e Python, muitas vezes citando sistemas de tipos e explicitidade como razões para terem se afastado. Grande parte do debate gira em torno de trocas entre produtividade e clareza de longo prazo: código conciso e agradável versus os desafios de depurar a mágica, raciocinar sobre globais e trabalhar em bases de código grandes e longevas.

Sentimento geral

  • Muitos comentaristas dizem que Ruby é singularmente agradável e produtivo, especialmente para “fazer as coisas acontecerem” e prototipar.
  • Outros ativamente não gostam de trabalhar com Ruby, particularmente em bases de código grandes ou legadas, citando problemas de manutenção e “mágica”.
  • Várias pessoas já não usam Ruby no dia a dia, mas mantêm uma forte afeição por ele.

Expressividade e sintaxe

  • Os defensores destacam o estilo “lê-se como prosa” de Ruby, métodos predicados com ?, blocos/yield e operações encadeadas de Enumerable como altamente expressivos.
  • Os críticos argumentam que “lê-se como inglês” é superestimado; linguagem natural é imprecisa, e código muito baseado em DSL pode ser mais difícil de acompanhar do que código simples.
  • Há debate sobre o que “expressivo” sequer significa; alguns o associam ao poder de DSL/metaprogramação, outros o veem como um rótulo vago para “eu gosto desta linguagem”.

Tipos e ferramentas

  • Muitos migraram de Ruby para Rust, TypeScript, Kotlin etc., dizendo que já não conseguem viver sem tipagem estática forte.
  • A história de tipagem gradual do Ruby (Sorbet, RBS) é amplamente vista como desajeitada ou dolorosa; alguns acham que Ruby “precisa” de tipos melhores embutidos, outros dizem que isso trairia sua natureza de passagem de mensagens.
  • As ferramentas são percebidas como mais fracas do que nos ecossistemas tipados: ir para a definição e a análise estática são frágeis, especialmente em código Rails/metaprogramado. Alguns observam que novas ferramentas de LSP/debug estão melhorando isso.

Metaprogramação, “mágica” e manutenção

  • Ruby (e especialmente Rails) é elogiado por metaprogramação poderosa e DSLs (RSpec, Cucumber, rotas/validações do Rails), que parecem elegantes e concisos.
  • Os mesmos recursos são criticados por comportamento opaco e implícito: métodos gerados dinamicamente, uso intenso de herança, estado mutável global e cadeias profundas de abstração dificultam o raciocínio local.
  • As pessoas descrevem dificuldade para rastrear onde um método é definido ou por que algo acontece; outros respondem que introspecção em runtime (pry, method(...).source_location) é o fluxo de trabalho pretendido.

Comentários e documentação

  • Há forte discordância sobre “código como documentação”. Alguns Rubyists escrevem poucos comentários e confiam em código claro, de alto nível, e em DSLs.
  • Muitos argumentam que comentários são essenciais para explicar o “porquê”, decisões de design e restrições não óbvias; a ausência desse tipo de comentário é vista como um sinal de manutenção ruim.

Desempenho, ecossistema e empregos

  • Alguns dizem que o desempenho do Ruby normalmente é bom o suficiente para trabalho web, onde a latência de banco de dados ou de rede domina; outros preferem linguagens mais rápidas ou mais tipadas para backends sérios.
  • Ruby é elogiado por um ecossistema agradável e uma comunidade amigável, mas vários percebem um declínio nas oportunidades de emprego em Ruby/Rails em comparação com TypeScript/React e outras stacks.