entramado.net

Posts tagged “programación

Platón y la programación orientada a objetos

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?


Honorables y existencialistas objetos

Photo credit: Pratap Sankar via Scandinavian / CC BY

Photo credit: Pratap Sankar via Scandinavian / CC BY

La semana pasada descubrí por casualidad el blog de Yegor Bugayenko, un blog que en tan solo una semana ha cambiado mi forma de programar, me ha hecho tomar consciencia de cómo funciona la programación orientada a objetos y lo que es más importante ha afianzado los cimientos de la moral que vengo cultivando desde hace tiempo.

Uno de sus posts que mejor resume su forma de programar, es decir, la que él considera correcta tiene como título “Seven Virtues of a Good Object“, me llamó la atención concretamente el punto 2, los objectos trabajan por contratos, a estos contratos en programación les llamamos interfaces. Me atrajo sobre todo el momento en el que dice que no debe interesarnos su origen, ni su sexo ni su religión, cosa que enlaza correctamente con otro de sus posts en el que nos invita a no discriminar objetos por su clase. Como una revelación todas las piezas del puzzle empezaron a encajar en mi mente, cuando dejas de valer por lo que eres empiezas a ser considerado por lo que haces, por tu fidelidad a la palabra dada, en una palabra por tu honor, no por aquel honor medieval rancio que no era más que una burla esencialista, si no al honor original ese por el que cumplimos con nuestras promesas.

Nota para programadores: Creo que voy a empezar a valorar mi programación respecto a la honorabilidad de mis objetos. ¿La clase X crea objetos honorables? Cuando creamos un test, lo que estamos haciendo es esto mismo, creamos un objeto y comprobamos si es honorable. El honor empieza a formar parte de mi vocabulario técnico también.


Todos usamos cookies, acéptalo ya. más información

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close