Por Andrew Jones
Escrevendo na revista BIO-Complexity, Winston Ewert propôs recentemente a ideia de um gráfico de dependência para descrever como os objetos projetados na biologia são tipicamente relacionados, por analogia com o software de computador. Já comentei sobre o artigo de Ewert, assim como outros no Evolution News. Para ajudar a explicar melhor o conceito, gostaria de apresentar aos leitores meu coelho de estimação, Daisy.
Ela é um coelho anão holandês. Ou, em outras palavras, eu tenho um objeto chamado Daisy da classe Anão Holandês, que é uma espécie de Coelho. Cada Anão Holandês é um Coelho, mas nem todo Coelho é um Anão Holandês.
Linguagens de programação orientadas a objetos, como Java, usam a ideia de uma classe: cada objeto de dados é uma instância de uma classe e a classe define suas propriedades. Uma segunda ideia principal é a herança: novas classes com mais propriedades podem ser derivadas de classes antigas com menos propriedades. A classe Anão Holandês é uma subclasse da classe base Coelho que tem a propriedade adicional de orelhas de abano, e Coelho é uma superclasse de todas as raças específicas de coelhos. Em Java, cada classe é uma subclasse da classe Object. Isso significa que cada objeto de cada classe tem as propriedades de um objeto, mas pode ter outras propriedades em adição.
Herança em Biologia
Presumivelmente, todos os coelhos compartilham um ancestral comum, e esse ancestral não era um Anão Holandês.
O conceito de hereditariedade da engenharia de software se assemelha à ideia de Darwin de descendência de um ancestral comum, em que superclasses e subclasses correspondem aos taxa mais altos e mais baixos. Na teoria de Darwin, os taxa não são meras categorias para organizar as coisas; acredita-se que eles sempre refletem antepassados que realmente viveram no passado distante. A ideia é que a espécie ancestral (da superclasse) era relativamente simples, mas já possuía as principais características definidoras de todo o táxon. Com o tempo, mais espécies (subclasses) foram derivadas herdando as características do ancestral, mas também adquirindo novas características por acaso e seleção natural, que poderiam então ser passadas para uma variedade de espécies descendentes ainda mais complexas (subclasses de subclasses). O resultado seria que todas as espécies são relacionadas por um gráfico de árvore, como classes em uma hierarquia de herança.
A ideia de herança darwiniana tem algumas limitações importantes. Por um lado, como era o vertebrado original, se não tivesse outras características além de uma espinha dorsal e um aparelho digestivo? Tem que haver uma certa quantidade de funcionalidade no início e algumas propriedades padrão: para sobreviver, até mesmo as formas de vida mais antigas teriam que começar bastante complexas. Por apenas um exemplo, os evolucionistas acreditam que os primeiros vertebrados tinham brânquias, embora muitos vertebrados hoje não tenham brânquias. Esta é uma maneira de olhar para o enorme problema da origem da vida: moléculas orgânicas comuns não têm muita estrutura ou função, e não estão vivas. Eles são uma superclasse da subclasse de moléculas biológicas complexas, mas não são ancestrais delas.
Esta limitação aplica-se a todos os táxons superiores também. Em Java, geralmente não se cria um objeto da classe Object, já que ele não faz nada. A classe Object é mais como uma categoria do que algo que você pode instanciar, e faz sentido pensar no taxon dos vertebrados da mesma maneira; não há necessidade de supor que houvesse uma única espécie ancestral de vertebrados. E mesmo se houvesse, de onde vem a complexidade adicional, criar classes taxonômicas, ordens e famílias na árvore de herança?
Nossa experiência nos diz que a inovação funcional vem da engenharia. O conceito central do darwinismo é que a seleção natural, mais o acaso, deve acrescentar novas características funcionais complexas a todos os organismos ao longo do tempo. Na prática, não, como continuamos dizendo aqui no Evolution News. Na verdade, o tipo de evolução que acontece na prática (por exemplo, do coelho selvagem ao anão holandês) tem mais a ver com a perda de caracteres funcionais ao longo do tempo (esses não conseguem mais erguer suas orelhas). As coisas vivas começam complexas e se tornam mais simples. Mike Behe tem um livro a ser publicado, Darwin Devolves, que explica esse ponto extensivamente. Já existem alguns ótimos artigos de visualização aqui.
Composição sobre herança (incremento)
Mas há outro problema com toda a ideia de herança. Os engenheiros de software descobriram que é uma maneira terrível de projetar coisas novas. Acontece que é pesado e inflexível. Aqui está um artigo que explica por quê. Vale a pena repetir:
O grande problema com a herança é que você é encorajado a prever o futuro. Herança encoraja você a construir essa taxonomia de objetos muito cedo em seu projeto, e você provavelmente vai cometer erros de design fazendo isso, porque humanos não podem prever o futuro (mesmo que pareça que podemos), e sair desses taxonomias de herança é muito mais difícil do que entrar nelas.
Em outras palavras, o problema com a herança é que ela bloqueia você em certas opções de design, e isso pode impossibilitar a combinação de características existentes de novas maneiras no futuro. Isso também está intimamente relacionado ao conceito de entrincheiramento generativo. A herança torna a vida difícil o suficiente para um projetista inteligente que tenha previsão, não importando um processo cego e indireto como a evolução darwiniana.
Em vez disso, os engenheiros de software descobriram que é melhor compor cada novo design a partir dos elementos específicos necessários a cada vez. Programadores novatos são agora ensinados a preferir composição sobre herança. Em outras palavras, geralmente é melhor compor uma nova classe ou programa a partir de componentes genéricos bem projetados, em vez de acrescentar progressivamente novos recursos a classes ou programas existentes.
Então, para criar o protótipo Coelho, em vez de começar com um tipo de coisa não descrita, você pode começar com um framework; diga o mamífero; mas, em seguida, adicione os módulos específicos para o rosto, orelhas, pernas, pêlo, intestino e comportamento que você deseja. Finalmente, você pode adicionar várias opções como genes recessivos ou recursos ocultos (vamos chamá-los de Easter Eggs) para adicionar um pouco de variedade ou flexibilidade para seus descendentes, para que os Anões Holandeses possam surgir.
A coisa realmente interessante sobre a biologia é que as coisas vivas não parecem ter sido prejudicadas pelas limitações da herança. Morcegos e baleias têm a característica complexa da ecolocalização, apesar da óbvia impossibilidade (óbvia até para os darwinistas) da herança de um ancestral comum que poderia ecolocar. Da mesma forma, considere as semelhanças entre morcegos e pássaros, ou golfinhos e ictiossauros, que são muito estranhas do ponto de vista darwiniano. Há uma incrível variedade de animais que têm olhos complexos, muitas vezes com desenhos semelhantes em táxons tão diferentes quanto cefalópodes e mamíferos.
Os mesmos personagens aparecem de novo e de novo na vida, mas muitas vezes sem respeito à herança. A árvore da vida construída pelos biólogos darwinianos está dividida em conflitos em todos os níveis. Uma classe de caracteres pode indicar uma relação tipo árvore, apenas para ser contraditada por uma classe diferente de caracteres. Os darwinistas propuseram todos os tipos de mecanismos ad hoc para explicar isso: transferência gênica horizontal (lateral), ordenação de linhagem incompleta, evolução convergente. Mas não seria melhor se houvesse uma razão clara? E se o motivo fosse composição? Isto é, e se as coisas vivas se parecerem com elas porque foram originalmente compostas novas a partir de partes comuns, ao invés de derivadas de ancestrais não descritos?
Composição confundida com herança
Se a composição é uma explicação preferível, por que os biólogos tradicionais não a adotaram? Bem, é em parte porque os biólogos que procuraram por uma árvore de herança e encontraram um sinal suficiente nos dados biológicos para se convencer de que há algo na ideia de herança. Por mais que haja muitos conflitos, a ideia de uma árvore de herança ainda se ajusta melhor aos dados do que a ideia de composições simples.
Mas e se as composições não fossem simples? Em seu artigo, o principal insight de Winston Ewert é o seguinte: não apenas os seres vivos são compostos de elementos, mas muitos desses elementos são eles mesmos compostos de outros elementos. Componentes são chamados de dependências, e as dependências de dependências para todas as espécies podem ser organizadas em um grande gráfico de dependência. O gráfico não é uma árvore, mas partes do gráfico parecem um pouco com uma árvore se você ignorar o suficiente das anomalias.
Essa percepção, se confirmada, seria altamente esclarecedora para a biologia. Ewert sugere que o gráfico de dependência explique dados reais de software e dados biológicos reais, e muito melhor do que qualquer árvore de herança. Em outras palavras, a ideia do gráfico de dependência explica o sinal que se parece um pouco com uma árvore de ancestralidade, mas em termos de composição e não de herança. Também vai muito além, prevendo que muitos genes seguem uma espécie de “herança” (por falta de uma palavra melhor) que não tenha nada a ver com taxonomia. Essas previsões foram confirmadas até agora. Você pode ler sobre como o Ewert testou essas idéias em detalhes aqui.
Parece que as coisas vivas podem não ser ramos de uma árvore, mas uma floresta de composições (de composições (de composições)). E se for verdade isso faria sentido, porque composições são melhores designs.
Nota do tradutor
O conflito das interpretações favorece o design em qualquer caso. Ainda que a árvore filogenética de toda a vida fosse perfeita (herança), a melhor explicação seria o design pela força da coerência (descrevi através do Argumento da Coerência), que requereria uma presciência surpreendente de vários níveis superando toda a capacidade de engenharia humana. No caso da composição, é claramente um conjunto de violações a ancestralidade comum que se torna injustificável por qualquer perspectiva evolutiva.
Original: Andrew Jones. Ewert’s Dependency Graph Proposal: A Forest of Compositions. December 3, 2018.
Faça um comentário