La pizarra de Litox

Un blog de la Red de las Indias

Grupo de Cooperativas de las Indias

Platón y la programación orientada a objetos

En el siglo III a. C. Platón había conformado ya su teoría de las ideas, hoy nos sirve para explicar la programación orientada a objetos y nos ayuda a plantear las dudas sobre ésta, dudas que la filosofía tampoco supo responder en su momento, nos vamos a adentrar en este mundo de las ideas y a intentar desvelar sus secretos.

Según las ideas de Yegor Bugayenko, los buenos objetos en programación son una representación de los objetos en la vida real, por ejemplo no tendríamos un objeto Temperatura, si no más bien un objeto Termómetro que podríamos consultar, esta es la conclusión a la que se llega cuando extraes todo el pensamiento procedimental (procedural) de tu programación y te centras en utilizar únicamente objetos. El objeto se convierte en la abstracción en software de la realidad, cuando escribimos software estamos plasmando nuestras idea, nuestros conceptos, en código. Código que se ejecuta en máquinas y a su forma «vive» sobre esta con sus comportamientos y su interacción entre objetos. Estamos creando en este caso un mundo de las ideas sobre silicio, estamos proyectando nuestra mente en software. ¿Pero con qué finalidad? Trasladar esas ideas a otras personas ¿Cuál si no es el objetivo del software? Para ésto, como títeres en la caverna de la máquina, proyectaremos estas ideas sobre la pantalla y el altavoz, esperando que el usuario entienda nuestras ideas o simplemente las utilice en un propio beneficio. Se dice que el código almacena el conocimiento, no solo esto, además lo puede transmitir en sus dos representaciones, en su ejecución sobre una máquina como acabamos de ver y en una más básica, la lectura directa del código.

Y con esto llegamos directamente al lenguaje, porque cualquier lenguaje de programación no es más que otro tipo de lengua como el alemán o el italiano, pero con un vocabulario muy básico, las librerías, frameworks y en general el software orientado a objetos se encargan de alimentar ese vocabulario, creando una correspondencia directa entre palabras, ideas y software. Algo mágico tiene el lenguaje, sin el que el pensamiento conceptual tendría sentido, el ser humano no deja de crear y crear lenguas para comunicarse de distintas formas. Entonces mi duda es, ¿El lenguaje es una representación del mundo de las ideas del que hablaba Platón? ¿O, realmente los lenguajes SON es ese mundo de las ideas?

No veo poca diferencia entre estas dos preguntas, en el segundo caso la inteligencia artificial se podría conseguir aumentando el vocabulario sobre la máquina hasta que acoja el universo entero, en el primero aún deberíamos buscar el origen de todos los lenguajes, remontar el río hasta la fuente de la inteligencia. Otra opción es negar la mayor, porque el platonismo es hegemónico en nuestra civilización, es muy difícil de negar y siempre nos vamos a encontrar con ciertas verdades universales irrebatibles. Pero, ¿a dónde podemos llegar si desmontamos la teoría de una realidad abstracta sobre todos nosotros?

«Platón y la programación orientada a objetos» recibió 6 desde que se publicó el sábado 30 de septiembre de 2017 dentro de la serie «» . Si te ha gustado este post quizá te gusten otros posts escritos por Carlos Sanmartín.

