viernes, 14 de mayo de 2010

LA PROGRMACION EN AVANCES

Descripción Atp / avances tecnicos en programacion

Es IBM Business Partner de Sistemas IBM Risc/6000, IBM Netfinity, IBM xSeries, Hewlett Packard, Novell Unix Master y SCO Partner.

Tiene su sede social y oficinas en la Calle Cardenal Belluga parc.

30/1 Edificio Rio Mundo 2ª Planta, Polígono Industrial de San Ginés, de Murcia, contando en la actualidad con 10 diplomados en Informática por la Universidad de Murcia, dos Administradores de Sistemas y un responsable del departamento comercial.

Con el fin de mantener los niveles de satisfacción necesarios en todos los capítulos de la actividad de la empresa, cuenta con acuerdos y relaciones con empresas que cubren el resto de actividades: formación, mantenimiento, consultoría en Sistemas de Información, etc...

AVANCES DE PROGRAMACION

Programación de Computadores:
Ayer, Hoy, Mañana

Adolfo Di Mare

Aunque ya estamos acostumbrados a los impresionantes despliegues tecnológicos necesarios para que las modernas computadoras personales nos ayuden, pocas personas conocen cómo se logra que estas máquinas puedan funcionar.

Por un lado tenemos el equipo electrónico, compuesto de pastillas (chips) hechos de materiales especialísimos, llamados superconductores. La electrónica ha avanzado meteóricamente en los últimos veinte años, hasta el punto de que ahora cada dos años esperamos que la memoria de computador aumente al doble su capacidad, al mismo tiempo que se reduce a la mitad su precio.

Por otro lado tenemos que el computador puede ser programado. Esta cualidad ha permitido que el computador, a diferencia de otras máquinas, pueda ser aplicado a una gran diversidad de actividades. Veamos por qué.

Mediante un programa es posible hacer que el mismo computador sirva para muy diferentes propósitos. La programación permite reutilizar el mismo equipo en diferentes aplicaciones. Lo más usual es que los computadores personales modernos se usen como procesadores de palabras y como hojas de cálculo. Pero además se usan para jugar o para crear nuevos programas. Su aplicación más productiva es en el mundo de los negocios, en donde el computador puede efectuar muchas de las tareas burocráticas necesarias en nuestras sociedades modernas. Es esta aplicación la que recibe el nombre genérico de Sistemas de Información.

¿Cómo programamos un computador? Mediante un lenguaje de programación. Estos lenguajes, que generalmente son muy secos y parsimoniosos, permiten crear un programa que al ser cargado en la memoria del computador produce los resultados que un usuario de la máquina necesita. Por ejemplo, escribo este artículo usando un programa (llamado procesador de palabras) que está cargado en la memoria de la máquina. Este programa fue escrito usando el lenguaje de computador Assembler 8088, con partes algunas escritas en el lenguaje C.

El reto principal que encaramos los programadores es lograr que los grandes adelantos en electrónica se traduzcan en programas cada vez mejores. Desgraciadamente, no hemos tenido mucho éxito, por muy diversas razones. (Cada vez es más caro contratar a un programador, mientras que es más barato comprar equipo: el "fracaso" lo es sólo cuando comparamos los avances en programación respecto a los avances en manufactura de computadores).

Tal vez la más importante es que en programación todavía no hemos podido reutilizar completamente programas, o sus partes. A diferencia del mundo de los semiconductores, el universo de discurso del programador es mucho más ostil y diverso: al crear sistemas de información el programador debe lidiar con personas y modos de ser diferentes. Después de todo, a ningún gerente puede parecerle bien que el programdor le diga cómo debe ser su empresa, lo que obliga al programador a hacer un programa especializado para cada empresa, y también para cada gerente.

Pero ya hemos sido capaces de categorizar la mayoría de las necesidades informáticas de una empresa. Para esto hemos creado las herramientas de programación de Cuarta Generación, que permiten, en el 90% de los casos, producir los programas para un sistema de información de una forma expedita y correcta. Ejemplos de lenguajes de cuarta generación los son Paradox y RBase, en el mundo de las micro computadores, o LINC y DMS en el rango de las mega máquinas.

Podemos decir entonces que el problema de los sistemas de información está "suficientemente" resuelto. Todavía no es posible que las computadoras ayuden al gerente en todo lo que necesita, pero en general se obtienen buenos resultados.

Sin embargo, las aplicaciones de computadores no se limitan únicamente a este campo. Existen una gran cantidad de desafíos tecnológicos que no han sido adecuadamente resueltos. En los últimos veinte años dos tipos de tecnología para programación han sido desarrolladas: programación lógica y programación por objetos.

La programación lógica tiene sus raíces en el Cálculo de Predicados, que es una teoría matemática que permite, entre otras cosas, lograr que un computador pueda hacer deducciones inteligentes. El ejemplo clásico es el de Sócrates, que es humano, y como todo humano es mortal, entonces Sócrates debe ser mortal. En programación lógica, este programa se escribe así:
[Humano(x) -> Mortal(x), Humano(Sócrates)] ==> Mortal(Sócrates)

Japón asustó al mundo desarrollado hace unos años con su proyecto de la Quinta Generación, que usa lenguajes de programación lógica para lograr grandes avances en el campo de la Inteligencia Artificial aplicada. La verdad es que han logrado grandes avances, pero no tan impresionantes como los que uno espera. (Todavía recuerdo una de las películas de la serie de Viaje a las Estrellas, en que Scotty toma el "ratón" (mouse) de una computadora MacIntosh y le habla, con resultado nulo: las computadoras todavía no hablan, ni tampoco pueden ver. Con costos algunas tienen patas para caminar...).

La verdad es que lenguajes de programación lógica son lenguajes de gran utilidad en laboratorios de investigación, pero no han encontrado todavía muchos seguidores en las industrias.

La otra moda en programación de computadores es la programación por objetos, que es descrita por sus seguidores como el primer intento exitoso para reutilizar componentes de programas. Desgraciadamente, en ésto de los lenguajes los programadores nos volvemos fanáticos. Lo digo con conocimiento de causa, pues he sido fanático de varios lenguajes a través de mi vida: Fortran, Pascal, Prolog y ahora C++. Mi experiencia me ha demostrado que no existe una panacea, sólo soluciones que pueden ser aplicadas a problemas específicos, o a una gama de problemas específicos.