Skip to content

Instantly share code, notes, and snippets.

@kelvinst
Last active August 29, 2015 14:09
Show Gist options
  • Save kelvinst/7a0fe62eaf69943072fa to your computer and use it in GitHub Desktop.
Save kelvinst/7a0fe62eaf69943072fa to your computer and use it in GitHub Desktop.
Por que ruby é tão legal?

Por que ruby é tão legal?

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. 😁

1. É divertido!

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!

2. É simples

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.

3. O ecossistema é lindo

"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.

4. A comunidade é engajada

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.

5. Ele tem personalidade

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.

Conclusão

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. 😀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment