FAQ Ruby: Tudo o que você precisa saber para fazer a escolha certa

Ruby é uma linguagem de programação com o foco nos desenvolvedores e na produtividade, mas quem disse que isso é ruim? Neste artigo respondemos as principais dúvidas que são levantadas quando o Ruby se torna uma opção de tecnologia no desenvolvimento de um novo produto digital.

Criamos uma a sequência de artigos onde respondemos as principais dúvidas na hora de escolher uma determinada tecnologia para um novo produto digital. Hoje falaremos sobre Ruby, uma linguagem muito conhecida principalmente por causa do Ruby on Rails e que tem como principal objetivo fornecer produtividade para o programador.

Se você ainda não viu o primeiro artigo da série aproveita para conhecer.

1. O que é Ruby?

O Ruby é uma linguagem de programação interpretada e multiparadigma, possui um gerenciamento de memória automático (um pouco criticado, mas é conversa para outro artigo) e foi desenvolvido em 1995, no Japão, pelo Yukihiro Matsumoto, mais conhecido como "Matz".

Matz tinha em mente criar uma linguagem balanceada e poderosa. Para isso, ele mesclou as boas práticas das suas linguagens de programação favoritas na época, como: Perl, Smalltalk, Eiffel, Ada e Lisp. O foco é manter a linguagem natural para os desenvolvedores. Ele utiliza a seguinte expressão:

"O Ruby é simples em aparência, mas muito complexo por dentro, assim como o corpo humano".

Atualmente o Ruby é uma das principais linguagens de programação no mundo e com certeza bastante popular entre os desenvolvedores.

2. Quais os principais benefícios do Ruby?

Nossa, seria muito fácil para mim listar inúmeros benefícios sobre o Ruby porque, particularmente, é uma das minhas linguagens preferidas. Mas, vou trazer apenas dois que, em minha opinião, são os principais na hora de decidir a escolha de tecnologia para o seu projeto.

Produtividade

Produtividade é relativo e podemos ter opiniões diferentes sobre o assunto. Por isso, vamos definir o que é ser produtivo para fins do nosso artigo. Vamos olhar a produtividade do prisma de velocidade de aprendizado, aplicação de boas práticas e criação de código testável e de fácil manutenção.


Levando em conta estes 3 pilares eu acredito que o Ruby tem um destaque especial, vamos ver uma classe escrita em Ruby:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Orange
 def initialize
   @juice_available = 100
 end
 
 def squeeze
   @juice_available -= 50
 end
end
orange = Orange.new
orange.squeeze


Se você tem um mínimo de conhecimento deve ter entendido o que este trecho de código está fazendo, sem ninguém te explicar. Acho que isso já fala por si só. A beleza do Ruby é que o código fala com você.

Você pode estar pensando: “mas este código é muito simples”. E é mesmo! Dá uma olhada neste exemplo de uma classe do Rails para converter número em telefone.

E claro eu não podia deixar de mencionar, mas segue um vídeo do criador do Ruby on Rails desenvolvendo um blog completo em 15 minutos, em 2005. Imagina quanto evoluiu de lá pra cá!


Ferramentas

Todo o ferramental do Ruby é muito bem construído e maduro. A comunidade como um todo é bem completa e, se você for um desenvolvedor que ainda está aprendendo, tenho certeza que não vai faltar material. Porém, o mais legal é a quantidade de ferramentas disponíveis para você:


  • Ruby on Rails - framework de desenvolvimento web
  • Rubygems - repositório de bibliotecas
  • Spree - solução completa open source para e-commerce
  • Rspec - BDD para Ruby
  • Devise - solução completa de autenticação


Quer ver uma lista completa? Dá uma olhada aqui.


3. Onde o Ruby se destaca?

Quem me conhece sabe que eu não acredito naquelas ferramentas bala de prata, ou seja, uma ferramenta que resolve todos os problemas. Mesmo gostando muito de Ruby não seria diferente.

Para o Ruby fica fácil, sempre que precisamos, desenvolver uma nova aplicação web ou uma API. Quando precisamos fazer isso rapidamente, as chances de escolhermos o Ruby como opção são muito grandes. Mas por quê? Temos ótimos frameworks a nossa disposição, ótimas ferramentas e bibliotecas prontas, configuração de um ambiente completo de CI/CD e um ambiente de produção que também conseguimos fazer de maneira rápida.

