O desenvolvedor, os paradigmas e as revoluções científicas

Thomas Kuhn
Thomas Kuhn

Mais um livro para ser incluído na lista das minhas boas leituras de 2013: “A Estrutura das Revoluções Científicas” de Thomas Kuhn. Meu primeiro contato com o texto se deu em 2001 quando prestei vestibular para Filosofia na UFMG, mas naquela época só li um trecho e acabei deixando-o de lado. Somente neste finalzinho de 2013 pude lê-lo na íntegra e talvez tenha sido A grande leitura do ano. Bom: antes tarde do que nunca, e neste post vou expor o paralelo que encontrei com a nossa realidade (parece que escreveu para nós).

(aviso: este é um post denso)

De que trata este livro?

Link para o livro na editora Perspectiva
Link para o livro na editora Perspectiva

É tratada a história da ciência. Não é a narrativa de como esta evoluiu, mas sim uma crítica ao modo como até 1962 se pensava a história da ciência. Kuhn rompe com a idéia de que a evolução da ciência seja acumulativa, ou seja, que o crescimento científico se dá apenas através do acúmulo de novos conhecimentos. Não: para Kuhn de tempos em tempos ocorre uma espécie de “reboot” teórico que transforma profundamente a visão que temos do mundo e o modo como fazemos ciência.

Este reboot se dá através da substituição do paradigma corrente. Bom: o que é um paradigma? Para Kuhn é todo grande feito científico que trás resultados até então nunca obtidos (de grande magnitude) e que provê um novo ferrametnal sob a forma de teorias, metodologias e pré-concepções. Este ferramental, esta nova visão de mundo é adotada pela geração corrente e posterior de cientistas, que o usa para resolver os problemas deixados em aberto.

Os cientistas que adotam o paradigma compõem uma comunidade que o autor chama de ciência normal que, por sua vez, tem seu modo de trabalho descrito de uma forma bastante interessante e próxima a nós. Seu trabalho consiste em resolver quebra-cabeças. O problema se apresenta como uma série de peças que encaixamos com o objetivo de formar uma imagem coerente com o paradigma vigente. Para tal já temos todo um ferramental pronto que na prática apenas adaptamos conforme novas dificuldades vão surgindo. Usamos a teoria x, y e z junto com as preconcepções a, b e c usando a metodologia plus e pronto: a imagem se forma, coerente com esta visão de mundo.

Mas há anomalias, anomalias estas que não conseguem ser tratadas pelo paradigma corrente. Inicia-se uma crise: nosso ferramental não é mais tão poderoso quanto imaginávamos e então surge uma nova visão de mundo, um novo paradigma que explica melhor estes fatos horrorosos. E assim inicia-se a revolução científica. Um bom exemplo é a astronomia Ptolomaica, que via o céu como algo basicamente estático. Tudo ia bem até começarem a prestar mais atenção nos cometas. Como explicá-los? Surge o novo paradigma com Copérnico, e com isto o problema se resolve com um novo ferramental. A Terra cede o centro ao Sol, não mais é estática, mas móvel, assim como os demais planetas.

Um pato? Um coelho? Ambos?
Um pato? Um coelho? Ambos?

O grande soco me veio no capítulo 9: “As Revoluções Cientíticas como Revoluções na Concepção do Mundo“. A revolução científica é mais profunda: com ela um novo mundo surge. Dois cientistas, cada qual com seu paradigma vêem o mesmo objeto de formas completamente distintas (como este pato/coelho ao lado). Enquanto o céu é estático para Ptolomeu, para Copérnico é algo dinâmico. Ei: falo sobre isto há anos aqui no blog. Lembram quando eu escrevia sobre determinismo linguístico?

E eu, desenvolvedor, o que tenho a ver com isto?

Conforme lia o texto via meu desenvolvimento profissional. Meu primeiro paradigma era o procedural: via o sistema como uma série de módulos compostos por funções e rotinas (alguém ainda usa esta palavra, rotina?). De repente meu paradigma mudou, os sistemas ficaram maiores, eu precisava de algo melhor para lidar com aquela complexidade, veio a orientação a objetos, e com ela fui mudando aos poucos minha visão procedural para uma orientada a objetos. (já escrevi sobre esta experiência aqui)

