Conversando com David Black

2007 May 11, 21:19 h

English readers, click here

Como reportei no meu último post, em 24 de Abril tive a oportunidade de entrevistar duas grandes celebridades do mundo Ruby: Chad Fowler e David Black. Eu adoro conversar com pessoas experientes porque eu aprendo muito.

David Black foi um grande convidado, nós tivemos uma ótima conversa onde eu empurrei um pouco mais do assunto que gosto de discutir: carreira de programadores. David é um dos fundadores da Ruby Central e ele tem sua própria empresa chamada Ruby Power and Light, que oferece treinamento e serviços de consultoria. Ele também é o autor do excelente livro Ruby for Rails , da Manning.

AkitaOnRails: Mais uma vez, gostaria de começar com as perguntas de sempre de toda entrevista: como você começou na computação? O que o prendeu na programação? É curioso porque eu soube que Geoffrey Grosenbach se formou em filosofia e Chad era um músico!

David: Eu sou músico também (toco violoncelo). Eu me formei em História da Arte e Alemão, e um Ph.D. em Estudos de Cinema, já sobre como entrei em programação …

Foi quando eu tinha 13 anos (isso em 1972). Minha escola tinha um PDP-8, e a universidade onde meus pais lecionavam tinha um PDP-10 que eles me deixavam usar. Eu era totalmente obcecado por ele. Então parei por alguns anos … e depois quando consegui meu primeiro PC, voltei a programar (lá por 1990). Comecei usando unix em 1990, e linux em 1993.

AkitaOnRails: Agora, isso é interessante, eu perguntei a mesma coisa ao Chad inferindo que ele se interessou em programação lá pela era do PDP-10. Acho que a barba me enganou :-)

David: É, não sei nem se ele era nascido quando eu comecei a programar.

AkitaOnRails: Eu não era, nasci em 77. E na época que me interessei por computadores, o Macintosh original tinha acabado de ser lançado. Eu adoro ser jovem nesta era mas eu sempre quis mexer com PDPs, cartões perfurados. Eu adoro ‘arqueologia de tecnologia’.

David: Eu ainda tenho fitas de papel no porão.

AkitaOnRails: Estou assumindo que você, Chad, Dave Thomas são amigos próximos. São? Ou vocês apenas trabalham juntos organizando as conferências na Ruby Central? Entendo que começaram a Ruby Central lá para 2001? Ouvi dizer que herdaram isso. Vocês se conheceram nessa época ou já se conheciam de longa data?

David: Eu conheci ambos (online) por volta de 2000. Eu não os conhecia antes. O que aconteceu com a conferência de 2001 foi assim: havia um cara chamado Guy Hurst que veio com a idéia e fez a maior parte da organização do evento. Mas ele não pôde continuar (várias coisas relacionadas a trabalho tomaram precedência).

Mas Dave não queria que ele fosse cancelado porque seria a o primeiro evento de Ruby e fazer acontecer realmente era importante. Porém ele não tinha muito tempo para isso, então pediu a mim e ao Chad para assumir e acompanhar até o final, que foi o que fizemos.

Então decidimos que deveríamos ter uma organização-pai para conferências futuras. Para a primeira, apenas depositamos o dinheiro na minha conta bancária e eu mantive controle disso (separadamente!). Não era uma jeito muito escalável para lidar com as finanças então criamos a Ruby Central em 2002.

AkitaOnRails: Sim, Chad mencionou isso. Eu já sabia alguma coisa (é meio que uma lenda agora). Mas vocês se encontram? Trabalham juntos? Por alguma razão eu vejo vocês 3 como os “Fundadores Pais” do Ruby fora do Japão.

David: Somos todos amigos. Chad trabalha mais próximo do Dave do que eu porque ele fez livros para a Pragmatic Bookshelf e ensinou no Pragmatic Studio. Chad e eu nos envolvemos em muitas colaborações – Ruby Central (o terceiro diretor agora é o Rich Kilmer, aliás), vários websites, etc.

AkitaOnRails: Como algumas pessoas, ouvi falar sobre Ruby na mesma época que comecei a experimentar Python e Zope, que foi por volta de 2001. Mas tenho que confessar que apenas me interessei por Ruby depois que Rails foi lançado. Você está com Ruby desde o começo de sua história na América. Já ouvi falar da sua história de “por acidente” e achei interessante, por favor nos conte sobre isso.