Recentemente, recebemos um desafio de colocar um MVP de um produto digital de uma grande empresa em produção em 25 dias. Foi muito corrido! Tivemos vários problemas, mas conseguimos cumprir o prazo porque escolhemos a tecnologia correta.


4. É fácil escalar aplicações utilizando Ruby?

Como já falei no artigo anterior, eu não acredito que seja fácil de escalar nenhuma aplicação - e é simplista demais pensar desta forma, porque cada desafio tem as suas particularidades e peculiaridades.

Mesmo assim esta é uma pergunta recorrente que temos que responder. Provavelmente, você já deve ter ouvido falar que o Ruby é lento e, até mesmo, citar o Twitter como um "fracasso" para a linguagem. Mas a verdade é que pouquíssimas aplicações chegarão a quantidade de requisições que o Twitter precisa responder por segundo. Além dele, temos outros casos de muito sucesso.

Se você é um desenvolvedor ou trabalha com desenvolvimento de software, já deve ter ouvido falar do Github. Sim, este mesmo que você está pensando. O Github é uma aplicação desenvolvida em Ruby utilizando o framework Ruby on Rails.

Daqui pra frente tire as suas próprias conclusões sobre a escalabilidade do Ruby. :)


5. Quem está usando o Ruby?

Conheço diversos casos de uso do Ruby, mas vou citar alguns que são bem conhecidos por toda parte:

  • Shopify - Maior plataforma de e-commerce do mundo com mais de 1 milhão de lojas;
  • Airbnb - Maior marketplace de experiências e hospedagem do planeta;
  • Basecamp - Plataforma de gestão de projetos desenvolvida pelo criador do Ruby on Rails;
  • Zendesk - uma das maiores plataformas mundiais de suporte e customer success;


Além destes que posso dizer que possuem um maior destaque, desenvolvemos aqui dentro da ateliware:

  • Pipefy - Automação e gestão de processos, já utilizado em mais de 150 países;
  • minestore - Plataforma de e-commerce com mais de 100 mil lojas criadas somente no Brasil.


6. Qual a popularidade entre os desenvolvedores?

Por se tratar de uma linguagem super consolidada e focada na produtividade dos desenvolvedores é difícil encontrar alguma pessoa que já tenha tido algum contato com a linguagem e não tenha gostado. A simplicidade e a quantidade de ferramentas com certeza se tornam um destaque e um ponto positivo da linguagem. Acredito que não será um problema para a sua empresa contratar desenvolvedores no mercado.

O Stackoverflow realiza todos os anos uma pesquisa com os desenvolvedores da comunidade (que são muitos) para saber o "senso" e opinião. Nesse ranking,  o Ruby ainda se mantém como o queridinho dos desenvolvedores. Deixo aqui o link para você pode acompanhar os detalhes.

7. Quando Ruby não é a melhor opção?

Compartilho uma relação quase que óbvia sobre alguns casos de uso que acredito que o Ruby não seja a ferramenta ideal:

  • Processamento computacional pesado - Não é algo que o core team do do Ruby está muito preocupado. Além disso, já existem ótimas ferramentas utilizando Python, Matlab ou R;
  • Mobile apps - Existem algumas iniciativas para utilização do Ruby como ferramenta para desenvolvimento de apps chamada Rubymotion. Particularmente acredito que existem ferramentas mais maduras disponíveis por aí.

8. Conclusão

O conteúdo ficou mais longo do que eu gostaria, mas tentei responder questões fundamentais para ajudar você a decidir qual será a tecnologia para o seu próximo projeto ou produto digital.

Gosto sempre de deixar uma recomendação de leitura para que você mesmo possa aprofundar o conhecimento e tirar a suas próprias conclusões:


Ainda ficou alguma dúvida? Entre em contato com a gente através do nosso Twitter ou Linkedin.

Até a próxima!



Peterson Santos

Founder & CEO at ateliware | Artesão de software, interessado em programação, open source, produtos digitais e internet.

Aplicando testes com usuários durante a construção de um produto

Os maiores desafios da transformação digital nas empresas

Cases de transformação digital ateliware