Ruby on Rails Opinião

Por que Ruby on Rails pode ser uma alternativa para o caos do JavaScript

28 Dec 2022

omo desenvolvedor iniciante, pode ser bastante frustrante trabalhar com a stack do JavaScript, especialmente com a abundância de frameworks e ferramentas disponíveis. Embora esse possa ser uma razão boa o suficiente para a sensação de exaustão, acredito que, na verdade, a principal causa desse sentimento é a alta popularidade do JavaScript.

Essa popularidade pode ser excitante para aqueles que já têm mais experiência com o desenvolvimento de software e gostam de experimentar novas ferramentas. Não está satisfeito com o React? Por que não tentar o Vue? Muito complexo? Vá com o Svelte. O Webpack está demorando muito? Dê uma chance ao esbuild ou Vite. Ainda não está satisfeito? Agora você tem o Turbopack. E que tal apostar no melhor runtime? Node? Nah, você deveria aprender o Deno, é muito melhor.

No entanto, se você está começando agora como desenvolvedor, pode ser quase impossível criar um projeto completo com o que você aprendeu. Você terá que empilhar camadas sobre camadas para criar um projeto full-stack. Aprenda React e crie um site. Legal. Precisa ficar ainda melhor? Construa com o Next.js. Mas onde está o banco de dados agora? Experimente o Prisma. Ou você poderia construir com o Vite. Ou Angular. Ou Nuxt. Nast. Nist. Nost...

Eu realmente entendo o apelo desse cenário. Deve dar uma boa dose de adrenalina pensar que você está participando da construção da melhor ferramenta para o desenvolvimento de software. Embora seja verdade que você pode ignorar essa profusão de novas tecnologias e se concentrar apenas em React e Node, é muito fácil se ver preso no entusiasmo e experimentar a última e melhor ferramenta. No meu emprego anterior, havia projetos em Angular, Vue, React e Next. Não dava para escapar dessa realidade.

Não é comparável com o tedioso Ruby on Rails. E por isso que decidi dar uma chance ao Rails e, pra ser sincero, tenho estado muito mais feliz com a minha jornada de aprendizado desde então. Entendo que pode não ser para todos, mas acho que vale a pena considerar como uma alternativa pelas seguintes razões:

1) Você não precisa tomar tantas decisões

Um dos desafios de trabalhar com a stack JavaScript é o número de decisões que devem ser tomadas logo no início do processo de aprendizado. Depois de aprender o básico, você precisa escolher entre três frameworks populares: React, Vue e Angular. No entanto, isso não é o suficiente para um projeto full-stack. Você também precisa decidir por uma solução de backend, como o Firebase ou um CMS que gere um backend simples. Se você optar por ficar com o JavaScript, também precisa selecionar um framework de backend.

Quantos frameworks existem por aí?


Em contraste, o Ruby on Rails fornece tudo o que você precisa para construir um projeto do início ao fim, com um backend e banco de dados robustos, além de um bom frontend. O Rails segue a filosofia de "convenção em vez de configuração", o que significa que determinadas decisões são tomadas para você, tornando mais fácil para os iniciantes se concentrarem em aprender e ter ideias, em vez de passar muito tempo pesquisando e escolhendo entre diferentes opções.

2) Não ache que você precisa ser um generalista tão cedo

A primeira missão de alguém que está aprendendo é ser bom em pelo menos uma coisa. Com o JavaScript, tendemos a querer sermos bons em muitas coisas: aprender muitos frameworks, ser bom em TypeScript, tentar vários bancos de dados... Isso não quer dizer que não devemos experimentar diferentes tecnologias, mas o melhor caminho é ser excelente em uma coisa e, só depois, explorar outras.

O Ruby on Rails é o melhor para essa missão. Com o caminho limpo para focar em aprender, agora consigo me concentrar em soluções de arquitetura, padrões de design, aprender melhor como os bancos de dados funcionam e transformar ideias em realidade.

3) "Felicidade do desenvolvedor" não é apenas retórica

Ruby on Rails tem uma filosofia estranha que, para ser sincero, eu ri no começo. É a filosofia de dar felicidade ao desenvolvedor. Na verdade é um compromisso genuíno de tornar a experiência de desenvolvimento mais simples, agradável e direta o possível. Por exemplo, o Ruby e o Rails são projetados para serem fáceis de ler e entender, com uma sintaxe que se assemelha muito ao inglês comum. Isso facilita para os desenvolvedores entenderem rapidamente o significado do código e fazerem alterações com um esforço mínimo.

Além disso, o Ruby e o Rails incluem vários recursos convenientes que melhoram a experiência do desenvolvedor. Um exemplo clássico é o método #times, que permite iterar um bloco de código em um número inteiro específico x vezes. Por exemplo, você poderia usar o código 10.times { p 'Hello, World!' } para printar a frase "Hello, World!" 10 vezes.

