Fabio Akita apresenta sua visão do mundo Ruby na Campus Party 2011

O maior evento geek da América Latina terminou na semana passada com uma bateria de aproximadamente 500 horas de atividades distribuídas em apenas 6 dias. A Gonow esteve presente na Campus Party 2011, com a palestra “Uma Visão do Mundo Ruby”, ministrada por Fabio Akita, nosso gerente de projetos Ruby on Rails e principal evangelista da tecnologia no mercado web brasileiro.

Akita deu dicas preciosas para quem está iniciando no universo RoR, que você acompanha nos tópicos abaixo:

Como começou o Ruby on Rails

O Ruby on Rails é um framework de desenvolvimento de código aberto escrito na linguagem de programação Ruby. O projeto RoR começou em 2004 com um grupo de profissionais que se uniram para criar o framework de desenvolvimento web Ruby on Rails de forma colaborativa. Desde então, a comunidade Ruby tem disponibilizado diversos sites, ferramentas e livros, sendo que o principal guia é o RailsGuides, referência para quem quer aprender do zero, da instalação ao início de um projeto e assim por diante.

Referências:

Rails Contributors (site que mostra todos os colaboradores de Rails)

Is it Rails? (para descobrir se um site foi feito em Rails)

Case Abril Alexandria, maior case de RoR do Brasil

Groupon.com (Site de compra coletiva feito em Rails)

Boo-box (Ícone do mundo das start-ups, que também usa tecnologias Ruby desde o lançamento)

Bibliotecas RubyGems

Cada plataforma possui uma biblioteca específica, como acontece por exemplo no mundo Java e no mundo Linux. No caso dos programadores Ruby, hoje eles contam com as bibliotecas RubyGems. O Rails, por exemplo, pode ser instalado com “gem install rails”, sendo que para começar um projeto basta usar o “railsnewnomedoaplicativo” para gerar toda a estrutura básica de projeto. É importante saber que essa estrutura é mais ou menos a mesma desde 2004 e o principal: contempla todas as ferramentas básicas que um programador precisa para desenvolver uma aplicação web completa.

As RubyGems vêm por exemplo com templates ERB, muito parecidos com PHP, com JSP, onde existe HTML e um pouco de código no meio, sendo possível lidar com diretamente com CSS e com Javascript. Elas também vêm com os pacotes Prototype, Scriptaculous e HTTP Authentication. Em cima disso criou-se todo um ecossistema conforme Akita explica em mais detalhes nos itens abaixo.

Ruby versus Rails e o RVM

A primeira coisa para quem trabalha especificamente com Rails é que hoje em dia irá mexer provavelmente com a versão 3.0, que saiu recentemente, não tem nem 6 meses ainda, e com Ruby 1.9.2, que é versão mais recente da linguagem Ruby. Porém, quem está no mercado há algum tempo já desenvolveu também em aplicações Rails 2.3, que é a versão anterior, com o Ruby 1.8.7, ou então, mais antigo ainda, algo como 2 ou 3 anos atrás, era utilizado o Rails 1.2 com Ruby 1.8.6.

E se você tem na sua máquina de desenvolvimento apenas uma das versões Ruby ou só um conjunto de bibliotecas, poderá correr o risco de “quebrar” seu código quando atualizar uma das bibliotecas. Mas para resolver essa questão o mundo Ruby, atualmente, tanto para ambiente de servidor como para ambiente de desenvolvimento, criou uma ferramenta chamada RVM.

O RVM cria ambientes isolados de Ruby e Bibliotecas onde é possível isolar completamente uma aplicação e rodá-las de forma independente sem que uma aplicação quebre a outra. “Essa é a primeira grande dica para quem for instalar Ruby na máquina, tem que conhecer o RVM”, enfatiza Akita. O RVM, no mundo Linux, você vai instalar com o script, e a partir daí você pode instalar quaisquer versões de Ruby que quiser como, por exemplo, o JRuby. Ao instalar ambos, você pode trocar de Rubys dinamicamente, e o Ruby que vai estar padrão para será o que você escolher por último.

Já o mundo Windows, por outro lado, sempre foi negligenciado pela comunidade Ruby porque a maioria veio do mundo Linux ou, no caso do pessoal de Rails, do mundo Mac. Então é sempre ambiente Unix, ambiente Posix e o mundo Windows sempre teve que “penar” um pouco mais.