David: Foi, eu acho, começo de novembro de 2000, então o Pickaxe tinha saído há uma semana ou duas. Eu estava na livraria Borders, perto de casa, dando uma olhada em livros de computador. Lá estava esse pequeno livro chamado Programming Ruby. Ele me deixou curioso, então puxei da estante. Foi amor à primeira vista. Eu acho que não larguei um instante até chegar ao caixa. Ruby imediatamente parecia ser exatamente o que eu queria, mesmo sem saber que queria e aqui estou, 6 anos e meio depois.

AkitaOnRails: É isso que me diverte. É como procurar por uma boa garrafa de vinho, uma grande peça de arte. Um novato não consegue apenas entrar numa loja e avaliar por instinto apenas, sem mais conhecimento. O que você acha que tinha na época que o fez “se apaixonar” por Ruby?

David: Não sei. Não sei se dá para explicar amor. Acho que eu estava me cansando de Perl … e Python não me atraía muito mas não antecipei que encontraria Ruby – foi uma prazerosa surpresa.

AkitaOnRails: Sim, esse é meu ponto: você era experiente em outras coisas, o que o fez “sentir” algo por Ruby. Muitos jovens programadores que conheci não conseguem entender isso. Muitos deles acham que precisam aprender apenas uma única linguagem. Você encontra esse tipo de programador por aí?

David: Pergunta interessante. Acho que a maioria dos programadores que conheci sabem mais do que uma linguagem – porque muitas estão apenas começando com Ruby, e a maioria já programou antes. Realmente acho que é muito ruim que as pessoas achem que para cada linguagem que adoram, você tem que odiar dez. Em anos recentes, eu provavelmente me tornei muito especializado. Ruby me deu tanto para fazer!

AkitaOnRails: Acho que você é mais famoso agora por causa do seu livro Ruby for Rails. Eu gosto do título porque ele sublinha o ponto que para se dar bem como desenvolvedor Rails, um conhecimento mais forte de Ruby pode ser crítico. Você pensa assim?

David: Sim, definitivamente eu escrevi o livro porque comecei a ver pessoas perguntando coisas como, “Eu tenho que aprender esse tal de ‘Ruby’ para fazer Rails?” Isso me lembrou de toda confusão sobre Perl e CGI. As pessoas pensando que Perl e CGI eram sinônimos. Eu as queria fazer entender exatamente como Ruby e Rails se relacionam. E para entender que quando desenvolve aplicações Rails, você está escrevendo programas Ruby. Então não tem sentido para mim quando as pessoas dizem que você deve ‘começar com Rails’, como se desenvolvimento de Rails pudesse ser conduzido sem Ruby. Claro você consegue terminar uma aplicação Rails apenas ‘cortando-e-colando’ a partir de outras, mas isso não é desenvolvimento.

AkitaOnRails: Sim, eu vejo a mesma coisa aqui, e de fato vejo muitas pessoas escrevendo aplicações Rails sem conhecer coisas básicas como para quê servem fechamentos.

David: Mesmo que nem todas as técnicas Ruby sejam usadas em todo programa Rails, quanto mais Ruby souber mais opções terá e acho que as pessoas se interessam em Ruby propriamente dito, mesmo que aprendem sobre ele primeiro do Rails.

AkitaOnRails: Eu li algum lugar que o DHH disse que você foi um importante mentor para ele, no começo das suas idéias sobre Rails. Então, se DHH é o pai do Rails, você seria o avô? Como acha que o teria influenciado? Como era sua relação com DHH?

David: Eu não acho que o influenciei antes do Rails. Definitivamente não fui tanta influência para Rails. Você já falou com Hal Fulton? Acho que lembro de DHH ter dado crédito ao The Ruby way (o livro do Hal) por ter sido uma grande influência.

AkitaOnRails: Quem é ele?

David: Ah ha! Hal é um dos grandes Rubystas e um grande autor de Ruby.

AkitaOnRails: Hm, erro meu. Eu deveria saber sobre ele.

David: Vê, ele não faz Rails, por isso não é tão conhecido pela geração mais jovem como deveria. Ele estava trabalhando no ‘The Ruby Way’ na época que descobri Ruby, eu acho (ou próximo disso).

