Zed is Not Dead

2008 January 01, 17:21 h

English readers, click here

Uau, eu estou honestamente assustado! Acabei de ler este longo artigo de ninguém menos que Zed Shaw – o criador do Mongrel, para quem não sabe, e o número 1 em popularidade no Working with Rails, um pouco acima até do que DHH.

Dois dos comentários que a TechCrunch escolheu são:

Não consigo traduzir isso para português sem perder o impacto! No artigo ele literalmente manda pessoas como Kevin Clark, Dave Thomas, Chad Fowler, Michael Koziarski, o próprio David Hansson e outros lá para aquele lugar! Afirma que é maltratado por eles e que o mercado Rails só tem lhe oferecido trabalhos medíocres. Ele ainda ataca a ThoughtWorks. Temos que admitir, ele tem bons argumentos embora possamos discordar da forma como ele as apresenta.

Uma coisa é verdade: programadores – principalmente os que se tornam famosos – crescem seus egos exponencialmente. Não acredito que o Rails Core Team seja diferente. Não dá para dizer se Zed Shaw tem razão em tudo que diz ou se alguma coisa foi exagerada. Mas não acredito que alguém como ele tenha simplesmente acordado hoje e ficado louco do nada. Se ele está nervoso deve ter boas razões para isso. Vamos ver como a comunidade reage nos próximos dias. -Esperem artigos dos acusados sobre isso e um longo flame war pela frente … ouch, péssima maneira de começar o ano, principamente depois de eu ter justamente postado agora há pouco sobre integração.-

Por outro lado isso não é exclusividade da comunidade Rails. Como eu repito o tempo todo, Ruby on Rails não é uma tecnologia perfeita. Nenhuma é. Seus criadores não são perfeitos, são seres humanos como eu ou você. Num projeto open source é a comunidade que faz a diferença. Poucos podem se dar ao luxo de ser ao mesmo tempo extremamente inteligentes e muito arrogantes como um Linus Torvalds, por exemplo.

Tirem suas próprias conclusões. De qualquer forma, um Zed Shaw ou um Kevin Clark não tornam Ruby e Rails mais ou menos bons. É a comunidade Rails que vai decidir como a coisa vai evoluir. Se o Rails Core Team se tornar insuportável em algum momento da forma como Zed os acusa, e a comunidade ainda achar que a tecnologia Rails vale a pena, sempre temos a última escolha de fazer um fork (toc toc, batendo na madeira).

Update 3/1: O Zed acabou de postar a segunda parte do seu polêmico artigo. Como eu disse antes, não discordo de muitas coisas que ele disse apesar de ainda não concordar com a maneira. Você não pode dizer que é contra a violência batendo no briguento com um porrete. Todos sabemos que às vezes temos razão, gastamos nosso latim, e quase ninguém nos escuta. Isso é enervante, nos deixa possessos. Infelizmente não existe nenhuma receita mágica para lidar com isso.

Essa segunda parte é mais concentrada em evidências e argumentos. Um ponto que eu achei engraçado que poucos discutiram foi sobre a afirmação do Zed na primeira parte, onde ele colou um trecho de chat onde o DHH dizia a ele que precisava dar 400 restarts por dia na sua aplicação Rails antes da ajuda do Zed. Depois disso, o DHH enviou um e-mail ao Zed – que ele colou nessa segunda parte – onde ele clarifica que eram 400 restarts por dia no total de 60 processos, o que dá uma média de 6 a 7 restarts por processo. Bem menos que os 400 iniciais mas ainda assim muita coisa para um dia só. Isso era resultado dos problemas da integração do Ruby/Rails com algumas implementações de FastCGI. Justamente o que o Mongrel veio ajudar a resolver.

Uma boa parte do problema do Zed é diretamente contra Dave Thomas. Novamente, eu não tenho como concordar ou discordar pois não testemunhei os ocorridos, mas recomendo que todos dêem uma lida (ignorando os palavrões, há opiniões do Zed que são relevantes). Para mim faz sentido.

Relacionado a isso, teve um problema que todos devem conhecer. Esse foi um fix derivado de uma longa pesquisa do próprio Zed e de uma pista descoberta por Bradley Taylor. Era um bug na implementação de Threads do Ruby quando se usava qualquer lock diferente de Sync (como Mutex, Monitor, etc). Inclusive, isso não é um bug de Rails, se alguém aqui usa Ruby com threads, deve usar Sync ou terá os problemas de memory leak que o Rails sofreu no começo do Mongrel. É um dos problemas que ele ajudou a resolver e que ele clama que metade do Rails Core, incluindo Chad, Dave e mesmo DHH resolveram ignorar o elefante na sala dizendo que não existia.

Então ele também acusa Dave, Chad de o ameaçar e não deixarem lançar uma solução a este bug de segurança que ficou descoberto até que o importante mas ignorado monkey patching cgi_multipart_eof_fix pudesse ser incorporado ao Mongrel.

Finalmente, ele clama que o livro Programming Ruby de Dave Thomas foi o grande responsável por Ruby ter ficado obscuro de 2001 a 2004. Ele diz que também é um dos motivos de haver uma grande quantidade de programadores medíocres em Ruby porque aprenderam errado pelo livro de Dave. Vou ser sincero quanto a isso: eu nunca havia pensado por esse lado. Não vou concordar mas ele tem bons argumentos quanto ao conteúdo do livro. Confesso que usei o livro de Dave bem no começo como referência mas tudo que aprendi de Ruby foi literalmente lendo o código-fonte do Rails.