Me lembrava dos momentos de crise nos quais a minha linguagem corrente (Visual Basic ou Delphi) não mais me atendia quando a web nos engoliu. A Web era em si um paradigma completamente novo para todos nós. Inclusive no sentido de Kuhn: resolveu uma série de problemas (como o de instalação, por exemplo) e ao mesmo tempo criou uma ciência normal, formada por uma nova categoria de programadores, os programadores web (ou frontend, ou webmasters ou o nome que melhor se encaixar).

No livro de há um capítulo sobre estas crises, o sexto, entitulado “As Crises e a Emergência das Teorias Científicas”. Troque “Teoria Científica” por “Ambiente de Desenvolvimento” em sua leitura e verá que, se já passou por isto, o texto trata exatamente da mesma situação. Não há uma troca imediata: antigos hábitos vão se misturando a um novo modo de trabalho e com ele o que realmente valia à pena se mantém, e o que não se adequa é eliminado. É um período de crise profissional (termo usado por Kuhn em 1962) acompanhado de imensa insegurança. “O que será de mim? Estou obsoleto? Conseguirei aprender isto? Será que esta novidade não é mera picaretagem ou hype?”.

É fascinante, por exemplo, no texto de Kuhn, ler a imensa resistência que emerge diante dos novos paradigmas. Digo uma coisa: EXATAMENTE o que vêmos quando apresentamos uma nova ferramenta ou paradigma de desenvolvimento. Impressionante como um texto de 1962 consegue descrever em detalhes o nosso dia a dia.

grails_logo

Penso em Grails: quando surgiu mudou radicalmente o modo como eu via o desenvolvimento Java EE. Era a emergência do conceito de convenção sobre configuraçãonão se repita e tantos outros em uma comunidade acostumada a um modo de trabalho absolutamente diferente.

Seria o Node.js sinal da emergência de um novo paradigma?
Seria o Node.js sinal da emergência de um novo paradigma?

Pensem em Node.js: é uma visão completamente diferente da que estamos acostumados. Javascript do lado servidor? E numa thread única??? E ainda por cima  funciona??????  E toda uma gama de anomalias que eram difíceis de serem resolvidas com outras abordagens de repente são resolvidas de formas mais simples. É um novo paradigma surgindo? Talvez: o tempo dirá. Após a leitura do Kuhn está me parecendo um. Nâo o Node.js em si, mas talvez o modo de trabalho.

É interessante que no texto de Kuhn é exposto que não há também um único paradigma: muitas vezes (todo o tempo) eles convivem lado a lado. A substituição não se dá do dia pra noite, e muitas vezes se mantém lado a lado eternamente, ou mesmo um usando o outro. Exemplo: a física de Newton e a relatividade de Einstein, cada um no seu quadrado e muitas vezes dando as mãos. Penso que em tecnologia é a mesma coisa: uso PHP para alguns casos, Grails em outros, Node.js em algumas situações e por aí vai.

Concluindo

“Cientistas”, desenvolvedores, bruxos, são todos a mesma coisa. Terminada a leitura do livro vi que ia muito além da “mera” história da ciência. É o modo como encaramos as mudanças que atropelam nossas vidas e alteram nossa visão do mundo que muitas vezes acreditamos ser tão sensata, tão segura.

É um livro que deveria estar na prateleira de todo programador, qualquer um que trabalhe com desenvolvimento ou qualquer outra área. Ao final acredito que nos traga humildade e também um alívio: as anomalias são a janela para um novo mundo. É só saltar por ela.

PS:

Muito obrigado a todos vocês por este ano de 2013 que foi sem dúvidas o melhor ano da história deste blog e que acabou redefinindo minha própria opção profissional (será cada vez mais literária).

