miércoles, 17 de enero de 2007

¿Se almacena la información independientemente del sistema?



Hola calamares.

Mis amigos-con la web 2.0 podría haber hecho un multienlace a todos ellos...- saben que desde hace tiempo me ronda por la cabeza esta idea. Y es que observo la evolución de los paradigmas de desarrollo del software y la hallo en extremo similar a la evolución del almacenamiento de información en los sistemas vivos -algo que conozco con el criterio de autoridad que me da mi título, pero que en realidad no es tanto como debiera-, o sea, la evolución del material genético en la filogenia.

Y es sorprendente hasta qué punto son parecidos: si asociamos los conceptos de programa/aplicación a los ácidos nucléicos (doble hélice de ADN o ARN), el progreso es paralelo: el cromosoma único bacteriano y la programación estructurada, el núcleo eucariota y la programación modular, o más el paradigma orientado a objetos con el encapsulamiento y el polimorfismo implementado con la presencia de la membrana celular y la funcionalidad alélica.

la evolución hacia la programación orientada a objetos es aún más patente al subir un nivel de funcionalidad -subimos una capa de abstracción en la máquina- y observamos la organización histológica -clases de células- y orgánicas -ensamblados o paquetes-...sin palabras.

En sí, una célula es análoga un objeto de la POO -instancia de una clase genérica o especie- cuya característica primordial es la de mantener un grado de autonomía funcional lo suficientemente importante como para poder ser reutilizado en una estructura dinámica de nivel superior u organismo -aplicación modular donde las haya...-. Almacena información encapsulada -o doblemente encapsulada si es una célula eucariota o nucleada-

Pues bien, barrunto que tamaña semejanza no puede ser fruto de la casualidad. ¿Y si la información, cuando crece, tiende a almacenarse en estructuras similares (homólogas dirían los biólogos, polimórficas los informáticos)? ¿Y si ES NECESARIO que la información se fragmente a partir de una cantidad crítica para poder asegurar la disponibilidad? ¿Y si para asegurar esa disponibilidad se hace imprescindible que esos fragmentos de almacenamiento se rodeen de estructuras y adquieran una funcionalidad mínima? ¿Y si, por último, fuese imprescindible para poder separar la funcionalidad "interna" de la que verdaderamente ofrece, el que se aislen del entorno, se encapsulen?

Contadme vuestras impresiones, que éste es un tema que verdaderamente me apasiona.

2 comentarios:

Pablo dijo...

No creo que nada sea casualidad, se parecen realmente mucho, aunque no se puede comparar la historia de la vida con la del software supongo que con abstracción se pueden hacer este tipo de símiles.

Para poner mi granito en tu historia voy a dar mi opinión sobre el tema.

Una de las claves es la especialización. Una única clase no puede hacerlo todo ("antipatrón blob") ¿por que? su estructura interna sería tan compleja y auto acoplada que sería muy difícil mejorar alguna cualidad sin que otra característica se viera afectada ("antipatron código espaguetti".)

Este objeto al ser utilizado aunque capaz de realizar tareas de una forma "semi decente" ninguna de sus cualidades llegaría a ser sobresaliente, o bien si alguna lo fuera, también existiría otra característica mas pobre que ante otro problema, por lo que dejaría de ser usado y su vida de uso acabaría. Irónicamente una entidad tan fuerte e independiente llegaría a la muerte de forma inevitable si tuviera que enfrentarse a problemas relativamente complejos.

Esta clase no podría existir o no podría adaptarse a cambios de los requisitos.

¿Si ella no puede quien podrá sobrevivir? Clases débiles en todos los aspectos pero a la vez sobresaliente en uno solo.

Su principal defecto es a la vez su principal virtud, ya que se ven obligadas a la colaboración para su cumplir los requisitos y finalmente formarán un equipo que irresistiblemente triunfará por su conjunto de cualidades sobresalientes.

Así mismo generalizando a la biología quizá una bacteria pueda moverse en busca de alimentos gracias a su cola y podremos encontrarla en miles de escenarios gracias a su independencia y fortaleza, sin embargo se verá relegado a un papel poco ambicioso, y no podrá superar situaciones complejas.

Una célula del ojo por el contrario puede detectar el color o la luz pero es incapaz de buscar alimento, necesita una humedad y temperatura adecuada, es débil contra virus y bacterias… ¿morirá? para evitarlo colabora con todo un sistema de reparto de alimento en la que forman parte miles de células especializadas y dependientes de otras que a su vez forman organismos y sistemas, que alimentan a la célula del ojo.

"Lo que sabemos es una gota de agua; lo que ignoramos es el océano."
Isaac Newton

Luis Guillermo Torres dijo...

Gracias Geus.

La especialización , diría yo, es la consecuencia de la elección de una de las estrategias posibles, la división de la información en entidades fuertemente ligadas, cuya persistencia depende unas de otras y constituyen unidades superiores de organización. Esta es la estrategia seguida por una línea evolutiva cuyo resultado somos nosotros, las lombrices y los melones, entre otros.

La otra, y no menos válida a tenor de su éxito, -al menos en el mundo de los seres vivos- es la división de la información en unidades autónomas, con interacciones débiles entre ellas, que no ausentes: las bacterias, representantes por excelenciad de esta estrategia, intercambian información -fragmentos de ADN denominados plásmidos, que a menudo portan genes que confieren resistencia a antibióticos, por ejemplo- entre individuos pertenecientes a la misma especie, pero también con otros emparentados más lejanamente, a niveles taxonómicos superiores, como el Género y la Familia.

Esta estrategia, no te equivoques, es de un resultado abrumador: estas unidades desconectadas son los primeros colonizadores en todos los ambientes de la Tierra, y podemos encontrarlos allá donde se nos ocurra buscar, desde las profundidaes abisales -humeros o surgencias de las dorsales oceánicas- a las altas cimas montañosas o los casquetes polares.

Sin embargo, parece que la interacción, débil aquí o fuerte en la otra estrategia, parece imprescindible.

Saludos a todos.