Comentarios recibidos en este post y unidos a la discusión global de todos a través de la Matriz, nuestro espacio conversacional.

  1. Hola, Carlos!

    Como esta pregunta ¿Qué diferencia hay entre un pez y un salmón? 🙂

    La POO puede interpretarse como idealista, pero tampoco colisiona con el materialismo. Depende de la naturaleza que se le de al concepto.

    Según la metafísica materialista de Spinoza, los conceptos son inmanentes y sólo la Naturaleza se creó a sí misma (lo que implica que es infinita: si la materia la creó la materia, antes tenía que haber materia que a su vez fue creada por materia, hasta el infinito: no hubo origen)

    La POO parece idealista por analogía a la filosofía platónica, pero deja de serlo en cuanto es la Naturaleza la que produce los conceptos y no al revés. Aunque se interprete con la intención de acercarla al idealismo, las clases en POO serían en ese caso representaciones de la Idea, como un arte geométrico de lo Bello en sí, pero no la Idea misma, la cual es insubstancial mientras la clase es un producto.

    Quizá los que inventaron la POO eran idealistas, pero en todo caso se puede hacer como Spinoza y arrojar el cadaver de dios al universo 😀

    • Hola Gustavo, que bueno verte por aquí!
      Pues tendré que leer a Spinoza para entender eso de los conceptos inmanentes.
      Otra cosa que me gusta pensar es, si realmente es la Naturaleza la que produce los conceptos o sólo lo hace nuestra mente, en todo caso, si pensamos así, siempre nos quedan los postulados matemáticos que no pueden pertenecer al mundo material, pero tampoco creo que entren en nuestro mundo mental/conceptual. Que 1+1=2 es en todo caso transcendental, ¿no? me interesaría saber que diría Spinoza al respecto.

  2. La obra de Spinoza que daría claridad a tus dudas es “Ética demostrada según el órden geométrico”.

    La aritmética puede ser idealista o materalista.

    Idealista: Uno es sumado a uno. La acción (el Verbo) es ejecutada por un sujeto externo a la operación y los sumandos son ambos objetos. Esto es como decir “Hágase la luz”.

    Materialista: Uno suma uno. El número es el sujeto que realiza la acción de añadirse y no hay nada externo que la ejecute. El otro operador es un modo.

    • Seguiré estudiando esto. Pero ya en principio me llama la atención, y volviendo al tema del post, que si expresamos lo que dices en lenguaje de programación nos queda de esta forma:
      Idealista:
      var suma = 1 + 1

      Materialista:
      var suma = nuevo Número(1).Más(1).Valor()

      No sé si se entiende el segundo ejemplo en pseudocódigo, el primero es lo más parecido a nuestro lenguaje matemático de toda la vida, el que más acostumbrados estamos. Si lo analizamos como lenguaje de programación diríamos que es imperativo, el segundo en cambio es programación orientada a objetos totalmente. Curioso ¿no?

  3. Se entiende. Y bueno, en POO en realidad es lo mismo, si «Todo es un objeto». Así «1+1» es lo mismo que algo como 1.sum(1), o más en bruto 1.+(1)

    Me refería a cómo se piense la operación artimética, no tanto a sus significantes. Quizá el lenguaje LISP sea más dado al idealismo, la suma se expresaría: (+ 1 1). Primero se realiza una acción (¿Quién la realiza?) y luego los operadores complementan la acción (¿Ninguno es sujeto?), mientras que en POO primero llega el objeto y luego éste realiza una acción. De hecho, el primer objeto sería el propio programa que es el objeto que crea el resto de objetos del programa y sólo el objeto raíz es causa de sí (es el único objeto que no ha sido creado por otro objeto). A menos que el programador sea causa del objeto raíz de los programas… y así al final llegamos a que los programas son materiales si la Naturaleza es material (una clase es un producto), o los programas son ideales si la Naturaleza fue creada por algo insubstancial (una clase es una Idea).

    • Bueno por la misma en LISP podrías decir que el interprete es el que ejecuta la acción, es tu objeto raíz.
      Lo que no veo es como en POO puede una clase ser un producto. ¿Cuál es tu definición de producto? Un producto podría ser un objeto, una instancia concreta de una clase, pero no la clase en sí, que es la Idea, plasmada por el programador. Sigo llegando a la conclusión de que la POO es idealista.
      Nuestra cabeza está amueblada para buscar sujetos que ejecutan acciones, esto tiene mucho que ver con el lenguaje que es otro de los temas del post, ahora que lo pienso, posiblemente el lenguaje nos llevó a la idea de Dios.
      «En el principio existía el Verbo, y el Verbo estaba con Dios, y el Verbo era Dios.» Juan 1:1

Deja un comentario

Si no tienes todavía usuario puedes crear uno, que te servirá para comentar en todos los blogs de la red indiana en la
página de registro de Matríz.

Grupo de Cooperativas de las Indias.
Visita el blog de las Indias. Sabemos que últimamente no publicamos demasiado pero seguimos alojando a la red de blogs y a otros blogs e iniciativas de amigos de nuestras cooperativas.