España // elmundo.es

sábado, 2 de abril de 2011

Sistemas Modular Orientado a Objetos Unix MOOU

Una de las bellezas de los antiguos sistemas operativos unix era la filosofía con la cual estaban desarrollados. Un sistema operativo unix tenia dos filosofías básicas que lo convertían en los sistema más potente de su época. 
  • Todo es un archivo.
  • Los programas solo cumplían una sola tarea pero la cumplían bien.
Esto puede no tener sentido en el mundo de la computación de hoy, pero tenia mucho sentido cuando solo se trabajaba en modo texto desde una consola. Uno le decía a tal programa guarde este texto en este archivo y una vez que el programa terminara de guardar ese texto uno le decía a otro programa que eliminara los caracteres vacios al principio y al final. No se si se me esta entendiendo correctamente? Trato de decir que la potencia de estos sistemas se basaba en dar instrucciones a muchos programas para que trabajaran en conjunto.

A medida que la computación se fue masificando (halla por los 80), muchos hombres de negocios entendieron que esto era  muy complicado de usar para los usuarios finales y optaron por las interfaces gráficas, (que dicho sea de paso no lograron ser estables hasta 2005). El mundo de los sistemas de interfaces fue desarrollado casi sobre ensayo-error, arrastrando sobre este un desarrollo “parche sobre parche”, todos los sistemas y sus programas crecieron en complejidad y funciones pero no de una forma armónica o planificada, sino más bien desde una mirada orientada a ganar terreno rápido dentro del mercado, esto se puede ver tanto en sistemas operativos privativos como libres.

Volviendo al tema, habíamos dicho que los sistemas operativos unix tenían dos filosofías que lo convertían en sistemas potentes. 

La primera dice que todo es un archivo, pero absolutamente todo, desde los componentes de hardware (como los discos duros, placas de video, microprocesadores, memorias, etc) hasta los mismos programas, sus librerías y los archivos del usuario. Esto le brindaba la flexibilidad al sistema al poder decirle a un programa que usara cualquier elemento de la computadora usándolo como un archivo.

La segunda filosofía de unix trata sobre un programa una función y nada más, solo se podía hacer una sola cosa con un programa. Esto le brindaba mucha potencia al sistema por que en vez de necesitar estar corriendo un programa enorme que intentase hacer de todo y pudiera tener fallas, el sistema trabajaba con muchos programas pequeños que se cerraban una vez terminado su funcionamiento y el sistema siempre se mantenía estable y con recursos disponibles...

Hoy en día solo los sistemas operativos libres mantienen la filosofía unix, ya que en estos a pesar de contar con interfaces gráficas ya desarrolladas, todavía mantienen la riqueza de poder trabajar como opción con una terminal de texto. Esto le brinda mucha flexibilidad a la hora de trabajar para muchos de los usuarios que trabajamos con sistemas operativos libre como GNU/Linux o Freebsd. Pero esta filosofía de modularidad unix no se ha extendido a sus sistemas de interfaces brindando programas sumamente complejos e inestables.

Todo esto me ha inspirado y se me ha ocurrido una nueva filosofía a la hora de escribir programas para Linux que puede llegar a posibilitar a desarrollar nuevas y potentes aplicaciones a la cual yo llamo sistema modular orientado a objetos unix.

En teoría en un sistema modular orientados a objetos unix se basa en un par de filosofías.
  • Todo es un archivo.
  • Los módulos cumple solo una función, solo trabajan sobre objetos y están disponibles para todos los programas.
  • Los programas solo pueden trabajar con archivos y con módulos.
Que puede tener de bello esto?

Mucho, un sistema modular orientados a objetos unix permite:
  • Desarrollar aplicaciones de forma mucho más sencilla rápida y divertida.
  • Brinda estabilidad al nivel de aplicación al trabajar solo con módulos que han sido programados robustamente.
  • Permite obtener mejoras en todas las aplicaciones, por que cuando mejora un moóulo mejora todas las aplicaciones que la usan. Disminuye el uso de bibliotecas donde ciento de instrucciones son empaquetadas aumentando la inestabilidad.
  • Propicia un entorno donde la interoperabilidad entre aplicaciones es grande permitiendo incluso a las aplicaciones de diferentes programadores trabajar con el mismo objeto y usando los mismos módulos en simultaneo.
  • Estimula una fácil curva de aprendizaje tanto en el usuario como en el programador, al solo necesitar aprender a trabajar con los mismos modulos. Se desarrollarían muchas aplicaciones nuevas.
  • Se alcanzaría un mayor grado de personalización a nivel interfaz de usuario permitiendo a cada usuario acomodar ciertos módulos dentro de la interfaz de cada programa.
Caso práctico:

Un procesador de texto.
El resultado final de un procesador de texto es guardar un texto en un archivo. Para esto debe recibir los objetos que el usuario va añadiendo al programa texto, fotos, paginas, etc, cada uno de estos es un “objeto” y cada uno tiene sus “propiedades”, el texto además de la cadena de texto tiene propiedades como Fuente, Alineación, color de fuente, color de fondo, interlineado, etc. Actualmente cada programa usa funciones propias de su librería y como consecuencia cada programador debe desarrollar casi desde cero sus funciones, ahora si remplazamos cada una de esas funciones por módulos base del sistema operativo se lograría una uniformidad y desarrollo mucho más avanzado en los entornos de escritorio libres.


Idea de Sistema Modular Orientados a Objetos Unix de Lionel Vladimir Bino licenciado bajo Creative Commons Atribución-NoComercial CompartirDerivadasIgual 3.0 Unported License.

ENLACE

Que lo paséis bien en este lugar

Aquí os dejo un tema "número 1" de hace 30 años
Kim Carnes - Bette Davis Eyes

Y aquí os dejo un tema más actual
Junior Caldera - What you get


1 comentario:

  1. Sí, si la programación gráfica orientada a objetos es lo mejor, pero hasta hace muy poco la opción Java, la más universal, era casi impracticable, cuando hablamos de grandes aplicaciones, por la cantidad de recursos que consumía, en ordenadores de andar por casa. Sólo ahora los ordenadores de sobremesa pueden empezar a soportarla.

    ResponderEliminar