Archive for the ‘rubyonrails’ Tag

Rails Rumble: Código e Diversão :)

Nos dias 15, 16 e 17 de Outubro participei do Rails Rumble, um evento mundial de desenvolvimento de software com Ruby on Rails. O objetivo do evento: promover uma competição entre centenas de equipes espalhadas por todo o mundo, quem desenvolve o site mais “legal” utilizando Ruby on Rails, num período de 48 horas corridas!

Eu participei da equipe Cangaceiros, junto com o Cristiano Milfont, Rodrigo Oliveira e Henrique Gogó. Um colega deles teve um problema e não poderia participar, então eu acabei entrando na equipe no lugar deles de última hora. Para ser mais exato, até as 18 horas da sexta-feira, eu não sabia se iria participar ou não do Rumble, que iria começar as 21 horas 🙂

A idéia que eles tiveram foi a construção de uma biblioteca virtual, onde os usuários poderiam subir seus PDFs e  compartilhar com os outros usuários. O resultado pode ser conferido em http://cordel.r10.railsrumble.com 🙂 Claro que não conseguimos implementar tudo o que nós gostariamos, mas no fim eu fiquei contente com o resultado.

A nossa equipe tinha um pequeno problema: eu estava aqui em São Paulo, e eles estava em Fortaleza. A comunicação foi bastante prejudicada pela distância mas no fim conseguimos superar esse problema usando Skype e Twitcam, embora eu tenho certeza que seria muito mais fácil e mais divertido se nós estivessemos numa mesma sala. Acabei aprendendo várias coisas que me foram muito úteis no dia seguinte, pois a minha próxima tarefa no meu projeto atual era criar o ambiente de produção de uma aplicação em Rails. E também nós utilizamos Solr com Sunspot para indexação, ferramentas que eu nunca tinha usado em um projeto em produção.

Conforme foi passando o evento, o cansaço foi dominando, a produtividade, a paciência e a criatividade foram diminuindo, pois eu acabei dormindo muito pouco na madrugada de sábado para domingo. Mas quando fizemos o deploy em produção, nos últimos 30 minutos (usando as mais avançadas técnicas de XGH), fiquei muito contente com o resultado 🙂

Foi muito divertido participar desse tipo de evento. É algo empolgando, por que todos nós estavamos construindo todos aqueles sistemas por diversão. Estavamos trabalhando em algo por que nós gostamos de desenvolver software com Ruby on Rails. Também não estavamos apenas construindo cadastrinhos chatos e relatórios bobos para empresa XPTO, usando uma tecnologia velha definido por um grupo de arquitetura arcaico, estavamos implementando uma idéia nossa, usando as nossas ferramentas preferidas.  Eu pretendo participar todos os anos do Rails Rumble e recomendo muito essa experiência 🙂

Não posso deixar de agradecer a GoNow por abrir gratuitamente seu escritório para várias pessoas de outras empresas, fornecendo toda a infraestrutura necessaria, bem como lanches, pizzas, Red Bulls, bebidas, etc 🙂

Também agradeço aos cangaceiros Cristiano MilfontRodrigo OliveiraHenrique Gogó 🙂 Foi muito legal trabalhar com vocês no Rails Rumble 🙂

Java language end of life (aka. Java as a platform)?

Deve fazer mais um menos uns 5 anos que a maioria de nós ouvimos falar em Ruby on Rails. De lá pra cá, a adoção da linguagem Ruby e do framework Rails subiu de uma forma surpreendente, ajudando a quebrar um pouco a polarização Java<->.Net que tínhamos antes. É claro que Ruby ainda não atingiu a popularidade Java ou de .Net, principalmente aqui no Brasil, mas mesmo assim ajudou a comunidade como um todo a repensar vários aspectos do desenvolvimento de software, principalmente de aplicações web.

Uma das coisas que a revolução do Ruby on Rails fortaleceu é o uso de outras linguagens na Java Virtual Machine. É claro que antes de surgir o Rails já existiam várias iniciativas para rodar outras linguagens dentro da JVM, mas depois de uns anos pra cá esse assunto ficou cada vez mais importante, pois existe muito interesse em rodar aplicações desenvolvidas usando ferramentas produtivas como Ruby on Rails numa plataforma robusta como Java. Hoje tempos diversas engines que permitem rodar muito bem várias linguagens na JVM, como JRuby, Jython, Clojure, Rhino, Groovy, entre outras… Com essa quantidade de linguagens rodando na JVM, já faz alguns anos que se tem falado em Java como plataforma e não como linguagem.

Eu gosto muito dessa idéia, acho que as vantagens dessa abordagem já foram amplamente discutidas, mas resumindo:

  • Java possui uma das mais avançadas máquinas virtuais do mercado. O just-in-time compiler e o garbage collector da JVM, mesmo não sendo perfeitos, são frutos de anos de pesquisa e desenvolvimento, seria muito difícil implementar uma VM igual do zero para outras linguagens.
  • Existe um enorme legado de aplicações desenvolvidas em Java, utilizando Java como plataforma, novas aplicações em outras linguagens podem aproveitar muito do código já existente.
  • Java também possui excelentes servidores web e application servers bem estabelecidos no mercado

