Aprendendo Ruby

E aia galera, é isso mesmo,  o nome do POST é aprendendo Ruby, as 10 pessoas que leem esse blog sabem que eu trabalho com PHP mas como temos sempre que saber uma segunda linguagem eu acabei escolhendo o Ruby para aprender, isso nós leva a primeira parte desse post.

 

Porque eu escolhi Ruby

 

zelda__the_store_by_xaomi-d5tb0jt

 

Vamos nos atentar ao título, “Porque EU escolhi Ruby” essa é uma opinião minha então sem haterismo aqui no fórum galera, você não precisa concordar ate porque muita gente me pergunta “Porque não aprende Python ao invés de Ruby. Python é mais fácil, mais versátil e etc….”. Vou dar dois motivos (talvez mais). Python está se tornando linguagem padrão para back-end (pelo menos aqui no Rio), hoje o PHP é padrão por isso os devs PHP estão ganhando pouco, todos querem aprender a linguagem que é padrão, ou seja, se hoje um dev PHP Junior ganha R$ 1800,00 amanhã pode ser o dev Python que vai ganhar isso, e o dev Ruby vai ganhar melhor. Mas porque acontece isso? Simples. Demanda de mercado a lei da oferta e da procura, se encontrar um dev Python é mais fácil que encontrar um dev Ruby consequentemente o dev Ruby vai ganhar mais. Vamos ao segundo motivo, Ruby foi criado em 1995 no Japão por um camarada chamado Yukihiro Matsumoto. Ai você vai me perguntar “E oque isso importa” e eu vou te responder, TUDO! Eu gosto do Japão kra, gosto da história gosto da mitologia gosto de tudo, então acabou que pendi para o lado do Ruby, não precisa fazer sentido para você mas acredite, li muitos posts comparando Ruby e Python e não há muitas diferenças, ambas são linguagens de ponta e muito boas. Mas tem mais um motivo que foi oque me fez bater o martelo no Ruby.

Eu acompanho as notícias do mundo da informática, afinal, é minha profissão e meu mundo. Saiu uma matéria sobre internet 3.0 (se você não sabe do que se trata se mate), pode pesquisar sobre, hoje nós estamos na internet 2.0 que consiste neste momento de muita troca de dados entre as pessoas (redes sociais), enfim, a internet 3.0 consiste na evolução dessa troca, hoje o volume de informação nos big datas cresce exponencialmente e vai crescer muito mais devido aos dispositivos inteligentes. Hoje temos smartphones, smartwatches, ar condicionado inteligente, banheira inteligente, casa inteligente e etc… Todos estes dispositivos vão ficar monitorando atividades dos aparelhos e enviando informações em tempo real para as pessoas, ou seja o trafego de dados e demanda de bigdata deve aumentar cerca de 11 vezes dentro dos próximos 5 anos, isso é a internet 3.0. Mas oque diabos isso tem haver com Ruby? Tudo. De acordo com especialistas de dados que deram entrevista para o Olhar Digital Ruby é a linguagem que aguenta melhor essa demanda de dados gigantesca, ou seja uma aplicação Ruby (bem escrita) vai tratar muito melhor uma quantidade gigantesca de dados, essa é a principal característica do Ruby. Não estou dizendo que as outras linguagens não vão fazer bem o trabalho, estou dizendo que de acordo com especialistas Ruby é melhor para essa função.

 

Instalando o Ruby

 

zelda-rupee-engagement-ring-box-300x250

 

Depois dessa enrolação toda vamos a ação, afinal quem quer saber dessas besteiras de motivos, o lance é codar #showmethecodebitch

Vamos trabalhar com a versão que fiz os testes do Ruby, queria adicionar aqui que estou iniciando no Ruby então vamos fazer essa viajem juntos, se alguém ver que estou postando alguma besteira por favor me corrijam, vai me ajudar e ajudar nossos poucos leitores. Vamos utilizar a versão 2.3 do Ruby rodando um server através do Sinatra. Ai você me pergunta “Porque não vai usar o Rails”. Amigo, não exite só Ruby on Rails não kra, Ruby é uma linguagem independente, essa porra não é feijão e arroz não, e por causa desse pensamento que temos um monte de programadores de Cake e que não sabem NADA de PHP. Mas enfim, o Rails levanta um projeto muito grande de Ruby, eu sou adapto de aprender primeiro a linguagem e depois o framework, assim você vai saber oque está fazendo. Segue o comando para isntalar o ruby 2.3


$ sudo apt-get install ruby2.3

 

Depois de executar este comando terá instalando o ruby em seu sistema e poderá usar a chamada ruby direto do terminal, pode testar utilizando o comando abaixo

 

$ ruby -v

 

Este comando vai printar para você algo parecido com (ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]). A partir de agora você já tem o terminal do ruby instalado na sua maquina, utilizando o comando irb você abre o terminal do ruby para digitar os códigos que serão interpretados dentro do terminal mesmo. Vamos fazer alguns testes.

 

$ irb
> puts "Olá, Mundo"
Olá, Mundo
=> nil

 

Na primeira e na segunda linha estão nossos comandos, irb inicia o terminal, puts é o comando ruby para imprimir algo na tela e a string “Olá, Mundo” é oque vai ser impresso. Após executar a segunda linha a terceira e quarta linha aparecerão, são a resposta da execução do comando puts do Ruby. Ou seja, a terceira linha printou a nossa string e a quarta linha printou o nil do Ruby que é como se fosse o valor NULL para outras linguagens, para sair do irb basta digitar quit e dar Enter. Para rodar arquivos que escreveu com ruby, ou seja arquivos .rb pode fazer pelo terminal também, sem usar o irb, é só navegar ate o arquivo e escrever o comando abaixo.

 

