Superando los límites de la Orientación a Objetos (Parte 6)

Sigo transcribiendo (notas no textuales) la charla de Alejandro Reimondo de Smalltalking.

Como antes, transcribo lo de Alejandro en cursiva:

Cuando empieza a popularizarse? Tiene que ver con toda esa historia y el vínculo con la ciencia. Y otra cosa interesante, plantea un camino iterativo de superación. Uno+uno, 2+1, nos alienta a ese inductivismo de hacer objetos hasta que te mueras.

Ahora, Alejandro embate contra la especialización, yo lo veo como recordatorio de no olvidarse del sistemismo.

Hay grandes obras que se han construido de esta manera, en ingeniería, utilización de recursos, las represas, ingeniería nuclear, son obras dignas de todo nuestro respeto, pero no podemos dejar de ver los efectos que todo tiene (peces muertos, una gaviota picoteando), y cuando veo eso, en Atucha 2, los que lo construyeron, ya no están. Cuando los peces empezaron a flotar, ellos ya no estaban. Trataron de llamar a los ingenieros. Pero no, ese no es mi área, no es mi pedazo de la torta. No forma parte de mi óptica, se llama a biólogos, hay un problema que la usina produce tres grados más que van al lago, más temperatura, menos oxígeno, menos peces. ¿Que podemos hacer? Pongamos peces que necesiten menos oxigeno. ;-). Tratamos de emparchar, en vez de ver lo que ya hicimos. No digo que está mal construida la usina, sino que cada vez que se enciende una luz, se proyecta una sombra.

Hay gente que protesta, en el Congreso, cuando ya está hecho, y son los que se dedican al arte, y ninguno entiende mas allá de su torta. Cuando más es su estudio profundo, más huecos tiene, y más temas no son de él.

Aparece un mensaje sobre el “slide” “Smalltalk como plataforma iterativa”.

Lo interesante de Smalltalk es hacer cambios y ensayos, es un proceso iterativo. Quien trabaja de esa manera, va a ver a herramientas de Smalltalk, más que un lenguaje. Valora un browser, un inspector. Son muy valorables las herramientas que hay en ST.

 
La más notable, ver para creer. Quien ve algo, cree en ese algo, nadie cree en algo que no vió. El identificar un objeto, verlo, implica no dudar sobre su existencia, es algo valiosísimos, es algo muy utilizado cuando trabajamos con objetos, ¿por qué? ¿por que es así la realidad? No, porque queremos que otro no dude.

No lo vean que estoy diciendo que esta mal, hay puntos de valor que encontramos con objetos.

Acá hubo una discusión sobre modelo, no la seguí completamente.

Yo no quiero decir dónde tienen que ir los demás, sino que gente de esta región, busque algún ancla en estas críticas, para propugnar un avance. Lo mío no es ataque de la ciencia, sino crítica.

Yo reveria esta postura, estudiaría Bunge y el sistemismo, la ciencia no es como EL metodo que describe Alejandro.

Entonces, se ve a Smalltalk como un completo y robusto de conjunto de componentes “re” usables.

Cuando uno habla de POO, DOO, LOO, esta la palabra, y hacemos orientado a objetos. Esas palabras empiezan con distintas letras (P, D, L) y termina con O de Objetos. Pero nadie se detiene en la O del medio.

Vamos a POO, dice que hay algo que es programación con objetos, pero POO no lo es, sino sólo orientado a objetos. Todos toman que la “orientada” siempre va. Pero se está diciendo que hay algo que es programación con objetos, al que no van a llegar.

En las revistas de Smalltalk, se dibujó un puente entre lo tradicional y objetos. Planteamos una transición, para llegar a objetos. Eso fué hace veinte anios, pero todavía estamos encima del puente, sin ver la O del medio, no hemos abandonado lo de “orientado”.

Tenemos una tecnología para trabajar sobre la realidad y no la estamos abordando. No haciendo dibujos sobre la realidad, sino que es el instrumento para llegar a la realidad misma. Si nos quedamos en el ver, pero no vamos al tocar, y realimentar con nuestros sentidos, vamos a estar del lado de lo orientado, y en nuestros problemas de como pensamos al mundo.

Acá de nuevo, hubiera sido interesante mostrar un ejemplo de “tocar” objetos en Smalltalk, contra “ver” diagramas, código y otros artefactos.

El tema de todo esto de “ver”, de decir, “esto es”, y nos produce una pelota, una caja, y decir que lo que no esta dibujado acá no existe, y esto es una caja negra, nos pone afuera. Eso es el encapsulamiento, tiene un monton de virtudes. Pero, ¿cuales son las limitaciones? ¡Qué mejor que usar cajas negras! ¡Qué mejor que no reinventar la rueda! Nos estamos cortando un camino: los que producir software, queremos producir software, que mejor que hacerlo nosotros, que es nuestro trabajo.