Agora, finalmente, a comunidade começa a criar ferramentas mais apropriadas para tornar menos doloroso desenvolver Ruby no mundo Windows. Existem duas formas de fazer isso hoje: uma é usar um instalador do próprio Ruby, que é estável, atualizado, e tem as últimas versões, que funcionam razoavelmente bem. E tem também a outra versão, um “clone” chamado JRuby, que é um Ruby que roda em máquinas Java. No mundo Windows o Java funciona muito bem, e por consequência o mundo Ruby funciona muito bem no JRuby também. Essas são excelentes alternativas que vem sendo exploradas hoje em dia.

Ferramentas

No mundo Mac, por exemplo, existe o TextMate, que é um editor de texto, o RubyMine, o NetBeans IDE 6.9, que agora é da Oracle e suporta Java e diversas linguagens, incluindo o próprio Ruby e Ruby on Rails também. O que o Akita recomenda, no entanto, é o Vim 7.3, que possui uma série de pacotes e é bem prático de usar. Tem também o Redcar, que parece muito com o TextMate de Mac, só que é desenvolvido em cima de JRuby. Então ele é Java, e sendo Java roda em Linux, Windows, Mac, tudo com as mesmas funcionalidades.

Agora, falando em “Gems”, existe um site chamado RubyGems.org. Esse site é novo, foi reescrito no ano passado, e facilitou o processo de qualquer pessoa que deseje publicar uma biblioteca para disponibilizar ao mundo Ruby, sem burocracias ou maiores problemas: você simplesmente abre uma conta e faz um comando chamado “gem push” e ele empurra sua “Gem” para sua conta. O RubyGems.org já está disponível para qualquer um poder instalar via “Gem Install”, e é fricção zero na hora de disponibilizar código. “Esse aliás é um dos fatores que explica a explosão de opções que existem hoje no mundo Ruby e no mundo Rails”, diz Akita. O RubyGems mantém perfis de cada projeto com o comando que instala, com a documentação que possui, todas as versões e todas as dependências, quem são os autores, aonde encontrar o código-fonte… enfim, é um grande repositório de todas as bibliotecas usadas no mundo Ruby.

E uma notícia recente, que saiu em dezembro, é que o RubyGems estava próximo de ultrapassar o CPAN, o repositório do mundo Perl, que existe há mais de uma década e ambos estavam perto de chegar às 19 mil bibliotecas. É claro que o mundo Perl está bem mais maduro porque existe há mais tempo, mas o mundo Ruby tem evoluído muito rápido. Tudo aquilo que não existia de opção tempos atrás está sendo completado com muita velocidade, então hoje é difícil procurar uma biblioteca e não encontrá-la para fazer alguma coisa de que o programador necessite. Assim, no RubyGems.org é possível encontrar tudo o que precisa. E Gems são bibliotecas que tem versões e tem dependências, sendo que múltiplas versões e múltiplas dependências dentro de um projeto cai na teia de gerenciar bibliotecas na máquina de desenvolvimento, na máquina de produção, na máquina do outro desenvolvedor etc.

Para resolver esse problema, também junto com Rails 3, saiu um projeto chamado Bundler. O Bundler é um sistema muito simples onde é possível listar o que é necessário na sua aplicação e com um comando “bundle install” em qualquer máquina que estiver ele vai instalar da internet e configurar todo o conjunto de bibliotecas que você precisa para fazer aquela aplicação rodar igualmente em qualquer máquina ou em qualquer ambiente que estiver. “A gente amadureceu bastante o processo de gerenciar uma aplicação em desenvolvimento de aplicação Rails e colocar isso em produção de maneira robusta e previsível”, afirma Fábio Akita.

Assista também aos vídeos das apresentações de Fabio Akita na Campus Party 2011:

Tags:, , , ,

Categorias:

Gonow

O blog Gonow Tecnologia é voltado para publicação de notícias sobre eventos e temas relacionados ao mercado de Tecnologia de Informação e Comunicação (TIC), Design e User Experience (UX), além de rico conteúdo técnico - incluindo ví­deos na íntegra de palestras sobre os assuntos divulgados - e referências sobre as mais diversas linguagens de programação, frameworks e plataformas de desenvolvimento.

Veja todos os posts de "Gonow"

Uma resposta para Fabio Akita apresenta sua visão do mundo Ruby na Campus Party 2011

  1. […] This post was mentioned on Twitter by Luiz Menezes and Renato Zannon, Gonow. Gonow said: Fabio Akita apresenta sua visão do mundo Ruby na #cpbr4: http://tinyurl.com/6jepguq […]