AkitaOnRails: Você tem razão. Eu conheço o livro ‘Ruby Way’, mas está na minha fila de livros-a-ler ainda.

Ah ha, acabei de encontrar o prefácio para seu livro, do DHH: “Enquanto eu estava aprendendo a linguagem, eu normalmente consultava o mailing list Ruby-talk. Uma voz em particular parecia conhecer Ruby bem e parecia ter a ambição assim como a habilidade de ajudar os outros a entender mais. Essa voz pertencia a David A. Black, o autor deste livro.”

David: Hmmm, talvez eu o influenciei mas não me colocaria como ancestral direto do Rails.

AkitaOnRails: Haha, entendo. E você dirige uma empresa chamada Ruby Power and Light. Por favor, nos fale sobre ela. Entendo que é uma empresa muito recente (2006) e que você lecionava antes disso. O que o fez mudar de carreira? Você parece ser muito bom em ensinar, pelo que ouvi.

David: Eu lecionava no Departamento de Comunicação na Universidade Seton Hall, por 13 anos. Foi uma grande carreira por muitos motivos – estou muito feliz de tê-la seguido – mas as coisas mudaram. Ruby começou a tomar conta da minha vida!

O que aconteceu foi o seguinte: no outono de 2005, eu começando um sabbatical (um intervalo longo, algumas instituições oferecem esse tipo de férias para pessoas com longa carreira). Nessa época, estava trabalhando no ‘Ruby for Rails’, e comecei a me envolver mais e mais em outros aspectos do Ruby. Então, em vez de pegar o sabbatical, eu me demiti. Fazia sentido, meus interesses mudaram, e a época era apropriada para tentar alguma coisa nova. Em minha nova carreira, eu leciono muitos treinamentos – então minhas habilidades de ensino ainda são bem utilizadas.

AkitaOnRails: Mas sua empresa é uma consultoria? Serviços de treinamento? Desenvolvimento propriamente dito? Qual é seu principal ramo de atividade?

David: É treinamento e consultoria – e algumas vezes uma mistura, quando uma equipe de desenvolvimento quer aprender Ruby on Rails e também precisa de ajuda para começar em um projeto específico. E eu também faço treinamentos através de sub-contratação com empresas de ensino, assim como através de minha própria empresa.

AkitaOnRails: Eu vejo muitos produtos de startups baseados em Rails sendo lançados, como Twitter. Parece-me óbvio que o Rails é adequado para o tipo de desenvolvimento rápido que esse tipo de negócio exige. Mas você vê grandes empresas tradicionais vendo as vantagens do Rals? Como um consultor você faz negócios relacionados a Ruby ou Rails para esse tipo de empresa?

David: Eu fiz treinamentos e consultoria para algumas grandes empresas, embora seja mais porque eles querem desenvolver ferramentas para uso interno, não necessariamente aplicações web abertas ao público. É difícil dizer exatamente que tipo de empresa terminará abraçando Rails. Suspeito que muitas não vão – mas muitas vão. Acho que é uma previsão segura.

AkitaOnRails: E como era a carreira de Ruby antes do Rails? Era uma solução de nicho ou muitas empresas já usavam?

David: Muitas pessoas usavam para muitas coisas, mas definitivamente não era grande fora do Japão. Era significante, e crescente, mas ainda relativamente pequeno. RubyConf 2004 tinha cerca de 65 pessoas … e a RubyConf 2005 tinha 200. Isso lhe dá uma idéia, mas o Pickaxe, em 2000, foi certamente uma grande força para Ruby.

AkitaOnRails: Eu questionei Chad sobre isso, mas algumas pessoas vêem Ruby 2.0 quase como ‘vaporware’, no mesmo nível do Perl 6. Por outro lado, por exemplo, vemos desenvolvimentos rápidos no lado do JRuby. Você acha que Ruby está andando mais devagar do que poderia? (desculpe Koichi) Ou o Matz apenas está sendo cuidadoso e verdadeiro na sua direção original? O que você vê no futuro da plataforma?

David: Não acho que seja vaporware – é apenas um grande projeto, e eles estão sendo cuidadosos. O JRuby tem a Sun por trás, claro, então está recebendo uma turbinada.

