"La informática que apareció y se desarrolló en la segunda mitad del siglo XX, ha producido ya una profunda transformación en la vida del hombre. En el momento actual se aplica a prácticamente todas las actividades humanas, científicas, administrativas, industriales, comerciales, médicas, militares, deportivas, artísticas y profesionales de toda índole".
Hace poco más de dos décadas se acuñó
el término de computación personal para registrar la aparentemente
descabellada idea de que la gente, y no sólo las empresas grandes,
podían estar interesadas en adquirir y usar un computador.
El próximo paso lo estamos viviendo ya --conectar todos los computadores y procesadores
En 1981, 213 computadores formaban la red más grande de computadoras que el mundo había visto. Hay en día, más de 72 millones de computadores conforman Internet [Fuente: Internet Software Consortium, enero 2000] y un número significativo adicional se conecta a Internet vía modem a través de proveedores de servicios de Internet. En total se estima que 359,8 millones de personas accesan Internet [Fuente: NUA Internet Surveys, Julio 2000].
El matrimonio de la tecnología de telefonía celular, posicionamiento global satelital (GPS) y computación hacen inevitable que los investigadores empiecen a manejar conceptos como el de computación ubicua --¡uno de ellos propone que hasta las paredes podrían hacer uso de esta tecnología para anunciar su ubicación para una persona ciega!
De la computación personal se pasa a la computación íntíma y la computación vestible (en Inglés wearable computing): la posibilidad que nanocomputadores monitoreen y, consultando sistemas que pueden estar hasta en otros paises, ayuden a regular algunas de las disfunciones corporales de que podamos o podríamos sufrir tales como diábetes, cardiopatías y asma.
Para algunos estos conceptos suenan a ciencia ficción; para otros, forma parte de sus proyectos de trabajo.
El futuro de la computación está marcado por la computación celular y ese gran programa piloto que es la teleraña a escala mundial, el WWW. El futuro está marcado por un proyecto de utopía que sueña que ese vasto ciberespacio que se está tejiendo literalmente liberará nuestras mentes de las tiranías físicas de la realidad como la distancia, el tiempo y la complejidad. Según sus proponentes más radicales pareciera que los problemas de nuestra comunidad física se disolverán en la realidad digital y virtual de nuestras cibercomunidades.
Creo que el momento es propicio para leerles dos citas:
"...edifiquémonos una ciudad y una torre, cuya cúspide llegue al cielo." (Génesis 11:4)Sí, Babel acecha. El futuro no sólo está está marcado por el optimismo tecnológico sino por nuestros pasados, profundos y míticos, como Babel. Babel es un mito bíblico que también ejemplifica el mecanismo aristotélico de las tragedias griegas: un orgullo diabólico y cegador (hubris) que desemboca en desastre, en castigo divino."Cuando se proclamó que la Biblioteca abarcaba todos los libros, la primera impresión fue de extravagante felicidad. Todos los hombres se sintieron señores de un tesoro intacto y secreto. No había problema personal o mundial cuya elocuente solución no existiera: en algún hexágono. El universo estaba justificado, el universo bruscamente usurpó las dimensiones ilimitadas de la esperanza [...] "
Jorge Luis Borges: La Biblioteca de Babel, 1956.
Para entender cuál es el o los Babel que acechan a la computación tenemos que entender mejor qué es la computación.
Y allí nos topamos con un primer asomo de babel: ¿Computación,
informática o sistemas?
Y eso sin contar con que durante varios años dirigí la formación de Ingenieros en Sistemas y que me he atrevido, a juzgar por el título de esta charla, a opinar sin vergüenza sobre el campo de la Informática.
Aparentemente pueden distribuirme en una matriz 3x3:
|
|
|
|
|
| Computación | |||
| Informática | |||
| Sistemas |
En la realidad, no soy tan polifacético, y contrario a las expectativas de mucha gente a que me presentan, no sé cómo reparar PCs o cómo evitar que se caiga Windows.
Curiosamente, un Ingeniero de Computación no diseña ni construye computadoras --en Venezuela al menos donde no existe la carrera de Ingeniería del Computador, eso se lo dejamos a los Ingenieros Electrónicos.
Históricamente el computista debe su nombre a su interés profesional por los cómputos, o sea ¿que es una especie de hombre que calculaba? Esta broma no está muy lejos de la realidad. El científico de la computación investiga qué es computable y las propiedades que tienen esos cómputos o computaciones.
El campo es más amplio e interesante de lo que pueda lucir a primer golpe de vista, ya que los cómputos en que estamos interesados no se limitan a cómputos con números, sino que nos interesa el cómputo con cualquier tipo de símbolo, así como un profesional con que nos identificamos mucho, el especialista en Lógica Simbólica le interesa estudiar los razonamientos y no sólo los razonamientos con números.
Ojo, que con ese comentario no quiero menospreciar a los cómputos numéricos. Hacer que el computador se aproxime, por ejemplo, a los números reales constituye uno de los primeros obstáculos en la construcción de la torre de Babel. Piénsenlo, en una máquina que puede almacenar un número finito de símbolos hay que aproximarse a un sistema infinito de números que es tan infinito que entre cualesquiera dos de ellos existen infinitos números también. Cada vez que calculo una operación con la aproximación que escoja, corro el riesgo de perder precisión. Como el computador es tan rápido, puede hacer tranquilamente mil millones de operaciones por segundo, cada una de las cuales se puede ir alejando más o menos rápidamente de la solución real. El especialista en Análisis Numérico o Cálculo Numérico dedica su vida profesional a buscar métodos que no se alejen mucho de la solución real y que le permitan a los científicos, economistas e ingenieros de distintas ramas (civiles, mecánicos, aeronaúticos, médicos, electricistas) confiar en sus cálculos.
Volviendo a los científicos de la computación, a estos les interesa más otro tipo de problemas, como por ejemplo si es posible computar si una computación cualquiera termina. Este es un problema clásico del área de Ciencias de la Computación conocido como el Halting Problem (o problema de parada). Es un problema importantísimo, pues de existir solución podríamos ahorrarnos mucho tiempo perdido y angustia.
Hace unos 60 años, Alan Turing, demostró que más que un obstáculo, la construcción de la torre de Babel tiene un límite:No hay forma de determinar para cualquier computación, si ésta va a terminar. Es decir, no todo lo que queremos computar es computable.
Pero los científicos de la computación son gente muy tenaz y no se da por vencida cuando encuentra un simple no, por contundente que sea. Si un problema no es computable, tal vez sea computable una versión más restringida del problema. Por ejemplo a lo mejor lo que realmente me interesa es si un programa en particular termina --y si el programa es suficientemente pequeño y especial-- puedo aplicar técnicas de demostración automática de correctitud de programas para demostrar que termina.
También puedo buscar heurísticas interesantes, es decir un método de cómputo que no me garantiza una solución, pero que lo encuentra a veces. Hoy en día, un área fascinante de investigación son heurísticas que garantizan que encuentran una solución con cierta probabilidad, es decir que garantizan que con, digamos 90% de probabilidad dan con la solución correcta. Claro que en tal caso, hay que vivir con el hecho de que con 10% de probabilidad el computador presenta una solución incorrecta. ¿Y si además pudiera garantizar que la solución no está equivocada en más de 20%?
Cuando los científicos de la computación encuentran cómputos que sí terminan, entonces les gusta estudiar sus propiedades:
Les dije sin embargo que los científicos de la computación son tenaces, pero no les he dicho que también pueden ser muy ingeniosos. Resulta ser que descubrieron la forma de indicar en qué tiempo terminen, independiente del computador que ejecute el problema. Claro que el resultado no se mide en segundos, sino en pasos; pero si luego mides cuánto tiempo te toma un paso en tu computador favorito, es facil determinar en cuánto tiempo corre el algoritmo.
Por ejemplo un problema interesante es el de planaridad de un grafo. Un grafo es un conjunto de puntos (denominados vértices) conectados por líneas (denominadas arcos). En un grafo no interesan la forma o largo de las líneas dibujadas, lo que interesa son las conexiones que define entre los nodos.
Los estadounidenses Tarjan y Hopcroft encontraron otro algoritmo (método preciso que describe cómo hacer un cómputo, independiente de un computador) que tarda orden lineal, es decir sólo requiere del orden de 100 pasos --lo que significa que encontraría la misma solución del problema anterior en una décima de segundo.
Sin embargo, y he aquí otro límite de Babel, no siempre
lo computable se puede computar en un tiempo razonable (evidentemente 31
años no es un tiempo razonable). Existen problemas que caen en una
familia llamada NP (no polinomiales). Estos problemas tienen soluciones
computacionales que dependen exponencialmente del tiempo, es decir un problema
de tamaño N puede requerir del orden de 10N
pasos. El problema abierto más importante de la computación
es si existe una forma de resolver algunos de estos problemas en tiempo
polinomial. La importancia es grande, pues la familia es tan unida que
los científicos de la computación han demostrado que si se
resuelve un miembro de la familia, se pueden resolver los demás.
El problema radica en que para los Ingenieros más tradicionales, nosotros construimos artefactos muy poco tangibles físicamente: el software, es decir los paquetes de cómputos no ocupan espacio, no generan calor ni presión, ignoran la gravedad y no se oxidan.
Pero sin el intangible software, el avión actual es incapaz de sostenerse en el aire (al menos en los modelos fly by wire), gastarían mucho más combustible (por al menos un orden de magnitud) y serían considerablemente más propensos a colisiones y accidentes y no podrían estar en el aire tanto tiempo como sencillamente por condiciones meteorológicas que amenazan su seguridad.
A veces es dificil distinguir entre el Científico y el Ingeniero de Computación. Por ejemplo, es ciencia o ingeniería, uno de los campos más polémicos de la Computación es la Inteligencia Artifical, que es una disciplina que tiene por nombre una pregunta: ¿es posible construir un artefacto inteligente? No me da tiempo sino de nombrar este fascinante mundo, especie de mezcla entre filosofía, ciencia e ingeniería.
Hacer Ingeniería implica vivir más cerca de la máquina, del computador que el científico de la computación. El problema ya no es tanto si es posible cierto cómputo, el problema es construirlo para que quepa en una máquina que tenemos por delante, corra en un tiempo razonable y que sea directamente útil para alguien.
Como ejemplo de Ingeniería de la Computación está el desarrollo de sistemas de computación paralela. En la UCV, la USB y la ULA tenemos investigadores de primera línea que llevan más de 10 años investigando cómo lograr que una comunidad de procesadores resuelva eficientemente problemas interesantes de envergadura. En algunos casos la solución puede obtenerse mucho más rápidamente en esa comunidad que en un computador de un sólo procesador (esto es importante en el problema de escoger por cuál ruta es más conveniente enviar tráfico de datos y voz en una red de telecomunicaciones). En otros casos, en una comunidad de muchos procesadores baratos se puede resolver el problema más económicamente que en un gran computador. Los problemas de ingeniería son muchos: ¿dado un problema, vale la pena resolverlo en una comunidad de procesadores? ¿cómo lograr que los procesadores se coordinen y no se interfieran en la búsqueda de la solución? ¿cómo diseñar, construir y evaluar ese cómputo hecho en paralelo? ¿cómo construir un servicio poco costoso de computación paralela que se pueda usar fácil y cómodamente?
El Ingeniero de Computación tiene que preocuparse no sólo de los cómputos sino de los datos que requieren los cómputos: un computador no sólo computa sino que guarda datos, millones y millones de ellos, los ordena, los combina, los recombina y sobre todo busca entre ellos la información que le hace falta a alguien --¿hay disponibilidad de asientos en algún vuelo a Puerto La Cruz este domingo?
La Informática debe su nombre a un neologismo francés producto de una síncopa entre Información y Automátización, es decir el interés por la automatización del manejo de la información.
Para automatizar el manejo de la información, la computación no se puede limitar a los datos que hay en un sólo computador --hoy en día los cómputos y los datos se distribuyen y comunican en nuestra mini-telaraña de Babel y el pobre Ingeniero de Computación tiene que tomar en cuenta que cuando se transmiten datos por conexiones falibles y finitas éstos pueden perderse o demorarse, en fin que el flujo de datos también tiene su turbulencia y todos los problemas que surgen cuando los flujos se convierten en tráfico.
Una gran parte de la información termina presentándose a la gente, por lo que el Ingeniero de Computación no puede ser ajeno a los distintos medios de presentación: imágenes, sonido, video, fuerzas y sensaciones tactiles.
Los franceses, haciendo gala de su legendaria precisón en el lenguaje, han acuñado los términos telemática para capturar la noción de la informática a distancia y mediática para capturar ese acercamiento tentativo entre los multimedios y la computación. J. Baralt (USB), posiblemente con Carlos Domingo(UCV,ULA), uno de nuestros pocos filósofos de la cibernética, acuñó en broma el término telemediainformática para describir el vasto mundo en el que el Ingeniero de Computación se empieza a desempeñar.
Teóricamente podemos declarar que el Ingeniero en Informática
estudia y desarrolla sistemas basados en software para automatizar la presentación,
búsqueda, almacenamiento y diseminación de la información.
En la práctica, la distinción entre el campo de acción
del Ingeniero en Informática y el campo de acción del Ingeniero
de Computación es insignificante, por lo que el mismo profesional
ejerce en uno u otro campo indistintamente. De hecho, las diferencias de
formación en nuestras universidades parecen reflejar más
diferencias de cultura institucional que profesionales. Por ende, no nos
dejemos confundir por el babel de términos; en una primera aproximación
práctica y newtoniana, podemos manejar Informática y Computación
como sinónimos.
Así, nosotros y nuestra sociedad como el Dr. Fausto queremos información, queremos tener automáticamente a nuestro alcance toda la información que se produce en el mundo --pues como reza el adagio corrompido "information is power".
Para Agosto de 2000 se estimó que existían 800 millones de páginas web disponibles para los internautas [Fuente: The Internet Journal, promoción de Agosto, 2000], presumiblemente atiborradas de información valiosa, por lo que todo parece andar viento en popa...
Es tiempo de completar la cita de Borges:
"Cuando se proclamó que la Biblioteca abarcaba todos los libros, la primera impresión fue de extravagante felicidad. Todos los hombres se sintieron señores de un tesoro intacto y secreto. No había problema personal o mundial cuya elocuente solución no existiera: en algún hexágono. El universo estaba justificado, el universo bruscamente usurpó las dimensiones ilimitadas de la esperanza [...] A la desaforada esperanza, sucedió, como es natural, una depresión excesiva. La certidumbre de que algún anaquel en algún hexágono encerraba libros preciosos y de que esos libros preciosos eran inaccesibles, pareció casi intolerable [...] Otros inversamente, creyeron que lo primordial era eliminar las obras inútiles".Varios de mis colegas trabajan sobre el problema de encontrar y aprovechar ese vasto corpus que está en la telaraña; sin duda que los problemas técnicos a que se enfrentan son fascinantes. Entre ellos se encuentran los derivados del hecho que la telaraña mundial no es estática, cambia de día a día; la página que encontré ayer, hoy la cambiaron, la mudaron o ya no existe. Borges lo previó en su portentoso sueño:Jorge Luis Borges (op. cit.)
"Hablan (lo sé) de «la Biblioteca febril, cuyos azarosos volúmenes corren el interesante albur de cambiarse en otros y que todo lo afirman, lo niegan y lo confunden como una divinidad que delira»".La primera reacción es construir meta-sistemas, sistemas que corrijan los sistemas anteriores, especie de arbotantes digitales que resuelvan las fuerzas centrífugas de nuestra telaraña de Babel.
La sociedad y la tecnología que construye y usa, interactúan dinámicamente y contínuamente. La invención del automóvil condujo a las estaciones de gasolina, a las carreteras, a los congestionamientos de tránsito, a los centros comericales, a las urbanizaciones, a los boletines radiales sobre el tránsito, a los semáforos, a los fiscales, a los autobuses y los estacionamientos de cemento entre otros.
A veces pareciera que la tecnología tuviera una dinámica propia, pero en realidad es la dinámica que nosotros, como sociedad, le imprimimos y aceptamos. Nosotros hacemos de la velocidad, los datos y la impaciencia fetiches; construimos tecnologías que apoyan nuestros fetiches y luego nos quejamos de los resultados.
Considere por ejemplo esa virtud cada vez menos estimada: la paciencia. La gente quiere las cosas para ayer, el deseo no quiere saber de obstáculos, barreras o demoras. Ninguna sociedad siente que puede esperar tres días para conocer los resultados de una elección nacional; necesitamos conocerlos en el momento que cierran los centros de votación --o antes.
Los Ingenieros de Computación, cada vez más, tenemos que enfrentarnos con clientes que no quieren ni pueden esperar a que se termine de programar un sistema para ponerlo en uso, que no pueden esperar a que se medite un diseño, no pueden esperar a que se estudien alternativas y no pueden esperar a que se capturen y analicen los requerimientos reales de uso de un sistema: el sistema tiene que estar funcionando hoy.
Las empresas que nos contratan tampoco pueden esperar, hay que terminar este proyecto para buscar y atender otro, no hay tiempo para la calidad. Muchas empresas desarrolladoras de software se embarcan en un esfuerzo para sacar nuevas versiones de sus productos cada seis meses; para ellos un producto de calidad excelente es una temeridad suicida en un mercado tan competitivo que pareciera que quien no sale primero se "queda en el aparato", se las ve "cuesta arriba" para capturar un market-share decente que le permite sobrevivir hasta la próxima carrera. Por ende, "good enough" es el criterio de terminación y "good enough" es que la gente se anime a comprar mi producto, es que mi producto sea lo suficientemente bueno para que me perdonen sus evidentes fallas, es que sea suficientemente caro como para que no piensen en comprar la versión de mi competidor y es que sea suficientemente adictivo o útil como para que compren mi nueva --y siempre mejorada-- versión cuando salga.
Como sociedad confundimos escritos con información, información con conocimiento y conocimiento con sabiduría, a tal punto que para citar a Borges nuevamente:
"Afirman los impíos que el disparate es normal en la Biblioteca y que lo razonable (y aún la humilde y pura coherencia) es una casi milagrosa excepción".yBorges. Op. cit.
"La certidumbre de que todo está escrito nos anula o nos afantasma. Yo conozco distritos en que los jóvenes se prosternan ante los libros y besan con barbarie las páginas, pero no saben decifrar ni una sola letra".El último límite de Babel está en nosotros mismos: la telaraña, la torre se rompe, se desvirtúa, nos puede hacer daño como personas y como sociedad si no la estudiamos, si no aclaramos para qué la queremos, los valores que queremos estimular con ella y si no la construimos con el suficiente cuidado y con la suficiente calidad.Borges, Op. cit.
El futuro de la informática y de nuestra sociedad es la lucha contra los límites de Babel.
Gracias.
PD. Los interesados puede consultar una lista personal e incompleta de los investigadores en Venezuela que trabajan en algunas de las áreas de la Computación mencionadas en esta charla.