quarta-feira, março 25, 2009

Flamings e Einstein

É muito comum ver por aí nos fóruns de tecnologias alguns tópicos que são "flamings". Fiquei imaginando o que causam esses flames e como é difícil distinguir idéias completamente furadas das idéias que realmente tem algo de bom. Acho que consegui chegar em uma pequena fórmula que deve resolver parte do problema, ao menos para mim. O raciocínio veio quando estava lembrando do que fez Albert Einstein. O cara foi tão ponto fora da curva que criou sua teoria da relatividade de cabeça, não por que ele quis assim, mas porque simplesmente não havia (e acho que ainda não há) experimentos possíveis para provar que a idéia é verdadeira ou não. Aliás, no meio acadêmico, isso é bastante comum. Como ele fez isso (e aliás, como os cientistas fazem isso, normalmente)? Ele partiu de um "pressuposto" e começou a raciocinar em cima dele. No caso, o pressuposto é de que a luz possui velocidade constante. Matutando e pensando, ele chegou a conclusões incríveis... desde que a velocidade da luz seja constante. O que tem isso de importante? Bom, se provarem que realmente é uma constante (se já não provaram), é grande a chance de que toda a teoria esteja correta. Se provarem que não é constante, então toda a teoria vai pro brejo. Aí nossa opinião sobre a teoria da relatividade se resume a analisar 2 coisas: 1 - Se concordamos com o pressuposto; 2 - Se achamos que o raciocínio do cara não tem falhas lógicas. Em software temos um problema similar ao que tinha o tio Einstein. Temos grandes dificuldades de provar nossas idéias e teorias sobre software. Acho que daí nascem os flamings e todas essas discussões que ficam parecendo mais discussões religiosas do que discussões sobre uma ciência exata. Como em software não temos quase limitação nenhuma, quase qualquer idéia dá certo com o esforço suficiente aplicado, mesmo as idéias muito idiotas. Essas idéias, idiotas ou não, também são criadas a partir de pressupostos. Não sei se todos, mas todos os softwares, apis, frameworks e posts de blog que consigo lembrar são baseados em alguns pressupostos. O problema é que nunca deixamos claros quais pressupostos são esses. Então nossas idéias são analisadas a partir dos pressupostos que cada pessoa escolhe. Depende do que ele escolhe como pressuposto, sua opinião vai ser favorável ou não a nossa idéia. A "pequena fórmula" para resolver o problema dos flamings, e também o problema para se detectar uma idéia boa de uma idéia idiota é simplesmente deixar bem claro os pressupostos que se tomou para a idéia. Não, não foi dessa vez que descobri a América ou inventei algo novo e inédito, pelo visto. Mas para mim é um coisa que vem dando certo quando tenho que analisar algumas coisas, como Frameworks e posts de blogs. :) Querem ver um pequeno exercício? Você pode concordar ou discordar de tudo isso que eu disse, mas se ela é uma boa idéia ou não é mais fácil analisar se eu colocar os pressupostos aqui. Aí vão eles: - É comum flaming nos fóruns de tecnologia; - O que causa o flaming é a dificuldade de se separar idéias boas das ruins; - É difícil separar as idéias porque é difícil prová-las; - É difícil prová-las porque quase qualquer idéia sobre software funciona se aplicarmos esforço suficiente; - As pessoas tendem a analisar as idéias pelos seus próprios pressupostos; - Podemos separar as idéias se conhecermos claramente os pressupostos em que foram baseadas; Parece uma linha de raciocínio, mas na verdade não é. Cada linha da lista acima pode ser contestada facilmente e não pode ser provada, são pressupostos. Se você concordar com todos eles, provavelmente vai concordar com a minha teoria como um todo. Se deixar de concordar com qualquer uma delas, provavelmente vai achar minha teoria um lixo. Se todos eles puderem ser provados com sucesso, então a teoria é verdadeira. Se qualquer um deles for provado em contrário, então ela é furada. Com tantos pressupostos (são ao menos seis, se não esqueci nada), dá pra ver que essa minha idéia é bem frágil. Bom, agora você conhece a teoria e conhece claramente no que me baseei para montá-la. Espero que fique fácil analisar se ela tem fundamento ou não para você e o porquê disso. E aí? Tem fundamento?

Um comentário:

  1. versao LT;DR
    A comunicacao, principalmente a escrita, é complicada justamente porque o leitor sempre vai levar seu conjunto de conhecimento, crenças e preconceitos.

    versao full:
    Se vc substituir o termo tecnologia no seu post por qquer outro assunto, futebol, religiao, matematica, astronomia e etc, vai ver que é a mesma coisa... o problema esta na empatia entre escritor/leitor. Quanto mais proximos os conceitos, ou como vc colocou pressupostos, mais facil é o entendimento. O problema é que não só o conhecimento basico do assunto esta em jogo, experiencias pessoais, cotidiano e a cultura da comunidade (e pior, os preconceitos dessa comunidade, ex: ruby nao escala, perl soh serve pra analisar textos, javascript é soh pra fazer efeitos de banner...) sempre afetam o leitor. Minha regra geral pra esse tipo de situação (O flaming) é: se é algo que eu sei eu argumento, se é algo que nao tenho tanta certeza, eu leio e procuro outras fontes pra ver se o cara nao falo besteira, e as vezes argumento com contra exemplos, se é algo que nao sei lhufas fico na minha... agora, se conheco o escritor, como conheco vc por ex., me permito falar com base só na minha opniao, como esse post, pois imagino que vc vai entender meu ponto de vista (nao faria um post desses se nao te conhecesse pois vc poderia entender completamente errado, achando que estou te criticando e com isso gerando flames)

    ResponderExcluir