E se os filósofos fossem programadores?

Se você olhar direitinho, o código reflete como o programador percebe o problema e sua solução. Antes de programar, os desenvolvedores gastam algum tempo pensando no problema, identificando propriedades importantes e suas conexões subjacentes, num processo que revela  o modo que eles percebem situações do mundo real. Analogamente, filósofos estão constantemente tentando identificar as mais importantes propriedades de questões como A Vida, O Universo e Tudo o Mais.

Marvin foi capaz de resolvers os maiores problemas matemáticos, químicos, biológicos, sociológicos, filosóficos e psicológicos do Universo, excepto seus próprios problemas!

Marvin foi capaz de resolvers os maiores problemas matemáticos, químicos, biológicos, sociológicos, filosóficos e psicológicos do Universo, excepto seus próprios problemas!

Assim podemos fazer um mapeamento entre as idéias de linguagens de programação e as idéias que os filósofos tiveram ao longo dos séculos. É perfeitamente razoável considerar linguagens de programação como diferentes filosofias em um mundo virtual, onde entidades existem e interajem entre si. Até as perguntas fundamentais podem sofrer uma profunda transformação, por exemplo, “O que é auto-consciência?” pode ser refraseada como “O que é reflexão?”.

Então e se os filosófos fossem programadores? Que linguagens eles usariam?

Sócrates: O programador Assembly

Sócrates foi um dos fundadores da filosofia mas não é aí que as semelhanças acabam. Ele inventou um método para ganhar qualquer debate, a dialética: Ele ficava fazendo perguntas até que seu adversário caísse em contradição. Se alguém dizia que “moralidade é importante”, ele perguntava: “Como você define moralidade?”.

Um tal de Sócrates, irmão do Raí.

Um tal de Sócrates, irmão do Raí.

De modo similar, tudo em Assembly requer uma questão, não há nada pré-assumido e tudo tem de ser sucinto para ter sentido. Se você é um programador trabalhando com Sócrates e o envia algo como “var x = null”, seu parceiro vai começar perguntando “O que é var?”.

Aristóteles: O programador C influente

Aristóteles teve um grande impacto na filosofia Ocidental, fundando muitas áreas científicas, como Física, Biologia e até a nossa Lógica. Ele examinou as entidades e a essência real de tudo, em constraste as abstrações de Platão. Sua filosofia é orientada a uma “média dourada” como a chave para contra-balançar tudo e alcançar moralidade ou entender a vida.

Hello Word!

Hello Word!

A linguagem de programação C foi muito influente no projeto das filosofias das linguagens, principalmente no nível sintático. Além disso, quando surgiu, foi considerada uma “média dourada” entre as linguagens de alto nível e a linguagem Assembly, combinando a capacidade de escrever código independente de plataforma combinado com o poder de acesso de baixo nível.

Platão: O evangelizador do C++

Platão é uma grande figura da Filosofia, estudante de Sócrates e professor de Aristóteles. Então por que C++ vem depois de C? Platão é famoso pelas referências a versões arquetípicas das coisas a nossa volta. Então, uma xícara na sua mesa é uma sombra de um arquétipo similar no mundo das idéias. Em programação, diremos que é uma instância da classe Xícara.

Platão, criador da Matrix.

Platão, criador da Matrix.

Similarmente, C++, é uma extensão de C, e tenta capturar a idéia de formas dando aos desenvolvedores a capacidade de abstrair o problema. Mas por que Platão não programaria em Java? Ele opderia, mas ele não estava tão certo que símbolos poderiam representar suas formas perfeitamente, e analogamente, C++ continua sendo um superconjunto de C, sendo compatível com a sintaxe de C.

Estóicos: A comunidade feliz de Perl

O estoicismo tem um impacto silencioso na cultura global e não há ninguém diretamente por trás dessa escola de pensamento, ela foi descrita por conquistas intelectuais colaborativas.

Os estóicos negam qualquer coisa imaterial e tenta explicar o mundo por uma lógica. Eles rejeitam tudo que é ideal e se concentram na moralidade, apreciando a liberdade da introspecção para alcançar a verdadeira sabedoria. As pessoas devem ser irmãs, sem distinções e devem contribuir para uma sociedade de amizade, paz e amor.

Mensagem hippie usando expressões regulares. Não entendeu? NOOB!

Mensagem hippie usando expressões regulares. Não entendeu? NOOB!

O Perl é uma linguagem livre de forma. A frase mais comum no mundo Perl é “existe mais de uma maneira de fazer isso. A filosofia por trás de Perl rejeita restrições sintáticas, dando a liberdade aos programadores de codificar ao seu estilo, mas ao mesmo tempo encoraja o compartilhamento e a contribuição para a comunidade.

