Ruby é uma das principais linguagens de programação utilizadas pela Caiena há cerca de seis anos, junto do framework Rails. Uma das características mais conhecidas da linguagem é a de ter sido criada com foco na produtividade e felicidade dos desenvolvedores.

No entanto, essa característica não pode justificar, sozinha, a escolha de uma ferramenta para a construção de softwares. Então quais são os outros aspectos que fazem do Ruby on Rails uma opção tão acertada para o desenvolvimento Web?

Para responder essa questão, conversamos com um de nossos arquitetos, Eduardo Foster. Além de falar sobre as vantagens do Ruby on Rails, Foster contou um pouco sobre como e porque a linguagem e o framework começaram a ser usados na Caiena e sobre sua própria experiência utilizando-os.

Como surgiu a decisão de utilizar Ruby on Rails nos projetos da Caiena?

[Eduardo Foster] A decisão de usar Rails foi feita pela liderança técnica de um projeto muito desafiante que tínhamos na época. Foi considerado que os objetivos só seriam alcançados, com a qualidade e prazo esperados, utilizando Rails.

Como foi para você a experiência de começar a programar em Ruby on Rails?

[Eduardo Foster] Minha experiência de programar em Ruby on Rails começou em outro projeto, um pouco depois. Eu já havia trabalhado em projetos usando outras linguagens de programação e frameworks, como C, C++, Python, Java, Objective-C, C# e, apesar das qualidades de cada uma delas, nenhuma se comparou à experiência de usar Ruby. Com Ruby, no geral, nosso foco está muito mais no problema que queremos resolver do que nos problemas que a própria linguagem nos impõe.

Quais são os principais motivos que levaram os programadores e programadoras da Caiena a continuar utilizando Ruby on Rails depois dessa primeira experiência?

[Eduardo Foster] Creio que o principal é ser capaz de atingir os critérios que consideramos indispensáveis para a entrega de um projeto, como a experiência de uso, qualidade técnica e produtividade da equipe. Não utilizaríamos se tivéssemos, por exemplo, que comprometer a experiência de uso pela produtividade.

Além disso, tanto o framework quanto seu ecossistema possuem uma série de ferramentas e convenções relacionadas ao desenvolvimento Web. Questões de segurança, autenticação, autorização, entre outras, possuem diversas alternativas muito bem consolidadas. Ou seja, Rails permite que seu projeto inicie focado no que realmente importa, que é a entrega de valor.

Por fim, um ponto que considero muito importante é o Ruby possuir uma comunidade muito engajada em relação à qualidade de software, testes automatizados, desenvolvimento orientado a testes, produtividade, etc.

Você acredita que utilizar Ruby on Rails traz algum impacto para a Caiena enquanto negócio?

[Eduardo Foster] Acredito que sim. Há uma infinidade de opções que podem ser usadas para o desenvolvimento Web, mas não conheço nenhuma que permita entregar a experiência de uso, qualidade técnica e produtividade como Rails. Além disso, no processo de entrega contínua, o projeto vai ganhando complexidade em vários aspectos. O Rails, assim como outras diversas ferramentas do ecossistema, permite que o aumento de complexidade não se traduza na redução da qualidade técnica. Permite também que possamos dar respostas rápidas às diversas mudanças naturais que surgem no decorrer dos projetos.

O Ruby realmente faz os programadores e programadoras mais felizes?

[Eduardo Foster] Acho que para entender esse conceito é preciso definir com mais precisão seu significado. Talvez uma tradução melhor para o objetivo do criador da linguagem seja: tornar a atividade de programar prazerosa. E aí podemos fazer a mesma associação com qualquer outra ferramenta que usamos.

Por exemplo, temos chaves-de-fenda que são horríveis de utilizar, por diversos aspectos, como um projeto errado ou uma produção mal-feita. Da mesma forma, temos chaves-de-fenda muito bem projetadas e produzidas. A experiência de uso de apertar parafusos será prazerosa em alguns casos e frustrante em outros. Mas, dificilmente, alguém se considerará feliz por usar uma chave-de-fenda.

Considero que só é possível entender genuinamente esse conceito quando experimentamos diversas outras linguagens.

Em que casos o Rails não é uma boa opção?

[Eduardo Foster] Rails foi criado para atender a uma classe específica de aplicações, que são as aplicações Web. Nesse contexto, não consigo ver um caso em que Rails não seja uma boa opção.

Para saber mais sobre programação

Durante os próximos meses publicaremos textos mais aprofundados sobre conceitos e técnicas que fazem parte do universo da tecnologia e da programação. Para acompanhar essas publicações, é só nos seguir nas redes sociais! Por lá você pode, inclusive, nos mandar perguntas e sugerir assuntos sobre os quais gostaria de ler por aqui!