Essa filosofia da felicidade do desenvolvedor é refletida também na comunidade do Ruby. Ela é conhecida por ser acolhedora e descontraída, com muitos membros mostrando seus hobbies e vidas pessoais em seus perfis. Não é incomum ver gurus do Ruby postando fotos de seus filhos ou de suas últimas viagens para pescar. É essa sensação de comunidade e conexão pessoal que torna o ecossistema do Ruby um lugar tão feliz e agradável de estar.

Nota: apesar da comunidade ser maravilhosa, o criador do Rails está envolvido em alguns debates políticos controversos que, ocasionalmente, causam divisão na comunidade. Acredito que o Rails é maior do que isso, mas é importante notar que, na minha experiência, o tom beligerante do criador não reflete a comunidade inteira.

4) Você vai aprender com os melhores

Como Linus Torvarlds uma vez disse: "Galera do Ruby, galera estranha". É um pessoal realmente estranho e realmente excelentes no que fazem. O Ruby on Rails, claro, não é mais o mesmo de antes. O hype que a comunidade do JavaScript tem hoje, o Rails teve há pouco tempo. As pessoas que vieram pelo hype já se foram e o capital humano que ficou é extremamente competente.

No mundo do JavaScript, há muitos iniciantes ensinando. E apesar disso ser ótimo, porque nada é melhor para aprender do que ensinar (é por isso que eu tenho este blog), as chances de aprender de maneira errada aumentam. Às vezes acho que estar perto de pessoas tão estranhas e habilidosas me força a ser a minha melhor versão.

5) É tedioso

É por isso que as pessoas inovadoras e malucas deixaram a comunidade do Ruby on Rails. Muitos argumentam que o Rails tem as melhores soluções para desenvolvimento de software, mas é verdade que ele não fez nada revolucionário nos últimos anos. Em uma situação dessas, os iniciantes podem ficar tranquilos de que o que estão aprendendo hoje não será alterado na próxima versão do framework. O aspecto mais inovador do Rails recentemente é o Hotwire, que promete eliminar o caos dos pesados frameworks de JS para o frontend, mas em geral as pessoas estão procurando uma solução desse tipo na própria stack do JavaScript (Svelte, Solid, etc.), e não em outro lugar (o Phoenix e o Laravel também estão tentando).

E, claro, não acredite que "Ruby on Rails está morto". Muitas empresas novas e grandes usam Rails.


6) Você tem uma arquitetura que te economiza tempo

Ruby on Rails conta com várias soluções incluídas e usa a arquitetura MVC. Embora isso possa ser uma limitação para desenvolvedores experientes, foi uma salvação para mim no início do meu aprendizado. Este padrão cria um "caminho mental" para a solicitação e a resposta em uma perspectiva cliente-servidor. Finalmente entendi onde as coisas começam e onde elas acabam na internet. Além disso, você não precisa se preocupar em colocar as coisas nas pastas erradas ou não saber onde aquele arquivo vai entrar. O Rails lhe oferece um conjunto de regras para isso, e apesar de você poder quebrá-las no futuro, acaba sendo um bom ponto de partida.

7) Há menos concorrência para o primeiro emprego*

No entanto, há menos empregos disponíveis. Mas no mundo do JavaScript, sempre me via competindo com centenas ou até milhares de pessoas. Com Ruby, esse número é significativamente menor e, se você confiar nas suas habilidades, é muito mais fácil se destacar. Claro, há um sério problema no mercado de dev em geral em relação à contratação de juniores. Isso foi ainda mais difícil para mim no Rails porque havia menos empresas com a estrutura para acolher desenvolvedores iniciantes. Mas uma vez que você supera isso, é um lugar maravilhoso para criar uma carreira.

Estas são as razões pelas quais acredito que o Ruby on Rails é um lugar melhor para iniciantes. Uma argumentação contrária que ouvi no começo e que me arrependo de ter ouvido é de que o Ruby on Rails está cheio de "mágica" e você não vai aprender como as coisas REALMENTE funcionam. Isso não é correto. Sim, há muita mágica, mas em geral são coisas que um iniciante não deve se preocupar agora, e você ficará tão à vontade com o Ruby que aprenderá como as coisas funcionam por trás das cenas por prazer, e não por "obrigação". Construir deve ser uma alegria, não uma tortura, e o Rails é o melhor lugar para alguém que acredita no mesmo.

Receba atualizações por e-mail

Sempre que tiver novidades por aqui vou enviar aos inscritos.

Entre na conversa

Criei uma postagem lá no LinkedIn para receber comentários:

Comente