Sem vocês isto não seria possível. Nunca imaginei em 2008 que teria tantos leitores como hoje e que estaria tratando de assuntos tão diversos! Vocês não fazem idéia do tanto que isto me incentiva a continuar.

(e acreditem, continuo e ano que vẽm a coisa será ainda mais intensa)

Feliz 2013 a todos vocês. :)


Publicado

em

,

por

Tags:

Comentários

7 respostas para “O desenvolvedor, os paradigmas e as revoluções científicas”

  1. Avatar de Lucas Madeira
    Lucas Madeira

    Ótimo texto, acompanho seus posts semanalmente , feliz 2014 e continue com os posts sobre Grails, comecei a brincar com ele depois que li seus posts a respeito do assunto.

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      Oi Lucas, obrigado, valeu!

      Com certeza: sobre Grails aliás haverá um boom monstro. :)

  2. Avatar de Daniel Lage
    Daniel Lage

    Oi Kico, beleza.

    Fico quieto, mas sempre acompanho seus posts. Como sempre, excelentes! “Sempre aprontando das suas, heim!”.

    Feliz 2014! Espero que um dia voltemos a trabalhar em equipe. Seria bacana relembrarmos os velhos tempos.

    Um abraço.

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      DANIEL LAGE!!!!!!!

      Quanto tempo man! Valeu demais!

      Também espero o mesmo. :)

  3. Avatar de Carlos

    Excelente post! Leitura prazerosa, que nos faz refletir sobre o assunto.

    No entanto, no caso do Node.js especificamente, o que estamos assistindo é uma mudança de paradigma natural, a mesma observada no design, na música, no cinema… Eu diria que, de tempos em tempos, antigos valores VOLTAM a ganhar importância e os excessos são descartados (parafraseando a crise profissional de Kuhn).

    Na música vemos isso de década em década. Ocorreu nos anos 70 quando o punk resolveu com apenas 3 acordes o que os virtuoses não souberam. Também ocorreu recentemente no (web)design com toda essa nova febre do “Flat”. A proposta é até interessante: Como você pode ser mais criativo tendo recursos limitados? Não vale mais usar gradient, box-shadow, bordas arredondadas. Isso é old-fashioned! Já era. E então as pessoas voltam a valorizar o que realmente é eficiente: Paleta de cores, tipografia, UX… Se sua equipe não perde mais tempo com floreios, ela passa a ser mais produtiva e eficiente.

    É claro que, no caso do desenvolvimento de software, a coisa muda de figura. Mas usar a mesma linguagem no servidor e no cliente, é, de fato, tentador. Tentador também para o empregador, pois este deixa de ter custos adicionais com novas contratações. É a tecnologia do browser! É o back-to-basics. É o front-end quebrando a barreira do back-end. Não é novidade, pois já haviam conseguido um pouco disso com os BDs baseados em documento, como o MongoDB.

    No caso do Java, frameworks “component-based” como o JSF provavelmente vão se tornar os vilões da história, justamente por abstrair o HTML do desenvolvedor.

    Não estou defendendo o Node, apenas estou curioso para ver até onde tudo isso vai dar! O paypal, o eBay, o Walmart… Todos estão migrando seus servidores para Node. O paypal, inclusive, publicou um benchmark:

    https://vividcortex.com/blog/2013/12/09/analysis-of-paypals-node-vs-java-benchmarks/

    Uma visão interessante (e divertida) sobre o Javascript é este excelente vídeo:
    https://www.youtube.com/watch?v=PN8Eg1K9xjE

    Abraços e parabéns pelo artigo!

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      Oi Carlos Gomes,
      fico feliz que tenha gostado, valeu!

      Também penso exatamente como você no que diz respeito a estas questões. Acho fascinante ver este movimento pendular: daqui a pouco iremos nos deparar com gente defendendo algo como JSF de novo. Quanto tempo isto levará? Uns dois, três anos? :)

  4. Avatar de Carlos

    Imagina, cara… Daqui há uns 3 anos um movimento em prol do JSF?? rsrs

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.