Um tempo atrás, eu estava nessa busca interminável, e decidi então que eu iria deixar a procrastinação de lado e aprender uma linguagem alto nível de uma vez!
Então, pesquisando um pouco com os amigos, surgiu as seguintes sugestões: Ruby e Python. Pensei: "Pronto, peço uma ajuda pra decidir, e eles me botam mais uma decisão pra mim fazer".
Como eu estava procrastinando muito (e tenho medo de cobras 😨), resolvi apostar no ruby. E desde então o ruby tem lugar garantido no meu coração. ❤️
Gostaria de compartilhar quais coisas no ruby que são mais apaixonantes na minha opinião. Tem muitas, pode apostar, mas vou elencar o top 5 aqui pra vocês, senão nunca termino o post. 😁
Nada melhor do que uma piadinha durante o dia de trabalho não é? Descontrair o ambiente, quebrar o gelo...
Então... Ruby foi uma linguagem feita pensando no programador, e não no usuário! Foi feita para ser fácil e diverido de você trabalhar, e não rápida para melhorar experiência de usuário.
Um exemplo disso? Olha só o nome do método que normalmente as pessoas chamam de trim
em outras linguagens: strip
. 😀
Brincadeira, agora um exemplo sério: em ruby temos um termo chamado Syntax Sugar, que é usado pra definir certas mudanças feitas na sintaxe para deixar mais fácil de programar, mais flúido.
Exemplos de syntax sugar:
# isso é uma chamada de método:
puts('oi')
# não precisar usar parênteses nos métodos é um syntax sugar
puts 'oi'
# você pode criar métodos ? ou ! no final
# para anotar métodos query e dangerous
if obj.can_destroy?
obj.destroy!
end
# para métodos "setter", você pode criar ele com um = no final
class Animal
def name=(new_value)
@name = new_value
end
end
# e depois para usar, você usa como uma propriedade!
animal.name = 'Cacatua'
PS.: Não ter que usar ;
no final de linhas pode parecer bobo, mas sério, faz a diferença!
Sabe quando você não sabe direito como algo funciona, só bem o básico, e faz aquele teste "no chute"? Então, no ruby você acerta o chute grande parte das vezes.
As coisas fazem sentido! Isso evita um monte de dor de cabeça procurando em documentação como funciona e por aí vai.
Uma característica em especial do ruby deixa isso muito mais claro: tudo é objeto! Até valores primitivos são objetos. Olha só:
# um número
4
# um número convertido pra string
4.to_s
# fazer print de 'oi' 4 vezes
4.times { puts 'oi' }
# retornar uma string repetida 4 vezes
'ha' * 4
# como fazer um range de 2 a 8
2..8
# como fazer print deles um a um
(2..8).each { |i| puts i }
Isto deixa o conceito em si do ruby muito simples, mais fácil de entender, e permite fazer coisas inacreditávelmente complexas com códigos inacreditavelmente simples.
"Uma linguagem por si só não é nada se ela não tiver uma plataforma boa acompanhando". Pufff, bullshit. Nunca concordei com esse tipo de frase totalmente, e até acho que o ruby não iria deixar de ser maravilhoso sem tudo que permeia ele. Mas, no fim das contas, tudo que permeia ele acaba deixando ele ainda mais interessante.
Desde a estrutura de gems que foi adotada pela comunidade, e seu controle de dependências com o Bundler, até os frameworks e libs que foram (e continuam) sendo criadas. Tudo deixa o ruby mais apetitoso aos olhos de um desenvolvedor.
Um exemplo de um framework é só o mais conhecido: o Rails. Sabe a filosofia do ruby de coisas simples, matadoras e de certa forma divertidas? O Rails segue essa mesma linha e fica muito fácil de você desenvolver um aplicação web do 0 em poucas horas.
Quer um exemplo? É só ver a maravilha que o nosso amigo @raphael.costa fez no projeto kanbator em menos de 48 horas!!
Outra coisa que permeia o mundo ruby em geral são as ferramentas mais utilizadas por rubeiros. Em geral, a comunidade é muito crítica com as ferramentas que usam, e vivem inventando coisas para facilitar o seu dia-a-dia.
Bem, pegando carona com o item anterior: a filosofia scratching your own itch é muito bem aplicada por rubeiros e o melhor é que sempre que um rubeiro "coça sua coceira" ele tem a mania de fazer um "coçador" open-source. O que beneficia muito todos os rubeiros.
De certa forma esse item se relaciona com o item anterior, pois com uma comunidade que contribui, o ecossistema acaba sendo "bem cuidado" e sempre chega coisa nova e mais interessante! O que acaba gerando mais gente interessada em contribuir.
Percebeu o ciclo? Tem tudo pra dar muito certo por muito tempo deste jeito.
Esse item deixei por último porque é muito mais uma opinião própria. Mas pra mim, essa é umas das coisas que foi decisiva na minha caminhada com ruby.
Estive pensando um tempo atrás como que o ruby me encantou tanto e acabei chegando a esta conclusão: "Ruby não é só uma linguagem, é uma filosofia de vida!". Tudo que permeia o ruby tem um "feeling", tem uma magia, e você entende a magia e quer fazer igual.
Usando ruby, e frameworks como Rails, você percebe que tem gente como você por trás dele. Gente que gosta de programar e leva muito a sério isso, mas que sabe que "levar a sério" algo é diferente de este algo necessariamente "ser sério".
E isso é emocionante, faz você querer cada vez mais participar disso tudo, te deixa empolgado o suficiente para não querer sair mais do meio deles. Eu sei que parece apelo emocional (e é), mas pra mim isso é determinante na maioria das coisas que eu uso.
Eu elenquei esses 5 pontos porque acredito que eles são pontos básicos do ruby que fazem ele ser maravilhoso. E como podem notar, o que na minha opinião deixa o ruby muito bom não é nem tanto o verdadeiro "poder" da linguagem (que no ruby não é pouco, pode acreditar), mas sim toda a comunidade e o pensamento em comum por trás dela.
Se ruby tem seus defeitos? Claro que tem, e tem uns bem chatos. Mas vários deles estão sendo resolvidos aos poucos (a GC por exemplo vem sendo melhorado exponencialmente), e outros aprendemos a conviver, pois não dá pra ter o melhor de dois mundos é claro.
Enfim. Se você estiver na procura da linguagem dos seus sonhos, dê uma olhada em ruby, você não vai se arrepender. 😀