Os Próximos 10 Anos
Se você esteve na Rubyconf Brasil 2016, no último sábado, 24 de setembro, me viu anunciar minha “aposentadoria” da organização da conferência. Na verdade, da organização de qualquer conferência específica de linguagem ou plataforma.
I might not understand Portuguese, but I'm fluent in Douglas Adams. Congrats @AkitaOnRails and thank you! #RubyConfBR pic.twitter.com/hfOA2wMKot
— Kären Engelbrecht (@scriberty) September 24, 2016
Deixando cristalino: esse anúncio está longe de ser mais um daqueles dramas de “estou largando Ruby”. Porque eu desprezo baboseira desse tipo.
Sou rubyista e sempre serei rubyista. Num futuro previsível, Ruby continuará sendo minha linguagem primária e preferida.
E, aliás, nenhum outro drama está envolvido. A Rubyconf Brasil é primariamente patrocinada e organizada pela Locaweb, e tenho apenas gratidão pelo apoio incansável deles ao longo de todos esses anos. Devo até um pedido de desculpas por ter feito o anúncio sem avisar ninguém antes. Ainda não sei se eles vão querer continuar com a marca ou não, ainda nem conversamos sobre isso.
Os Princípios da Conferência
Sobre o evento, algumas coisas que talvez as pessoas não saibam:
Eu não sou dono da conferência.
Não tenho contrato com nenhum patrocinador. Não tenho salário, participação nos lucros (a conferência sempre foi non-profit; a Locaweb sempre bancou tudo em cima e nunca economizou, por isso a qualidade sempre foi altíssima) nem qualquer outro tipo de arranjo financeiro. Venho organizando a conferência no meu próprio tempo livre.
Isso foi proposital, um princípio.
Tentei garantir o máximo de isenção possível. É também por isso que sempre me limitei a palestrar no meu próprio evento. As poucas vezes em que palestrei foi para preencher um buraco (um palestrante que furou em cima da hora) ou em momentos muito específicos (nos primeiros Rails Summits, ou no aniversário de 10 anos de Ruby on Rails em 2014).
Minha principal preocupação com a conferência sempre foi a curadoria do programa. Escolhi as palestras a dedo, por mérito técnico, na medida do possível. Elas sempre refletiram o que eu pessoalmente acho que vale a pena assistir. Por isso sempre evitei votação pública (que desequilibra para o lado de celebridades), nunca formei comitê (que força política) e nunca fiz escolha às cegas (porque acredito que o programa de uma conferência é como contar uma história e eu queria coerência).
Como nunca fomos orientados a lucro, nunca me preocupei com bobagens como escolher temas só para inflar a audiência. Isso não significa que sempre acertei, erros acontecem, mas foram exceção. Na maior parte do tempo acredito que fiz o melhor que pude.
Sempre foi o que eu pessoalmente acreditava fazer sentido para o público. Tenho muito orgulho não só dos palestrantes que conseguimos fomentar, mas também do público que os acompanhou. Se você olhar os inscritos da Rubyconf Brasil, a maioria não aparece em nenhum outro dos grandes eventos do país. É um grupo exclusivo que se encontra uma vez por ano.
Mais do que isso: todo ano, nos últimos 10 anos, metade do público era novato na conferência, e mais da metade vinha de todos os cantos do país (e não só da cidade de São Paulo).
RejectConf 2007
Meu primeiro evento “oficial” se chamou RejectConf SP, em 2007. Teve cerca de 150 inscrições e menos de 100 pessoas apareceram de fato. Quase todos os palestrantes continuam por aí e indo muito bem.
O nome veio porque, em 2007, Ruby era o patinho feio, especialmente no Brasil. Ninguém em sã consciência imaginaria o tamanho que essa comunidade iria atingir. Então era a linguagem rejeitada.
O patinho feio acabou virando um Cisne Negro.
Nos 2 anos seguintes, não tentei fazer uma “Ruby"Conf, porque a maioria das pessoas nem sabia o que era “Ruby”, mas todo mundo conhecia “Rails”, já que houve um período de “Rails-bashing” por todas as outras comunidades. Então chamei os eventos seguintes de “Rails Summit”.
Quando conseguimos fazer o nome Ruby pegar e ser melhor apreciado, aí sim fiz a troca para “Rubyconf Brasil”, em 2010.
Então 2016 foi a 7ª Rubyconf Brasil, mas o 10º evento relacionado a Ruby seguido.
Depois, Ruby on Rails chegou ao marco dos 10 anos, em 2014. Fiz a keynote de encerramento explicando por que ainda importa.
E, mais importante, fiz o seguinte ponto:
“Com ou sem religião, você teria pessoas boas fazendo coisas boas e pessoas más fazendo coisas más. Mas, para pessoas boas fazerem coisas más, para isso é preciso religião.” ― Steven Weinberg
O Falso Dilema das Religiões de Linguagem
Se você vem prestando atenção em tudo o que faço, sabe que sou tudo menos um evangelista extremista de linguagem ou plataforma. Rejeito religiões de linguagem. Acredito em liberdade. Liberdade para fazer e dizer o que quiser (dentro do limite de não prejudicar os outros, claro), e, mais importante: sem preconceito.
Mas isso fica cada vez mais difícil, porque soa automaticamente “esquisito” quando um “rubyista” quer falar sobre Go, Clojure ou outras linguagens. Sempre parece aquele “opa, esse rubyista está falando de Clojure, está trocando, logo Ruby está perdendo terreno”. E, aliás, sempre soou estranho quando se ouvia um evangelista de uma linguagem falando de outra.
Essa é a baboseira dessa geração. Testemunhei minha liberdade sendo restringida, ano após ano. E a de todo mundo, diga-se. Hoje em dia todo mundo precisa estar debaixo de alguma bandeira, com uma posição extrema, de oito ou oitenta.
Isso é puro desperdício de neurônio.
A maioria das posições extremas, que se pretendem sólidas, acabam sendo posições ambíguas e demagógicas.
Vivemos numa sociedade extraordinariamente dependente de ciência e tecnologia, na qual praticamente ninguém sabe nada sobre ciência e tecnologia. ― Carl Sagan
Venho escrevendo sobre Pensamento Crítico, Método Científico e temas correlatos há muitos anos no meu blog e nas redes sociais.
Venho colocando temas não-Ruby na “Ruby"Conf há muitos anos. Tivemos Node.js em 2010, iOS em 2011, Elixir foi apresentado pelo José Valim na RubyConf de 2012. E em 2015 fiz outra grande mudança, introduzindo 3 trilhas paralelas (de 5) dedicadas a temas não-Ruby.
Neste ano colocamos os logos de todas as linguagens (Elixir, Crystal, Go, Javascript, Clojure) nos materiais da Rubyconf Brasil.
Nenhum rubyista achou isso estranho, e esse é o meu maior orgulho em relação ao público que construímos: os rubyistas no Brasil já acham super natural falar e usar outras linguagens e plataformas sem sentir que estão “traindo” uma causa ou sem sentir necessidade de “abandonar” Ruby só porque começaram a curtir algo como Elixir ou Clojure.
Os rubyistas, ao menos no Brasil, têm menos propensão a cair no erro das métricas de vaidade, como escolher uma linguagem por causa do ranking TIOBE.
Faltava uma última coisa para fazer: dar o exemplo final.
Para a maioria das pessoas, Fabio Akita (a.k.a. AkitaOnRails) é sinônimo de Ruby. Apesar de eu escrever bastante sobre outras coisas há muitos anos, a maioria ainda me associa à RubyConf Brasil. E, mesmo a conferência tendo mudado de direção anos atrás, “Ruby"Conf continua sendo associada principalmente a “só Ruby”.
Estava confortável demais continuar com a Rubyconf Brasil como estava. Sei como fazer. As pessoas gostam. Ela continua crescendo, sem sinais de desaceleração (começamos a precisar fechar as inscrições algumas semanas antes por conta de overbooking).
Quando as coisas começam a ficar confortáveis demais, você sabe que possivelmente algo está errado.
Eu não sou minha linguagem favorita.
Essa foi a mensagem final, a história que eu queria contar, e foram 10 anos no forno.
Passei 10 anos construindo um público saudável que difere de qualquer outro no mundo de tecnologia: uma turma altamente agnóstica, racional, consciente de pensamento crítico, orientada a resultados. Acreditamos de fato em “best-of-breed” e “best-tools-for-the-job”.
Mas isso demandava algo além de conversa fiada e discurso demagógico. E a coisa mais desconfortável que eu podia fazer era soltar.
A mensagem foi alta e clara: eu não sou minha linguagem, e você também deveria se libertar dela.
Akita"OnRails”
Muita gente perguntou se eu vou mudar meu username.
Não, vai continuar sendo “AkitaOnRails”.
Desde o início, “On Rails” se refere a algo muito além do framework web “Ruby on Rails”. Significa exatamente o que diz: “On Rails”, “Sobre uma Linha”, “Abraçando Restrições”.
“Restrições são Libertadoras”
- DHH
Ruby on Rails é um framework web. Mas é também uma declaração, um ponto de vista opinativo.
Significa:
- Se esforçar para escrever Código Bonito
- Se esforçar para escrever Código Agradável
- Se esforçar para escrever Código Manutenível
Significa usar as melhores técnicas e práticas para conseguir isso. Test-Driven Development (Test-First ou Test-After, tanto faz). Continuous Integration. YAGNI (You Ain’t Gonna Need It). SOLID (como o Bob Martin prega). Continuous Delivery. Etc.
A comunidade Ruby não inventou o Git, mas fomos nós que fizemos ele decolar através do Github.
A comunidade Ruby foi a primeira turma de desenvolvimento de software a adotar técnicas Ágeis como um todo, e não como facção dissidente de algum outro grupo mainstream.
Agora toda comunidade nova aspira a ser “On Rails”, sem chamar assim. E não apenas copiando o framework web. Aspira pelo desejo e pela disciplina de escrever “Bom Código”, e nunca código “Quick and Dirty”.
E esses valores vão continuar, com ou sem Rubyconf ou a linguagem Ruby.
Eu sei, para a maioria ainda vai parecer que estou amarrado ao framework web, mas essa amarra existe só na cabeça dos outros. Talvez um dia eu mude, mas não agora.
Nem sempre vamos concordar sobre quais são as técnicas certas, mas sempre vamos nos esforçar em direção aos mesmos objetivos: escrever código bonito que produza resultados valiosos.
Os Próximos 10 Anos
Dito tudo isso, espero ter ajudado um pouco a espalhar a palavra:
Parem de ser extremistas.
Exercitem o pensamento crítico. Façam o que parece certo, e não o que agrada a grupos influentes aleatórios. Nunca imponham seu ponto de vista aos outros. Parem de seguir cegamente falsos profetas.
Eu faço tudo guiado por essa ideia:
“Nunca vivo pelo bem de outra pessoa e nunca peço a ninguém que viva pelo meu bem. Só aceito trocas voluntárias em benefício mútuo.”
“Sou engenheiro de software. Sei o que está por vir pelo princípio sobre o qual se baseia.”
Expliquei isso em detalhes no meu artigo "_Why, Ruby Dramas, and Dynamiting Courtlandt”. De uma forma modesta, quero acreditar que honrei esse princípio.
Eu escrevo software (e sobre software) porque gosto de software. Sou muito fã de Ruby e vou continuar fazendo o melhor Ruby que conseguir por muitos anos. E também vou escrever bom Elixir, e bom Crystal, e talvez bom Javascript, etc.
Mas vou fazer do meu jeito, e não do jeito de ninguém.
E você também deveria.
