Sobre tecnologias, conceitos e aborígenes

Mapa do Estreito de Torres (fonte: Wikipedia)

Entre a Austrália e Papua-Nova Guiné existe um canal de apenas 150 quilômetros de extensão conhecido como Estreito de Torres. Várias pequenas ilhas pontuam o estreito. Foram elas que permitiram, mesmo sem grandes tecnologias de navegação, o desenvolvimento de uma rede de comércio e troca de informações entre uma massa de terra e outra. Apesar disso, durante muito tempo enquanto os habitantes do sul do estreito (a ponta australiana) levavam a vida como caçadores-coletores, os do norte já tinham fazendas de agricultura intensiva, cerâmica e criações de porcos.

As embarcações a que eles tinham acesso eram bem primitivas. Então as tecnologias tinham que ser passadas de ilha em ilha através do estreito até chegar à Austrália. Só que nem todas as tecnologias que faziam sentido no ambiente de uma ilha, faziam sentido no da próxima. O resultado é que nem todas as invenções conseguiam completar a travessia. Como se não bastasse, as tecnologias que acabavam conseguindo atravessar o estreito eram sempre modificadas no caminho. Foi isso o que aconteceu com a agricultura, a cerâmica e os porcos.

O mesmo mecanismo afeta as tecnologias que usamos como programadores. Conceitos vão “saltando” de uma comunidade para outra, de uma biblioteca para outra, de uma linguagem para a outra, até nos atingir. Uma pessoa pode ser apresentada a programação funcional através de Python, outra através de Clojure, outra através de Elixir, outra através de Haskell. Uma pessoa pode ser apresentada a injeção de dependências através de Smalltalk, outra de C#, outra de Javascript. Cada uma dessas ideias tem uma “árvore genealógica”: o caminho através das ilhas do estreito é diferente para cada uma delas. Mas o importante é que o que precisamos aprender é o conceito e não a implementação dele em determinada tecnologia.

Assim como as técnicas de agricultura e cerâmica são modificadas a cada “salto” de uma ilha para a outra, os conceitos tecnológicos são absorvidos por cada pessoa em um contexto diferente. Na maior parte dos casos, não temos como rastrear exatamente de que mente da Xerox Parc nos anos 60 saiu cada ideia. Então nossa melhor aposta é estudar tecnologias coerentes. Aquelas que têm um conceito norteador claro, que foram elaboradas para validar um conceito específico. Claro que dá para usar uma ferramenta desenhada por comitê, como Java, para resolver problemas práticos. Mas não é de resolver problemas que estamos falando aqui. Estamos falando de absorver a essência da coisa. Podemos sempre levar um conceito de um lugar para o outro quando o entendemos de verdade.

Mas para entender de verdade, é preciso beber direto da fonte. Os aborígenes do lado australiano do Estreito de Torres recebiam informação via telefone sem fio e, por causa disso, acabaram ficando sem tecnologias que poderiam facilitar bastante sua vida. O povo de cada ilha adotava as técnicas que lhes pareciam úteis a curto prazo e as adaptava a seu contexto.

A solução é construirmos o barco e atravessarmos o estreito. Vamos para a Papua-Nova Guiné. Vamos aprender orientação a objeto com Smalltalk, não com Java. Vamos aprender controle de versão distribuído com git, não com TFS. Vamos aprender NoSQL com CouchDB e Cassandra, não com PostgreSQL. Temos que aprender onde o negócio está em ebulição, não onde é apenas uma alternativa útil. Não onde é somente um checkbox numa lista de features.

Leave a Reply

Your email address will not be published. Required fields are marked *