O mundo é um excelzão. Ou: Por que Pedro Abelardo adoraria programação

O mundo é um excelzão. Ou: Por que Pedro Abelardo adoraria programação

Já pararam para pensar que o mundo é um grande excelzão?

Tudo no mundo pode ser planilhado porque tudo no mundo pode ser categorizado. Tudo é uma parte de um todo maior. Tudo é categorizável. Tudo é planilhável.

O corpo humano é um classe de coisas que comporta várias partes: rosto, braços, tronco, pernas. Estas partes, por sua vez, também são classes de coisas que contém outras coisas: o rosto contém olhos, nariz, boca, orelha, cabelos. Por sua vez, estas coisas tem atributos azuis, castanho, claro, grande, pequeno etc.

Para ordenar estas coisas, coloca-se em uma tabela de 3 colunas:

Parte | Subparte | Atributos

Rosto | olhos | azuis

Rosto | nariz |feio

Rosto | orelhas | pontiagudas

Rosto | barba | castanha

Rosto | cabelo | loiro

Isto pode ser posto em linguagem de programação (python, através do Pandas) de modo a criar um dataframe:


linha_1 = pandas.Series({'Parte': 'Rosto', 'Subparte': 'Olhos', 'Atributos': 'Azuis'})linha_2 = pandas.Series({'Parte': 'Rosto', 'Subparte': 'Nariz', 'Atributos': 'Feio'})
linha_3 = pandas.Series({'Parte': 'Rosto', 'Subparte': 'Orelhas', 'Atributos': 'Pontiagudas'})
linha_3 = pandas.Series({'Parte': 'Rosto', 'Subparte': 'Barba', 'Atributos': 'Castanha'})
linha_4 = pandas.Series({'Parte': 'Rosto', 'Subparte': 'Cabelo', 'Atributos': 'Loiro'})


df = pandas.DataFrame([linha_1, linha_2, linha_3, linha_4])
df.        

Isso vai gerar o seguinte dataframe:

Não foi fornecido texto alternativo para esta imagem

Agora imagine o mesmo processo feito com absolutamente TODO objeto do mundo real. Voilà! Temos um gigante excelzão do mundo: árvores, carros, pessoas, linguagens, filmes, músicas... absolutamente tudo pode virar um dataframe. Eis que temos um big data do mundo.

Ok. Mas para quê serve um planilhamento do mundo? Para satisfazer o ímpeto de organização de um virginiano doido? Não. A justificativa é bem mais filosófica e também mais utilitária.

Um dos grandes problemas da filosofia tem a ver com os universais: os universais, na idade média, eram termos de classes de coisas genéricas, mas que não existiam no mundo real. Por exemplo, mamíferos é uma classe de coisas que engloba gatos e cachorros. Contudo, não existe "O mamífero", mas coisas individuais que mamam, como gatos e cachorros. E indo mais à fundo, não existem nem gatos e cachorros, porque mesmo eles são classes de coisas individuais. No fundo só existem seres individuais, "aquele gato" ou "este cachorro", de modo que termos como "mamífero", "gato" e "cachorro" não passam de nomes genéricos universais para coisas inexistentes. No fundo, só existem coisas reais, presentes, aqui e agora. Todo o resto são nomes genéricos. Termos abstratos universais não existem nem no mundo real, nem na mente. Os conceitos não são realidade (res), mas apenas palavras (vocis). A consequência do nominalismo: presenteísmo, empirismo, experimentalismo e uma rejeição da metafísica.

Contudo, a posição oposta do nominalismo, o realismo, afirma que o termos abstratos existem objetivamente antes da coisa (ante rem) ou nas coisas (in re) ou depois das coisas (post rem). Ou seja, o termo "mamífero" provém antes dos gatos e cachorros, estão nos próprios gatos ou cachorros ou vem depois dos gatos e cachorros. Mais facilmente: quando alguém classifica algo como "mamífero" ele o faz com base em uma idéia anterior do que é um gato ou cachorro, o faz com base no fato gatos e cachorros mamam, ou o faz com base no fato de que "mamífero" é apenas um conceito mental para designar uma realidade no mundo.

Pedro Abelardo, um medieval, assumia essa posição: nomes abstratos de classes de coisas existem, porém não no mundo real, mas somente na mente como um conceito.

Dito isso, voltemos.

As linguagens de programação orientadas à objetos, como o Python, se usam o tempo todo de classes de coisas para criar seus objetos que emulam ações no mundo real. A base da OOP é exatamente isso: conseguir classificar coisas adequadamente. Classes de coisas pertencem ao mundo real, à mente ou apenas expressam conceitos mentais?

Quando criamos classes, estamos abrangendo conceitos mentais transpostos para a linguagem de programação.

Quando criamos um dataframe no Pandas estamos trabalhando no fundo, com estes mesmos problemas filosóficos de fundo. O "excelzão" do Pandas é uma representação otimizada, depurada, organizada de nomes abstratos que contem outras coisas com atributos dentro. Isso não somente para organizar o mundo real, mas porque a linguagem natural é profundamente confusa, cheia de ambiguidades que não servem para a programação. A programação é uma linguagem que tenta ao máximo depurar a linguagem natural de suas ambiguidades para ser inteligível para a linguagem da máquina. Isso soluciona inúmeros problemas e inclusive faz coisas incríveis. Com essa linguagem artificial podemos dar ordens para a máquina fazer o que queremos. É só saber pedir com jeitinho. É só conhecer a linguagem. É só pedir, e ela faz.

Pedro Abelardo, o medieval, iria adorar uma linguagem de programação OOP porque veria que, talvez, ele foi quem chegou mais perto da realidade: nomes abstratos são conceitos mentais que surgem depois da observação das coisas do mundo real e tem valor meramente utilitário. Mas não é porque não existem, que não são úteis. Nem tudo o que é útil, existe no mundo real. Nomes abstratos e classes de coisas que podem ser planilháveis não existem mas organizam tão bem nosso mundo confuso!


Entre para ver ou adicionar um comentário

Outros artigos de Bruno D'Ambros

Outras pessoas também visualizaram

Conferir tópicos