É impossível de prever, claro, mas acho que veremos uma grande versão 1.9 até o fim do ano, como Matz disse, e então 2.0 logo depois disso. Mas quem sabe?

Falando nisso, você pode achar interessante dar uma olhada em algumas das palestras de Rubyconfs anteriores. Não tem o de 2001 mas tem os outros. Você poderá dar uma boa olhada nos tipos de coisas que as pessoas faziam com Ruby nessa época.

AkitaOnRails: Eu definitivamente darei uma olhada, e é uma ótima recomendação para nossos leitores. E você segue o desenvolvimento do 1.9 de perto? Quero dizer, os mailing lists oficiais e coisas assim? Você já esteve no Japão? Quão diferente é a cultura ao redor do Ruby e, por exemplo, ao redor do Rails?

David: Nunca estive no Japão, mas adoraria ir. Realmente não sei muito sobre Rails no Japão. Já para Ruby, é muito interessante: muitos dos Rubystas japoneses falam inglês e participam de listas inglês-japonês e conferências mas, claro, muitos não falam – então existem aspectos da cultura do Ruby por lá que é inacessível para mim.

Sobre o 1.9, eu não sigo tão de perto como deveria. Compilo de vez em quando para ter uma versão recente disponível, mas para ser honesto o 1.8 e Rails estão me mantendo bem ocupado!

AkitaOnRails: Acho que o Matz e o DHH são personalidades interessantes. Eu mesmo sendo um japonês consigo entender o Matz e sua evolução cuidadosa ao redor do Ruby. E tendo sido criado no Ocidente consigo entender as bravatas do DHH e as coisas de ‘opinião’. Essa comunidade tem fundadores interessantes e conflitantes. O que acha da nossa atual comunidade, você segue todos os novos desenvolvimentos? Gems, plugins e tudo mais?

David: Bem, são várias perguntas (comunidade, plugins, gems). Eu adoro nossa comunidade. Adoro por muitas razões, mas principalmente porque acho que as pessoas são realmente boas e muito interessadas no que estão fazendo.

AkitaOnRails: Eu quis dizer que muitos dos desenvolvimentos refletem as características de seus autores. WhyTheLuckyStiff por exemplo.

David: Sim, definitivamente – temos muitas pessoas com passados interessantes (como músicos e estilos). Falando nisso, já tinha visto esta imagem ? Isso é da RubyConf 2002. São todos os livros japoneses que haviam sido impressos na época. Masayoshi Takahashi foi quem nos trouxe (criador do Método Takahashi para apresentações).

AkitaOnRails: Não conhecia esta imagem em particular, muito legal.

David: Sim, ficamos todos espantados! “Então é realmente grande no Japão”, eu imaginei.

AkitaOnRails: Haha. Por mim, estou muito orgulhoso que pelo menos nos EUA, Ruby cresceu rápido e forte. Mas tenho um pequeno temor que isso seja outra bolha. Muitos dizem que o Ruby pode se tornar o próximo Smalltalk.

David: Ele não é. É o primeiro Ruby. As pessoas sempre tentam descobrir o que o Ruby “realmente” é. Um novo Perl, o próximo Smalltalk, um dialeto de Lisp, um Python com “end” … É apenas Ruby. Ele tem um estilo todo próprio.

AkitaOnRails: O Ruby, após o Rails, ganhou exposição. E agora muitos elefantes no meio da sala se tornaram problemas. Vejo reclamações que um desses elefantes é a dependência excessiva em desenvolvimento C dentro das bibliotecas principais do Ruby. Será que veremos as bibliotecas principais sendo re-escritas em Ruby puro? Você acha que isso realmente importa?

David: É interessante – houve várias tentativas de escrever Ruby em Ruby durante os anos. Acho que seria ótimo, porque tornaria mais simples escrever implementações. Não tenho certeza quão próximo alguém chegou disso. Não tenho seguido esses desenvolvimentos ultimamente. Muitos são razoavelmente simples, mas claro que nem todos.

AkitaOnRails: Sim. Hoje vejo Charles do JRuby e Evan Phoenix do Rubinius. Você já tentou usar algum deles?

David: Eu olhei para JRuby um pouco, e segui a história do Rubinius (dos seus dias como Sydney). Acho que são ambos projetos interessantes, e é ótimo ver esse tipo e trabalho acontecendo.