Infelizmente, já se passarem alguns anos que esse tipo de abordagem vem sendo discutida, mas não temos tantas empresas adotando Java como linguagem e não como plataforma. Quase todo mundo que desenvolve na plataforma Java usa a própria linguagem Java. Temos sim muitas empresas desenvolvendo novos projetos em Ruby on Rails, mas na maioria dos casos não estão rodando eles em Java. Pelo menos é o que eu tenho visto na nossa comunidade local.

Um dos motivos para isso é a dobradinha Passenger + Nginx (ou mesmo Apache) tem tido muito sucesso para rodar aplicações Rails. As pessoas não precisam recorrer ao JRuby para rodar aplicações Rails num ambiente com uma performance aceitável. O Passenger tem dado conta do recado.

Eu gostaria muito de ver mais empresas adotando Ruby on Rails, acho que poder reaproveitar código já existe e poder rodar numa infra-estrutura (VM + Application Server) já bem estabelecida são dois fatores que podem facilitar a adoção de Ruby on Rails em empresas que utilizam Java, mas não é algo fácil de ser feito. Ruby tem uma sintaxe diferente, um estilo de programação diferente. Leva algum tempo pegar uma equipe que trabalha muito bem com Java e deixar ela produtiva trabalhando com Ruby on Rails.

Recentemente, a ThoughtWorks recomendou que as empresas comecem a avaliar o “Java language end of life”, ou seja, usar outras linguagens na plataforma Java. Quando eu li essa recomendação achei meio precipitado, mas no fim é uma opção tecnicamente viável e pode trazer muitos ganhos de produtividade.

Eu acho que vai demorar muito até a grande maioria das empresas adotarem outras linguagens mais produtivas que Java, mas se você trabalha com Java tem a liberdade de escolher a tecnologia que você vai usar para desenvolver seus aplicativos, já passou da hora de considerar usar outras linguagens que rodam na JVM.

Eventos: Ruby no Mundo Real

Evento Ruby e Rails no mundo Real 2009 organizado pelo Guru-SP

Evento Ruby e Rails no mundo Real 2009 organizado pelo Guru-SP

Dia 4 de abril de 2009 ocorrerá em São Paulo, na FIAP, o evento Ruby e Rails no Mundo Real. O conteúdo técnico do evento está sendo organizado pelo grupo Guru-sp.

O evento com certeza é de interesse para todos os desenvolvedores, inclusive os que desenvolvem em Java, devido a importância que a linguagem Ruby vem adquirindo de uns anos para cá e que hoje é possível utilizar Ruby nas plataformas Java e .Net com projetos como JRuby  (que será apresentado no evento) e IronRuby.

Muito se fala hoje em Java como plataforma e não mais como linguagem. Podemos dizer que a linguagem Java não esta evoluindo na velocidade que a comunidade espera (eu particularmente gostaria muito de ver closures entrando na linguagem) e muitos tem dúvidas se a Sun (que  é a principal mantenedora da linguagem Java) tem condições de continuar evoluindo a linguagem devido a sua delicada situação financeira.

Eu uso muito a linguagem Groovy no meu dia-a-dia e acompanho com muito interesse a impressionante evolução do JRuby. Depois que você se acostuma com a agilidade destas linguagens, fica até chato voltar a usar uma linguagem, digamos, tradicional 🙂

lula_plantando_uma_rvore

Mesmo que você não acredite em outras linguagens na JVM, Ruby e Ruby on Rails tem tido um crescimento muito interessante no mundo inteiro, e inclusive tem gente prevendo um grande crescimento para o Ruby no Brasil.

Enfim, as palestras parecem muito interessantes, os palestrantes são bons, o evento é num final de semana, num local bem acessível em São Paulo e com um custo relativamente baixo. Eu acho que vale a pena dar um pulo no evento 🙂

Rails Rumble 2008

Rails Rumble é uma competição interessante: o pessoal se reune em equipes de 1 a 4 nerdsintegrantes e criam uma aplicação utilizando o consagrado framework Ruby on Rails em um período de 48 horas ininterruptas! Depois as aplicações criadas por essas equipes são submetidas a uma votação com prêmios bem legais.

Segundo o faq da competição, o objetivo do evento é ser uma encubadora para startups. Alguns projetos realmente viraram startups na competição passada, como o site pagestacker, criado por uma equipe de brasileiros.

Esse ano temos algumas equipes brasileiras participando:

http://giwiki.r08.railsrumble.com/ – Um  wiki engine que usa o sistema de versão de controle GIT para armazenar as páginas do wiki.

http://mix4vids.r08.railsrumble.com/ – Uma aplicação que junta 4 vídeos para serem exibidos ao mesmo tempo.

http://rio.r08.railsrumble.com/ – Um “diário” das refeições que você consumiu.

Parabéns para os que tiveram coragem de participar 🙂

edit: atualizando lista de projetos brasileiros na competição 🙂