8 pontos por GN⁺ 2023-12-19 | 1 comentários | Compartilhar no WhatsApp

Em busca da felicidade do programador

  • Ruby é uma linguagem que busca a felicidade do programador, e isso às vezes até se torna alvo de zombaria por parte de outras comunidades.
  • Usar Ruby é prazeroso, e esse é um valor presente na linguagem, no ecossistema de gems e em toda a comunidade.
  • Ao escrever código em Ruby, sente-se prazer até mesmo nas partes ruins.

Incentiva a expressividade

  • Ruby é talvez a linguagem de programação mais expressiva do planeta.
  • Por meio de recursos de metaprogramação e de idiomatismos culturais, ela permite que programadores escrevam código que expresse claramente sua intenção.
  • Por exemplo, a DSL do RSpec faz com que aquilo que se deseja testar possa ser lido quase como se uma pessoa estivesse falando.

Uma linguagem feita para mim

  • Muitos desenvolvedores Ruby sentem que Ruby e Rails se encaixam perfeitamente no seu modo de pensar.
  • É possível adivinhar intuitivamente nomes e assinaturas de métodos e, quando se erra, tentar trocar a ordem dos argumentos.
  • Aprende-se rapidamente a experimentar algo com base na intuição antes mesmo de ler a documentação.

Comunidade e valores

  • A comunidade Ruby desempenha um papel importante na definição do que a linguagem é e da sensação de usá-la.
  • Kent Beck disse: "Software design is an exercise in human relationships", e isso também se aplica à comunidade e aos valores.
  • A comunidade Ruby é um grupo incrível, acolhedor, gentil e que apoia uns aos outros.
  • Ruby tem como grandes características a alegria e a comunidade, e isso é uma vantagem extraordinária.

Opinião do GN⁺

  • As características mais importantes da linguagem Ruby são a felicidade do programador e a possibilidade de escrever código expressivo.
  • A forte coesão da comunidade Ruby e sua cultura de apoio mútuo oferecem grande orgulho e satisfação aos desenvolvedores que usam essa linguagem.
  • Este texto transmite o encanto do Ruby sob a perspectiva de um desenvolvedor que ama a linguagem, e é interessante e envolvente ao mostrar que uma linguagem de programação pode ir além de uma simples ferramenta e formar uma comunidade e uma cultura.