AkitaOnRails: Ao menos por aqui, em meu país, Java é o pão-com-manteiga de cada programador profissional. As pessoas aprendem Java na faculdade. Para mim e para veteranos como você, havia um tempo quando apenas aprendíamos e hackeávamos as coisas. “Ei, veja esse trecho de código, parece legal”. Aprendi muitas linguagens, conceitos e tudo mais nos últimos 20 anos. Mas hoje vejo muitos garotos apenas pensando “qual pode me dar uma carreira legal?”. E só isso. Não estou tentando ser um idealista – como Chad disse, é sobre economia – mas você não acha que as pessoas da nossa área deveriam tentar aproveitar o que fazem um pouco mais? Como isso funciona para você?

David: Bem, estou em uma grande posição no momento: eu peguei meu hobby e o transformei e uma carreira. Acho que a coisa ideal seria para as pessoas usar ferramentas, especialmente linguagens, que elas gostam. Mas claro que as pessoas não podem apenas dizer a seus chefes: “estamos usando Ruby agora!” Com sorte as pessoas que usam Ruby, à medida que suas carreiras evoluem, estarão em posição de criar mais e mais oportunidades para os outros.

Falando nisso, eu concordo a respeito dessa coisa de ‘o que pode me dar uma carreira melhor’ – e não é somente sobre computadores. Quando eu lecionava na faculdade vi a mesma coisa: estudantes menos e menos interessados, eu acredito, no estudo acadêmico por si só. Eles apenas querem treinamento pré-profissional, porque não conseguem conectar isso diretamente a uma credencial de trabalho. Eu simpatizo: é definitivamente difícil conseguir empregos, e as pessoas estão se preocupando sobre isso cada vez mais cedo.

AkitaOnRails: Eu pessoalmente não gosto do conceito de Fábricas de Software. Eu penso em desenvolvimento mais como um trabalho de pintura. Você pode pedir alguma ajuda em trabalhos braçais, mas a pintura está firmemente ligada a seu artista. Desenvolvimento se tornou muito complexo, muito caro, e os gerentes querem dividir em tarefas e papéis individuais. Então, um único programador é responsável pelo todo. Acho que plataformas como Ruby provê o caminho para tirar alguma complexidade e trazer o software para o desenvolvedor. O que acha disso?

David: Acho que isso seja possível, parcialmente porque trabalhar com Ruby é tipicamente produtivo – então uma única pessoa, uma pequena equipe, consegue chegar rapidamentem com alguma coisa com funcionalidades reais. Ao mesmo tempo, não acho que uma linguagem consiga, apenas por ela mesma, mudar a cultura de desenvolvimento. Mas talvez isso possa atrair pessoas que querem mudar esse paradigma, e isso pode facilitar as coisas. Também depende um pouco do que vai acontecer depois; Tem que ser possível dar manutenção no código, claro, e não somente por uma única pessoa!

AkitaOnRails: Então, o que podemos esperar da Ruby Central? Vocês já tem RailsConf US e EU. Ouvi falar de Índia? Talvez América Latina?

David: Não tempo planos específicos ainda mas não acho impossível. Ano passado começamos nosso Regional Conference Grant Program e agora existem muitas conferências regionais embora nem todas tenham nossa permissão. Às vezes eles nos pedem, e nós concordamos, mas daí eles conseguem vários patrocínios e aí não precisam mais de nós. Mas certamente encorajamos a tentativa de suportar eventos regionais. É muito melhor do que ter uma ou duas que tentam fazer de tudo.

AkitaOnRails: É algum tipo de programa de patrocínios?

David: Sim

AkitaOnRails: Somente para os EUA?

David: Não. Suportamos o EuRuKo (a conferência européia). A única regra básica é que o evento realmente precise do dinheiro. É por isso que não os financiamos se já tem dinheiro de patrocinadores.

AkitaOnRails: Então, foi um grande prazer falar com você. Falando nisso, estou surpreso sobre quão gentis todos da comunidade Ruby/Rails são. Contatei muitas pessoas e eles foram todos muito receptivos. É uma das coisas que gosto sobre a comunidade.

David: Sim, é uma galera legal.

AkitaOnRails: Então, agradeço muito. Muito prazer em falar com você.

tags: interview

Comments

comentários deste blog disponibilizados por Disqus