$ ruby nomedoarquivo.rb

 

Vai ser printado no terminal a resposta do seu código, assim pode rodar arquivos ou programas. Se conter no arquivo (puts “Olá, Mundo”) vai ser impresso no terminal o mesmo do exemplo com irb.

 

Rodando Ruby no Browser

 

on_ruby-1

 

Para rodar nossos scripts Ruby no navegador precisamos de um server, muitos vão aconselhar o uso do Mongrel ou até mesmo um módulo do apache instalado através do Passenger (uma gem do Ruby) que roda o Ruby. Eu queria algo mais simples, só queria rodar meus aruivos .rb no navegador, então optei pelo Sinatra. Oque é o Sinatra? Simples, de acordo com a Wikipédia Frank Sinatra foi um cantor, ator, e produtor americano, amplamente considerado um dos mais populares e influentes… HAHAHAHAH sacanagem galera só para descontrair. Sinatra é uma gem do Ruby mas Oque é uma gem no Ruby???? Eu ainda estou aprendendo galera mas pelo que eu vi são tipo plugins do Ruby, fazendo uma analogia a PHP, seria como as bibliotecas do PHP, como o CULR. Diferente do PHP podemos baixar as libs ou gems direto do terminal do Linux. Eu li também que o Sinatra é um framework de Ruby mas isso não tem importância agora, diferente do Rails ele não cria 984981981717 de arquivos, estamos usando ele aqui para levantar um localhost de Ruby. Abaixo vou mostrar como instalar o Sinatra.

 

$ sudo gem install sinatra

 

Estamos utilizando o sudo para ter permissão de administrador, assim o Ruby pode escrever novos arquivos com o comando gem. Depois de instalado podemos simplesmente rodar o arquivo Ruby como fizemos no último exemplo, porem temos que ter algumas particularidades escritas no arquivo para puxar as libs nescesarias, segue abaixo um exemplo do conteúdo que seu arquivo .rb deve ter.

 

require "rubygems"
require "sinatra"

set :port, 8080

get "/" do
 @name = 'Seu nome'
 return "Hello, " + @name + ". Esse é seu primeiro Ruby."
end

 

Vamos ver o arquivo linha a linha. A primeira linha puxa as gems do Ruby, como tinha falado anteriormente como se fosse as bibliotecas. A segunda puxa especificamente a gem Sinatra que vamos usar para levantar o localhost, na próxima linha temos essa função set que está setando a porta que queremos que o Ruby rode no localhost, esse comando é similar a algumas configurações do Apache por exemplo, inclusive utilizaremos ela quando formos levantar o server definitivo de Ruby, atenção utilize uma porta vazia. Na linha seguinte já temos nossas instruções ruby, tudo que está dentro desse get vai rodar na raiz, no caso são as próximas duas linhas onde definimos uma variável chamada name que é usada para printar uma frase na linha seguinte. Na última linha fechamos a chave do que iniciamos no get. Rode o comando da primeira linha abaixo e veja no seu localhost:8080 oque vai aparecer.

 

$ ruby nomedoarquivo.rb
== Sinatra (v1.4.7) has taken the stage on 8080 for development with backup from Puma
Puma starting in single mode...
* Version 3.6.2 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:8080
Use Ctrl-C to stop

 

Se você acessar no seu navegador localhost:8080 vai ver a frase (Hello, Seu nome. Esse é seu primeiro Ruby.). ATENÇÃO, se você não chamar a gem Sinatra como mostrado no exemplo de criação do arquivo isso não acontecerá. Esses dados escritos depois da primeira linha que você escreveu são a execução do Sinatra, ele ficará ativo até você apertar Ctrl+C.

 

Bônus de Conteúdo

 

racing-for-rupees

 

Sei que você não aguenta mais mas relaxe esse é o final, somente para algo que deve ter percebido. Quanto eu altero algo no script e dou F5 no navegador o código não roda novamente, oque está acontecendo, vou ter que parar e levantar o Sinatra toda hora no terminal??? Fiquem calmos abiguinhos, vou explicar porque isso está acontecendo porque eu sou chato. Acontece que o Sinatra enviou o arquivo interpretado para o navegador, mas não há um hook (gancho) para que o navegador ache o server, então quando você da F5 ele tenta achar o Sinatra e não consegue, para que funcione temos que montar a resposta ponta a ponta. Meu deus vamos ter que perder três horas escrevendo um maldito .htaccess??? Não não não, isso aqui é Ruby galera, e Ruby é fácil, tudo no Ruby se resolve com gems, mas instale somente aquilo que precisar, na linha abaixo vou instalar uma gem chamada Rerun que vai resolver esse problema.

 

$ sudo gem install rerun
$ rerun "ruby nomedoarquivo.rb"

 

Pronto, depois de baixar o rerun como na primeira linha você pode executar seu arquivo com rerun assim como está na segunda linha, assim toda vez que apertar F5 o navegador vai achar o server e vai atualizar os dados lendo o arquivo novamente, não foi fácil?

 

Conclusão

 

Tomara que tenham gostado desse post e espero que não tenha escrito nenhuma besteira, estou me esforçando para aprender Ruby e tomara que possamos aprender juntos, se escrevi alguma besteira por favor me ajude e corrija deixando um comentário, sua participação é importante para nós.

Qualquer dúvida estamos ai galera, vamos aprender Ruby juntos.

Comentários Facebook

Deixe um comentário

Seu e-mail não será publicado. Campos obrigatórios marcados com *

Você pode usar HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>