Apesar de ter pegado no pé tanto da ThoughtWorks quanto do DHH, pelo menos ele admitiu que o Mingle é um excelente produto (na realidade eu já ouvi justamente o contrário, não sei de quem) e que DHH – apesar de um deslize ou outro – ainda é um grande programador e um bom cara de marketing, no bom sentido. Ele considera DHH o responsável por conseguir o que Dave não conseguiu.

Ele volta a falar sobre “indústria” e nesse ponto eu preciso concordar em número, gênero e grau com ele: muitas pessoas falam de “indústria” com a boca cheia demais. Internet é um negócio mundialmente grande, claro. Mas não é absolutamente nada comparado a qualquer outra indústria “real” como a automobilística, banqueira, militar, cinema, música, editorial, farmacêutica. Como ele diz, até mesmo a indústria de games dá de 10 a zero na “indústria” de desenvolvimento de software e web. E ele está certo. A birra dele é com as startups que acham que podem ser o próximo Google. Nossa indústria é pequena demais para muita arrogância. Isso é uma grande verdade. E aos jovens programadores, sinto muito dizer, eu mesmo já escrevi em um artigo quando eu afirmei que nosso mercado é simplesmente sobre “cadastros e mais cadastros”. Pensando sobre isso, pensei comigo: “quem sou eu para recriminar o Zed sendo que eu mesmo já escrevi algo parecido?”

É um dos motivos porque eu digo sempre que tecnologia não pode ser sobre cisão, sobre divórcio. Nós somos relativamente pequenos frente ao resto do mundo, se continuarmos sendo auto-destrutivos ficaremos apenas menores. Alguém poderia argumentar que todas as indústrias que ele citou acima são permeadas ortogonalmente pela informática. É verdade, mas assim também são as canetas Bic. Não super-estime demais. Henry Ford já fazia carros muito antes dos primeiros computadores de mesa. Rockefeller já era milionário muito antes da Internet. Walt Disney solidificou sua fundação de clássicos muitas décadas antes da Pixar.

Falando dessa forma parece algo desolador e desanimador. Claro, não é bem assim. É outro motivo porque eu também sempre digo que um programador precisa entender da engenharia e técnicas, mas deveria prezar pela arte. Bons programadores são como bons artesãos. Não fazemos nosso ofício pura e simplesmente porque dá dinheiro. Se fosse apenas isso estamos perdendo tempo: deveríamos estar lidando com ações e bolsas. Em vez de discutir Microsoft deveríamos estar discutindo Wall Street.

Esta é uma opinião pessoal minha. Desenvolvimento de software, particularmente desenvolvimento web, para mim, é uma paixão. É uma arte que venho refinando há anos. Minhas ferramentas são as diversas linguagens e plataformas relacionadas. É por isso que não faz sentido aprender apenas a usar um pincel. Saber cozinhar apenas um prato. Também significa que ninguém se torna um Mozart em sua arte apenas com uma certificação. O Zed me ajudou a fechar essa explicação que eu sempre tento descrever.

Dentro dessa jornada onde eu já passei por diversas tecnologia, calhou de Ruby on Rails ter chamado minha atenção o suficiente para eu me virar a ela. Como eu também sempre repito: Ruby e Rails não são perfeitos. Mas me empolga as possibilidades, e pelo jeito também empolga um pouco o Zed já que ele descreve Evans/Rubinius e Charles/JRuby praticamente como “salvadores” do Ruby. E eu concordo. Não é difícil de prever que o futuro do Ruby pode não estar no MRI mas sim na junção dos esforços de Rubinius+JRuby.

Conforme eu disse antes, ele tem problemas com algumas pessoas do Rails Core como Koziarski, mas separou o joio do trigo e admite que não tem problemas com o resto da equipe como como Jamis Buck, Scott Baron, Thomas Fuchs, Rick Olson. Disse que a equipe do Mongrel (que incluí grandes pessoas como Luis Lavena) também é excelente e que Mongrel está em boas mãos.

No fundo, ele passou por algumas frustrações e problemas pessoais. Eu entendo ele porque também já passei por situações similares. Muitos daqui da comunidade Brasil também já passaram. Eu também já desabafei no meu blog – apesar que com um tom bem mais ameno :-)

Eu comecei este post ontem dizendo que estava “assustado” depois de ler a primeira parte do rant de Zed. Mas pensando no que ele disse, realmente, se a comunidade Rails é tão frágil que um único artigo como esse é suficiente para desestabilizá-la, realmente somos muito menores do que imaginávamos e ele está certo. Porém, acredito que não seja esse o caso. Já se passaram mais de 48 horas desde a bomba inicial e eu ainda não vi nenhum World Trade Center desabando. Acho que estamos bem.

Também disse a alguém o trocadilho infame com o que Bruce Willis disse em Pulp Fiction: “Zed is dead, baby, Zed is dead”. Não é o caso. Ele com certeza fechou algumas portas, mas fez isso de maneira consciente. Não gosto de dizer a alguém o que fazer, acho que todos devem fazer o que acham certo. Ele acha que o que ele fez está certo. Sem problemas, posso viver com isso. Desejo a ele muita sorte nas próximas empreitadas.

Espero que isso feche este episódio e que sirva como reflexão a todos nós.

tags: obsolete zed

Comments

comentários deste blog disponibilizados por Disqus