RailsConf 2008

June 13, 2008

Finalmente, com muito atraso, vou falar um pouco do que vi na RailsConf 2008.

Eu perdi o primeiro dia da RailsConf pois estava no Google I/O. Então, para mim, o evento começou na sexta-feira com o keynote do Joel Spolsky da Fog Creek Software. Foi muito bom… o cara é muito carismático.

O keynote do David Heinemeier Hansson também foi um ponto alto do evento. Uma das coisas interessantes que ele falou foi sobre o fato de Rails ser opinionated. Ele mencionou que normalmente as pessoas consideram o fato de ter escolhas como sendo algo positivo. Mas na hora de efetivamente decidir por uma opção elas ficam perdidas e gostam da ajuda de alguém para decidir isso. O Rails adota essa filosofia: já vem com as escolhas feitas… mas sempre é possível mudar o default. O engraçado é que após esse keynote, nós passamos exatamente por essa situação no jantar. Fomos num lugar que oferecia mais de 150 rótulos de cerveja. Esse foi exatamente o chamariz para irmos lá. Mas na hora de escolher uma, eu e outros ficamos perdidos. Eu acabei pedindo ajuda da garçonete para escolher para mim!

Outro keynote que não posso deixar de mencionar foi o do Kent Beck. Ele é o criador do eXtreme Programming (XP). Foi com o livro dele, eXtreme Programing eXplained: Embrace Change, 1ª edição publicado em 1999, que eu comecei a me interessar e estudar métodos ágeis. Foi muito bom a oportunidade de assistí-lo ao vivo.

O foco (informal) da conferência foi escalabilidade. Praticamente todas as sessões que eu assisti (mesmo as que não tinham isso como tema) falavam sobre escalabilidade de alguma forma, nem que fosse uma piada ou um comentário. O consenso geral (e eu concordo) é que não é uma linguagem (Ruby) ou framework (Rails) que escala ou não. O que escala é a arquitetura da aplicação. O problema é que as pessoas muitas vezes não conhecem bem as ferramentas. Java EE pode não escalar se for mal utilizado. Diversas sessões falavam de sites com muitos acessos e como funcionava a arquitetura deles. Não há nenhum segredo ou truque. É pura aplicação de conhecimento técnico para identificar e resolver gargalos.

Um dos pontos altos foi a apresentação do MagLev. MagLev é uma máquina virtual para Ruby baseada na VM GemStone/S, que roda Smalltalk. Como eles disseram, Ruby e Smalltalk são muito parecidas. Assim, eles aproveitaram o know-how e tecnologia de décadas de desenvolvimento do GemStone/S para fazer uma VM Ruby. Com apenas alguns meses de desenvolvimento, o MagLev já apresenta desempenho fantástico. Alguns benchmarks são 100x mais rápidos do que MRI. A tecnologia toda envolve as VMs, caches em memória (um pra cada VM) e um repositório de objetos no backend. Assim, é possível fazer o que eles mostraram na apresentação: uma VM é iniciada em um terminal; nessa VM instancia-se um objeto; em outro terminal, inicia-se uma segunda VM; o objeto instanciado na primeira VM está disponível na segunda VM, de forma totalmente transparente. E isso tudo com completo controle transacional! O repositório comporta trilhões de objetos e até 17 petabytes de dados! O Akita fala sobre o MagLev em mais detalhes no seu blog.

Outra apresentação de impacto foi a do Phusion Passenger. O Passenger é um módulo do Apache para Ruby on Rails. Na apresentação eles explicaram que o objetivo era facilidade de uso. Ainda não tive oportunidade de testar, mas parece que eles conseguiram. O legal é que a performance não ficou comprometida. Está compatível com as alternativas existentes. Tá aí um importante passo para aumentar a adoção de Ruby on Rails.

A apresentação do Story Runner do RSpec do David Chelimsky também foi muito boa. Para mim, o melhor de Ruby/Rails é o RSpec! O Story Runner é a parte do RSpec para testes de aceitação. Com ele é possível literalmente criar histórias (user stories) executáveis. Dessa forma é simples assegurar quando determinada história está pronta (done) e atende ao que o usuário deseja.

Vin�cius Teles, Jim Weirich, Guilherme Cirne e Pedro TeixeiraDialogue Concerning the Two Chief Modeling Systems foi diferente do que se está acostumado em termos de apresentação e também foi muito boa. Utilizando o formato de uma peça de teatro, os três apresentadores (atores!) discutiam sobre qual a melhor forma de modelar sistemas: uma centrada em dados e o schema do banco e outra centrada em objetos e suas interações. No final, a conclusão é de que não se deve ser extremista em favor de uma ou outra forma; deve-se buscar encontrar o meio termo ideal. Essa conclusão é diferente do que está escrito no link anterior sobre a apresentação. Eles explicaram que inicialmente a idéia era mostrar que a forma OO é superior, mas ao preparar o material eles mudaram suas conclusões.

Galera do Brasil (incluindo o Carl!)Além das palestras, foi muito bom conhecer algumas pessoas que estavam presentes no evento. Eram muitos brasileiros. Tive a oportunidade de conhecer melhor e trocar várias idéias com o Vinícius Manhães Teles, o Fábio Akita e o Carl Youngblood, um americano que fala português melhor que muito brasileiro!!! Foi uma excelente experiência!


“Google I/O 2008” e “RailsConf 2008”

May 22, 2008

Na próxima semana estarei viajando novamente. Dessa vez vou para os EUA para dois eventos. O primeiro é o Google I/O que acontece nos dias 28 e 29/05 em São Francisco. O segundo é o RailsConf, que ocorre do dia 29/05 ao dia 01/06 em Portland, mas eu só estarei lá a partir do dia 30/05.

Como os dois eventos têm muitas sessões interessantes em paralelo, o difícil vai ser escolher o que assistir! Depois conto o que vi por lá!