This is the way: Da Verbosidade ao Prazer de Programar com Ruby
- #Java
- #Ruby
- #C#
Como Me Apaixonei Por Ruby:
Durante a faculdade, como muitos a maioria, aprendi a programar com com Java e C#. Ambas são poderosas, amplamente usadas no mercado e excelentes para aprender os fundamentos da programação orientada a objetos. No entanto, havia algo nelas que nunca me pareceu natural: a verbosidade.
Sempre que precisava escrever algo simples, me via cercado de public static void
, Main
, class
, interface
, using System
e outras estruturas que pareciam mais burocracia do que código. Era como se para pedir um café, eu tivesse que preencher um formulário em três vias.
Mas tudo mudou no dia em que conheci Ruby.
A Primeira Impressão: Isso é código?
A primeira vez que li um código Ruby, achei que estava lendo inglês. Algo como:
5.times do
print "Hello, world!"
end
"Como assim? Cadê o for
? Cadê o tipo da variável? Cadê a estrutura toda que me disseram que era essencial pra programar?" – pensei.
Foi amor à primeira vista.
Ruby Fala a Língua da Gente
Ruby é uma linguagem projetada para que o programador se sinta bem escrevendo código. Ao contrário de Java e C#, que foram pensadas para máquinas e grandes times, Ruby parece ter sido criada com carinho, como uma carta para quem ama programar.
Aqui vão alguns exemplos que me marcaram e mostram como Ruby é mais idiomático – e até mais bonito – do que suas contrapartes:
1. Dizer algo X repetir três vezes
Java:
for (int i = 0; i < 3; i++) {
System.out.println("Oi");
}
C#:
for (int i = 0; i < 3; i++) {
Console.WriteLine("Oi");
}
Ruby:
3.times { puts "Oi" }
Simples, direto, quase como falar com o código.
2. Checar se algo está vazio
Java:
if (myList != null && !myList.isEmpty()) {
// faz algo
}
C#
if (myList != null && myList.Count > 0) {
// faz algo
}
Ruby:
unless my_list.empty?
# faz algo
end
Ou, se quiser ser ainda mais direto:
do_something if my_list.any?
3. Manipular coleções com clareza
Java (antes do Java 8):
List<String> upper = new ArrayList<>();
for (String name : names) {
upper.add(name.toUpperCase());
}
Ruby:
upper = names.map(&:upcase)
Mais curto, mais expressivo, e ainda assim legível.
Ruby é Menos Máquina, Mais Humano
O que me encantou em Ruby foi perceber que dava para pensar como um humano e escrever como um humano. E ainda assim ter um código claro, limpo e funcional. Não é só sobre escrever menos – é sobre escrever melhor.
Imagina ser un iniciante e poder entender esses conceitos atraves da simples leitura do código!!!
Quando entramos em POO a coisa fica ainda mais "delicinha"
Suponhamos a classe
class Pessoa
end
Sim, é só isso. Me e se eu quiser atributos que eu possa attribuir valores ou recuperar valores?
class Pessoa
attr_accessor :nome, :sobrenome, :idade
end
Prontinho. Não precisa aqueles montões de "getter" e "setter". Se eu quiser dar um valor para um atributo de uma instancia de pessoa basta...
pessoa = Pessoa.new
pessoa.nome = 'Jão'
E se eu quiser recuperar:
puts "Olá! meu nome é #{pessoa.nome}" #=> "Olá! meu nome é Jão"
Fantasticamente simple e, você deve ter notado: sem ponto e vírgula, uso de parenteses é opcional e a concatenação é simplificada.
Eu podería ficar aqui horas e horas escrevendo eu aconselho você a tentar usar o GPT para pegar algum exercício da faculdade e perguntar para ele como ficaria no jeito ruby de programar.
Conclusão
Ruby me mostrou que programar não precisa ser penoso. Não precisa ser burocrático. Programar pode ser agradável, até divertido. E isso, pra mim, fez toda a diferença.
Se você, como eu, já se perguntou se programar precisava mesmo ser tão cheio de formalidades... talvez Ruby seja a resposta.