O poder de Perl se deve em grande parte a existência da CPAN, o arquivo de módulos (bibliotecas) e software alegremente compartilhados por programadores ao redor do mundo. A influência da linguagem do mundo da programação tem sido silenciosa, podendo-se citar a influência para linguagens de scripting, tipagem dinâmica e programação funcional.

René Descartes: O verdadeiro guru Java

O cerne da filosofia de Descartes  (que está no famoso livro “Principia Philosophiae“) é o conceito de cogito (ego intelectual). Ele acreditava que a dúvida é a prova da existência, e o cogito é a causa da dúvida, o que nos leva a famosa frase “cogito ergo sum” (I think therefore I am). O cogito nada mais é do que outro processo que fazemos, mas na verdade comanda tudo que nós fazemos. Então, o que queremos, imaginamos ou sentimos é acessível apenas através dele.

Descartes extends Human implements Thinker

Class Human implements Thinker

Descartes também é responsável por outra revolução no campo da filosofia. A partir do seu trabalho, os filósofos passam a evitar abstrações confusas e estabelecer uma forma sucinta, praticamente geométrica, já que ele apresentava suas idéias na forma de teoremas.

Descartes seria um perfeito guru Java. Java é uma linguagem fortemente tipada, na qual tudo deve ter um tipo (ou compartilhar uma forma) antes de ser usada. Isso combina perfeitamente com os esforços de Descartes de ser sempre exato sobre o que estava falando. O cogito é de fato uma nova maneira de pensar as formas de Platão, com uma ligeira variação na qual ideias existem porque nós pensamos sobre elas e não em outro universo. A respeito disso, a filosofia é puramente orientada a objeto, dado que as solução em que chegamos são produtos diretos dos nossos intelectos.

Immanuel Kant: O primeiro programador Python

Kant encontrou uma forma de combinar duas metodologias opositoras da filosofia: o logicismo de Descartes e o empirismo quando disse: “Que tal os dois?”. Kant investigou como os humanos raciocinam, alegando que a experiência oferece a verdade, mas uma verdade que já foi filtrada por um julgamento intelectual lógico (a priori).

I Kant write ugly code.

I Kant write ugly code.

No final da vida ele examinou a estética, e a teoria tentando explicar a maneira pela qual percebemos a beleza. Kant foi uma personalidade extremamente concisa, sendo obcecado por exatidão e organização. Similarmente, Python é uma linguagem que tenta combinar diferentes soluções e promove uma nova. Como a linguagem aceita diferentes paradgimas, de orientação a objeto a programação baseada em contratos. Os programadores Python rejeitam o formato livre de linguagens como Perl, e mesmo emprestando algumas características dela, eles enfatizam o código simples e explícito.

Python se tornou tão “obcecado” por organização que impõe endentação de código e delimitadores de blocos de código aos seus usuários. No “Zen de Python”, o primeiro dos 19 mandamentos é “O Belo é melhor que o feio”. A obsessão de Kant pela beleza e a estética faz dele o primeiro programador Python.

O que dizer de outros filósofos e linguagens? O que vocês acham? Dizem por aí que os sofistas (sic!) usam Visual Basic (sic!).

Traduzido de If philosophers were programmers. Faltou um no final, Wittgenstein e Haskell. Mas nenhum dos dois é muito conhecido, então ficaram de fora, até porque o post já tava gigante. Abraços.

6 Respostas to “E se os filósofos fossem programadores?”


  1. 1 Ellison terça-feira, 21-abril-2009 às 6:23 pm

    Quem seria o filósofo programador de Ruby?

  2. 2 Ícaro Medeiros terça-feira, 21-abril-2009 às 6:30 pm

    Não tem filósofo pra Ruby porque Ruby é uma religião, uma fé cega =x

  3. 3 Felipe Vieira quarta-feira, 22-abril-2009 às 10:18 am

    ótima postagem.
    Estou no caminho do Socrátes ainda.

  4. 4 Natália Julieta quarta-feira, 22-abril-2009 às 9:02 pm

    A definição sobre Descartes e Kant, fico maraaaa!!!!

    Acho que ainda possa surgir uma ideia mista entra essas duas, mas não sei para qual linguagem!

  5. 5 Marco Rosner segunda-feira, 27-abril-2009 às 1:30 pm

    Post EXTREMAMENTE nerd! ahahhahah Mas ficou legal a parte de Descartes e Kant…aaaa e a foto do bebe hello world ta perfeitaaaaaaaa ahahahhaha

  6. 6 Mônica W. quinta-feira, 20-maio-2010 às 1:32 pm

    Muito perfeito seu post. Parabéns! =*


Deixar mensagem para Natália Julieta Cancelar resposta




posts por mês

assine esse blog

favoritos@del.icio.us

eu uso





Powered by FeedBurner

estatística

  • 17.040 acessos
abril 2009
S T Q Q S S D
 12345
6789101112
13141516171819
20212223242526
27282930