Acá yo tengo una posición: hay distintos tipos de programadores. Hay quienes les gusta hacer la rueda, y otros que quieren una rueda ya hecha, para construir nuevas cosas encima de ella. Alejandro, veo, está muy centrado en pensar que el camino del desarrollo del software es armar algo sustentable por uno mismo o por su grupo de trabajo. Hay evidencia de excelentes programadores, equipos, y proyectos, donde lo que se hace es montarse sobre lo ya hecho por otro, para seguir avanzando y creando cosas nuevas sobre eso.

Entonces, en algun ámbito, se dice que Smalltalk es completo y robusto, que es un conjunto de componentes re-usables.

¿Que es re-uso? Pregunta tonta si la hay.

Alejandro propone una interpretación de reuso, que sólo la encontré en su discurso.

- Poner un componente, y lo usas en un sistema, y en otros sistema. Es no es reuso, es uso.

Acá alguien acotó que un “un objeto es él, y las relaciones con otros”. De acuerdo, es una descripción cercana al sistemismo.

No es reuso, es uso. Usabilidad en el software se busca desde los 50, salio ADA, Pascal. La diferencia es que todos hemos cambiado, y las personas, ahora lo toman con naturalidad, entonces no. El planteo de Modula fueron componentes. Hoy los vemos usados. Pero eso da usabilidad. Nos permite usarlos varias veces. Pero no es reuso.

Una instancia de una abstracción, es válida en un contexto. Cuando queremos usarla en otro contexto, es kamikazee. Entonces, esto no nos anda en otro lugar. La abstracción, si es rica, es interesante. Las altas abstracciones son poco valiosas, están desprovistas de información, las que están más abajo, tienen demasiado vínculo con el contexto.

Sería interesante ver un ejemplo concreto de abstración alta, baja, instancia de abstracción y contexto.

Lo valioso a nuestro nivel de desarrolladores, es lo intermedio. Si la abstracción es intermedia, cuando vamos a otro contexto, lo que hacemos es refinarla, porque nuestra intención es instanciarla en con éxito, estamos partiendo de una instancia refinada, que no es lo mismo que usamos en otro sistema. Eso es lo que tiene de valor en nuestras abstracciones, el poder refinarlas para usarla en otro sistema.  Ese refinamiento no se puede lograr a nivel de instancia.

Los componentes no son reusables, no es posible su reuso, es posible el uso. Y es inocente, es lo que ocurre en la industria. Los componentes no son importantes. El reuso es aplicable a las abstracciones pero no a los componentes. El reuso implica refinarla. ¿Que conecta una abstracción y una refinación de esa abstraccion? El tiempo, y decimos, “mi sistema evolucionó″.

Quien ve reuso en componentes, tiene una vision ingenua.

Las librerías de Modula, no permitían hacer práctico el refinamiento, y ahí sí tuvo un lugar Smalltalk, que sí pudo hacer eso. Y HOY tenemos un conjunto de componentes robusto, pero que es resultado del tiempo.

Quien lo ve desde ese punto, valora su contenido, se fija lo que hay acá, y le sirve para desarrollar sistemas. Qué frameworks de clases hay, y como podemos usarlos.

Acá hay mucho para hablar, y que hacemos frecuentemente en Smalltalking, cada charla todos los meses.  Un componente es un instancia, planteado como una caja, y la usamos en distintos contexto, lo valioso es que lo llevo a otro contexto y anda.

Pero puesto en distintos contexto, puede no servir. ¿Que cambiar? ¿La forma? Eso es usarlo. Si cambiamos la idea, es reusarlo. Hay un proceso destructivo de las viejas ideas, y está sostenido en el tiempo. No es un proceso donde esto viejo no me importe, y lo escribo de nuevo para otro mercado.

Smalltalk me da el soporte para cambiar la idea.

¿Qué es lo constante cuando aca decimos tiempo? Lo constante es uno, es la trayectoria de uno como ser humano. Dependiendo de las oportunidades que tengas de usar tus componentes o abstracciones, pero el soporte son las personas. Uno no es el mismo a medida que pasa el pasa el tiempo. Entonces, Smalltalk es un soporte para el cambio de personas.

No tienen valor las cosas, no compres componentes. Sabemos hacer ruedas.

Lamentablemente, todos los libros dicen lo que se conoce hoy, no dudan de eso por la informacion que hay. Cuanto lugar hay para la duda, no existe. No podes pensar de otra manera. Tenemos una punta para desenroscar algo mas, y hacer un aporte. Hay algo que no se ve, que está oculto, y se lo niega.

Vemos analogías en otros lados, fuera de informática, siempre hemos usado la misma forma de disectar el mundo, y lo que no vemos no existe. No digo que no tengamos que hacerlo asi, sino que hay puntos sobre los que podemos trabajar.

Post relacionados

Superando los límites de la Orientación a Objetos (Parte 5)
Superando los límites de la Orientación a Objetos (Parte 4)
Superando los límites de la Orientación a Objetos (Parte 3)
Superando los límites de la Orientación a Objetos (Parte 2)
Superando los límites de la Orientación a Objetos (Parte 1)
Mas allá de objetos

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez

This entry was posted in 3462, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>