1 comentários

 
GN⁺ 2023-12-19
Comentários no Hacker News
  • Há opiniões divergentes sobre a expressividade da linguagem Ruby

    Ruby é excelente quando você trabalha dentro do ecossistema ou faz o tipo de tarefa que o ecossistema espera, mas fica muito complicado quando você tenta fazer algo fora do padrão. Os métodos auxiliares de suporte podem estar definidos em algum ponto com cinco níveis de abstração de profundidade, e às vezes podem até fazer parte da metaprogramação de alguma biblioteca, então o LSP nem sempre consegue apontá-los. Ruby é um ecossistema que celebra o implícito, e isso às vezes parece enlouquecedor. Mesmo que o código final fique bonito e agradável de ler, isso não resolve todos os problemas.

  • Há quem reconheça a importância da experiência do desenvolvedor, mas não ache que Ruby seja a melhor nisso

    Concordo que a experiência do desenvolvedor é subestimada em muitas linguagens de programação e frameworks, mas não acho que Ruby seja a melhor nessa área. A sintaxe pode parecer boa no início, mas a ausência de informações de tipo e a metaprogramação tornam Ruby difícil de usar. Além disso, há outros fatores a considerar ao escolher uma linguagem de programação, como desempenho em runtime. Acho que Ruby saiu de moda por causa da falta de tipagem estática e por esses motivos. Pessoalmente, considero Kotlin o ponto ideal entre as linguagens de programação. Kotlin é concisa e fácil de ler, além de oferecer suporte de ferramentas de nível mundial, tipagem estática, o excelente desempenho da JVM e tudo do ecossistema Java.

  • Há um comentário que demonstra carinho pela linguagem Ruby, mas explica por que ainda prefere Python

    Gosto de Ruby e prefiro Ruby a Python. Gosto especialmente de como o encadeamento de operações funcionais é muito limpo e expressivo. Também gosto das semelhanças com Java Streams. O ecossistema de bibliotecas também é excelente e, como em Python, as bibliotecas são muito práticas. Mas para trabalho que precisa de manutenção, escolho Python, e quando preciso me preocupar minimamente com desempenho, escolho Java. Entre Ruby e Python, continuo escolhendo Python por causa das abordagens diferentes à tipagem gradual. Python 3 permite incluir tipos como parte do programa, enquanto Ruby tende a colocar os tipos em arquivos separados. Isso parece ser voltado principalmente para bibliotecas, de forma parecida com bibliotecas JavaScript que distribuem arquivos de tipos TypeScript junto. Mas, pessoalmente, quero usar os tipos diretamente. Claro, existe o Sorbet, mas não gosto do fato de ele ser uma gem e não parte da sintaxe, funcionando dentro da linguagem em vez de fazer parte dela. Vi isso funcionar bem na Stripe, mas pessoalmente não gosto, e sinto que o Python 3 com type hints embutidos permite aplicar tipos com mais facilidade do que Ruby. Gosto muito de Ruby, mas queria que essa parte de type hints melhorasse.

  • Há uma opinião de quem compartilha experiência com várias linguagens e diz ter pouca preferência por Ruby

    Já experimentei várias linguagens e, numa época em que usava Rails principalmente, mergulhei fundo em Ruby. Ainda assim, Ruby é provavelmente a linguagem de que menos gosto. A maior parte dos recursos que tornam Ruby única acaba me levando a buscar diversão funcional em F#, usar C++ quando quero sentir espírito de aventura, ou recorrer a Scheme/Racket quando quero uma linguagem dinâmica. Fico curioso se existe alguma definição quantitativa geralmente aceita para a expressividade de linguagens de programação. Aqui, o autor parece equiparar expressividade à proximidade com a linguagem natural. Pela minha experiência, código Ruby é fácil de escrever, mas difícil de acompanhar se você não estiver familiarizado com a base de código e seus idiomatismos. Muita da informação necessária para entender o código é transmitida por contexto implícito.

  • Há uma opinião que expressa forte antipatia por Ruby, embora seja a linguagem principal usada atualmente

    Eu odeio Ruby com paixão, mas atualmente é a linguagem que mais uso. O problema não é tanto Ruby em si como uma linguagem razoável, e sim os padrões comuns no ecossistema. O uso de herança para compartilhamento de código, a proliferação de estado global mutável e o abuso de metaprogramação são apontados como problemas. Essas coisas não são impostas pela linguagem, mas são práticas e convenções que a comunidade usa com frequência.

  • Há um comentário sobre a dificuldade de manter Ruby e a tentativa de migrar para outra linguagem

    Sinto que manter Ruby é um pesadelo e estou tentando escapar desse inferno. Gosto de Ruby para projetos pessoais, mas quando se trabalha com outras pessoas tudo vira bagunça mais rápido, e aí desaparece a vantagem de Ruby de “não ficar no seu caminho”. O problema apontado é que isso destrói a capacidade de raciocínio local sobre o código.

  • Há um relato de transição de Ruby para Rust, mantendo ainda assim carinho por Ruby

    Depois de usar Ruby por 10 anos, mudei para Rust há 4 anos e não pretendo olhar para trás. Mesmo assim, continuo tendo carinho por Ruby. Sinto que já não consigo mais trabalhar sem um bom sistema de tipos e acho que me acostumei com Rust. Ainda assim, sinto falta dos poderosos recursos de reflexão do Ruby.

  • Há uma observação sobre a ironia de linguagens divertidas frequentemente terem um mercado de trabalho menor

    Uma das ironias da programação é que as linguagens mais divertidas de usar frequentemente têm os menores mercados de trabalho. Se eu pudesse programar em Elixir o dia todo, minha vida profissional como programador seria muito melhor, mas quase não há vagas para Elixir em comparação com TypeScript, Python e Java. Ruby era uma exceção a isso, mas agora quase não há mais gente baseada em Rails; em vez disso, há muito mais gente baseada em React e NextJS. Isso diz respeito ao mercado de aplicações full stack como um todo e pode ser diferente para quem usa Rust para sistemas ou Python para dados/IA.

  • Há uma opinião que destaca a influência do ecossistema e da cultura Ruby na programação

    Há muita discussão sobre a linguagem em si, mas o ecossistema Ruby e a cultura que ele cria são o motivo de eu continuar por perto. O artigo também aponta isso. Ainda não vi uma comunidade de programação tão encorajadora e gentil quanto a comunidade que existe em torno de Ruby.

  • Há uma reação positiva ao autor gostar de Ruby, junto com experiências pessoais relacionadas

    Fico feliz que o autor goste de Ruby e, como alguém com experiência limitada com a linguagem, essas citações me chamaram atenção. É importante que uma linguagem seja prazerosa de usar, que um código Ruby bem escrito possa ser lido como linguagem natural e que seja poderoso sentir reconhecimento na linguagem em que se programa. Também concordo com a fala de Kent Beck de que o design de software é uma prática de relações humanas. Todos os componentes que dão suporte a uma linguagem — compilador, documentação, biblioteca padrão, bibliotecas de terceiros, gerenciador de pacotes, framework, formatador, profiler etc. — são especialmente importantes.