« ¿A que nos podemos enfrentar? | Página de inicio | Roles del analista de sistemas »

29/02/2008

De estructuras y objetos

 

6ca536ea350bc733e64e0e4ab575b2be.jpgHe llegado a comprobar que el conocimiento adquirido en ciertas áreas del saber (en específico en la que se ha formado su servidora: Informática, y tratando de no despreciar a las demás y diversas áreas existentes) puede resultar realmente enriquecedora si es aplicada a la vida diaria de cada individuo, vida que si per se es compleja, lo es más formando parte de una sociedad que se reestructura de forma más dinámica, siendo frecuentemente modificada y reaccionando de forma sensible  por “agentes externos" tanto reelevantes como irrelevantes.

 

Sin embargo, agentes que pueden influir de manera decisiva en la sociedad y por lo tanto en las personas que la forman de una manera tan determinante, que son capaces de cambiarla por completo.

 

 

Menciono a la Informática, por que si de alguna forma se tratase de relacionar esta magnifica área del conocimiento, con la vida real, podríamos descubrir que sus teorías, son totalmente aplicables a la vida diaria de una persona y por lo tanto de la sociedad de la que él es activo protagonista. En sí, es el conocimiento de y para la vida, no sólo “conocimiento privativo” para ser utilizado en el campo profesional.

 

 

 

 

Una sociedad estructurada y con una forma de pensar homogénea (por lo menos eso al parecer se nos da a entender), y si se me permitiera remitir al concepto de Programación estructurada, teoría un tanto “anticuada de la programación”  me atrevería a afirmar: responsable en gran parte de los paradigmas actuales, y de los cuales se nos condiciona desde infantes y concluye cuando se desarrolla la capacidad de críticidad y razonamiento (si es que algún día nos preocupamos por desarrollarlas). Sin embargo, así como la base para aprender a programar es la programación estructurada así tambien el ser humano necesita bases de las cuales partir para el desarrollo cognitivo, razonamiento y criticidad en etapas posteriores. Empero, resultando una sociedad totamente secuencial, estructurada, y rígida.

 

 

 

El problema es cuando el número de individuos (líneas de codigo)  que forman a esta sociedad (programa), son una gran cantidad, que es transformada en una  sociedad tan homogénea y a la vez tan heterogénea; aumentando la complejidad de la misma, haciendo que cada individuo se vuelva sólo una “línea de código” más  en todo este gran “programa”, haciéndolo más confuso de lo que ya de por si era, imagínense: ¿como podríamos saber exactamente la “línea de codigo” que es errónea, entre miles de millones de “líneas de código” que forman parte del “programa”?. Sin duda sería una odisea. Creo que aún teniendo un “debug” no sería de una gran ayuda. ¿El separarlos por módulos, sería una solución viable? (Programación Modular), ¿No acaso ya lo hicimos?: separamos a las personas (líneas de código) de nuestra  sociedad (programa) en clases sociales (módulo) basados en un simple indicador: la cantidad de dinero que se posee; en clase baja, media baja, alta, media alta, ¿Ah servido esa "solución"?. Tambien hemos separado por jerarquías (Programacion por capas) en jefe, subjefe, empleados. ¿Y tambien ha servido?. Hemos separado por religiones (católicos, metodistas, cristianos, testigos de jehova), ¿Ha servido para algo?... ¿Hemos podido detectar donde esta el error en este gran “programa”? Me temo que todas las respuestas anteriores son negativas.

 

 

 

Igualmente si tomamos en cuenta a este programa como componente de un sistema, y como tal por definición en la Teoría de Sistemas: donde todos los módulos o programas estan “organizados y relacionados entre sí”, para que mediante su interacción logren objetivos definidos: entonces esto se vuelve más aterrrador cada vez. Sinceramente no me gustaría pensar en el algoritmo resultante (Claro esta, si con un algoritmo pudiesemos resolver este problema, que en lo personal, lo dudo).

 

 

 

Sin embargo existe otra nueva opción para poder abordar la misma problemática, en comparación a la Programación Estructurada, pero desde otro enfoque: desde la Abstracción.

 

 

 

La abstracción, como nos menciona la Programación Orientada a Objetos, hace enfásis en el ¿Qué hace?, no en el ¿Cómo se hace?, así como el aislar toda aquella información que no resulta reelevante a un determinado nivel de conocimiento, el proceso mental que permite a un individuo entender el concepto de un objeto, sin tener al objeto de manera tangible. Si pudieramos aplicar el concepto de programación orientada a objetos, donde definimos a los objetos para enviarles un mensaje solicitando que realicen sus métodos por si mismos (mensajes como el desarrollo de críticidad, razonamiento y reflexión y que ademas los lleven a la práctica por convicción propia), entonces y sólo entonces, al parecer el “programa” (sociedad), pudiera ser examinado en base a los individuos (objetos) que lo conforman. “Objetos” con capacidad y potencial, razonamiento, conocimiento, experiencia y sentimientos (atributos).

 

 

 

Lo que transformaría nuestra manera de ver a una sociedad (como masa), a los individuos como solución, individuos como objetos con herencia (valores propios y de padres a hijos), con polimorfismo (comportamientos diferentes, asociados a objetos distintos pero con un mismo mensaje) y por supuesto de un objeto que puede relacionarse con otros objetos, no sólo de su misma “clase” si no también de otras clases diferentes en el mismo entorno.

 

 

 

Y ahora la interrogante es: ¿Qué paradigma de programación puede ser utilizado  para intentar resolver este problema: Programación Estructurada o Programación Orientada a Objetos?. La respuesta es bastante clara.

 

 

 

Finalmente con este post puedo reiterar una vez más: No sólo de bits y bytes vive un Informatico, si no tambien del conocimiento adquirido y aplicable tanto en lo profesional como en lo personal de esta fantástica área del conocimiento llamada Informática, área en la cual, hoy más que nunca; estoy orgullosa de haberme formado como profesionista.

 

                                                                                                       c35d062e4a14c9ea1c57ba46b458cb46.jpg

22:20 Anotado en Blog | Permalink | Enviar a Email

Dejar un comentario