martes, 1 de marzo de 2011

Ser un hacker

¿Qué es un hacker?

El Archivo de la jerga contiene un montón de definiciones del término `hacker', la mayoría de las cuales tiene que ver con la afición a lo técnico, y la capacidad de deleitarse en la solución de problemas y al sobrepujar los límites. Si Ud. quiere saber como transformarse en hacker, bien, sólo dos son realmente relevantes. Existe una comunidad, una cultura compartida, de programadores expertos y brujos de redes, que cuya historia se puede rastrear décadas atrás, hasta las primeras minicomputadoras de tiempo compartido y los primigenios experimentos de ARPAnet. Los miembros de esta cultura acuñaron el término `hacker'. Los hackers construyeron la Internet. Los hackers hicieron del sistema operativo UNIX lo que es en la actualidad. Los hackers hacen andar Usenet. Los hackers hacen que funcione la WWW. Si Ud. es parte de esta cultura, si Ud. ha contribuído a ella y otra gente lo llama a Ud. hacker, entonces Ud. es un hacker. La mentalidad de hacker no está confinada a esta cultura de hackers en software. Hay personas que aplican la actitud de hacker a otras cosas, como electrónica o música -- de hecho, puede Ud. encontrarla en los más altos niveles de cualquier ciencia o arte. Los hackers en software reconocen estos espíritus emparentados y los denominan `hackers' también -- y algunos sostienen que la naturaleza de hacker es en realidad independiente del medio particular en el cual el hacker trabaja. En el resto de este documento nos concentraremos en las habilidades y actitudes de los hackers en software, y en las tradiciones de la cultura compartida que originó el término `hacker'. Existe otro grupo de personas que a los gritos se autodenominan hackers, pero no lo son. Éstas son personas (principalmente varones adolescentes) que se divierten ingresando ilegalmente en computadoras y estafando al sistema de telefonía. Los hackers de verdad tienen un nombre para esas personas: `crackers', y no quieren saber nada con ellos. Los hackers de verdad opinan que la mayoría de los crackers son perezosos, irresponsables, y no muy brillantes, y fundamentan su crítica en que ser capaz de romper la seguridad no lo hace a uno un hacker, de la misma manera que ser capaz de encender un auto con un puente en la llave no lo puede transformar en ingeniero en automotores. Desafortunadamente, muchos periodistas y editores utilizan erróneamente la palabra `hacker' para describir a los crackers; esto es causa de enorme irritación para los verdaderos hackers. La diferencia básica es esta: los hackers construyen cosas, los crackers las rompen. Si Ud. desea ser un hacker, continúe leyendo. Si Ud. quiere ser un cracker, mejor mire en el foro de discusión alt.2600 y prepárese para soportar la dura realidad cuando descubra que no es tan listo como se cree. Y eso es todo lo que voy a decir acerca de los crackers.

La actitud del hacker
Los hackers resuelven problemas y construyen cosas, y creen en la libertad y la ayuda voluntaria mutua. Para ser aceptado como hacker, Ud. deberá comportarse como si tuviera esta clase de actitud en su interior. Y para comportarse como si tuviera esta actitud, deberá creer en verdad en dicha actitud. Pero si Ud. piensa que el cultivo de las actitudes de hacker es una forma de ganar aceptación en la cultura, malinterpretará el tema. La transformación en la clase de persona que cree en esas cosas es importante para ayudarlo a aprender y mantenerlo motivado. Como en las artes creativas, el modo más efectivo de transformarse en un maestro es imitar la mentalidad de los maestros -- no sólo intelectualmente, sino además emocionalmente. Por lo tanto, si Ud. quiere ser un hacker, repita lo siguiente hasta que lo crea: 1. El mundo está lleno de problemas fascinantes que esperan ser resueltos. Es muy divertido ser un hacker, pero es la clase de diversión que requiere mucho esfuerzo. El esfuerzo requiere motivación. Los atletas exitosos obtienen su motivación a partir una clase de placer físico que surge de trabajar su cuerpo, al forzarse a sí mismos más allá de sus propios límites físicos. De manera similar, para ser un hacker Ud. deberá sentir un estremecimiento de tipo primitivo cuando resuelve un problema, aguza sus habilidades, y ejercita su inteligencia.
Si Ud. no es la clase de persona que naturalmente siente de esta manera las cosas, necesitará poder experimentarlas para llegar a ser un hacker. De otra manera, encontrará que su energía para `hackear' será absorbida por otras distracciones como sexo, dinero y aprobación social. (Además deberá desarrollar cierta clase de fe en su propia capacidad de aprendizaje -- la creencia de que aún cuando pueda no saber todo lo que necesita para resolver el problema, si agarra una parte de él y aprende desde allí, aprenderá lo suficiente para resolver la siguiente parte, y así, hasta que lo resuelva completo.) 2. Nadie debería tener que resolver un problema dos veces. Los cerebros creativos son un recurso valioso y limitado. No deben desperdiciarse reinventando la rueda cuando hay tantos y tan fascinantes problemas nuevos esperando por allí. Para comportarse como hacker, Ud. debe creer que el tiempo empleado para pensar por los otros hackers es precioso -- tanto, que es casi una obligación moral para Ud. el compartir la información, resolver los problemas y luego exponer la solución de manera que los otros hackers puedan resolver nuevos problemas, en lugar de enfrentarse perpetuamente con los viejos. (No tiene Ud. que pensar que está obligado a regalar todo su producto creativo, aunque aquellos hackers que lo hacen son los que obtienen más respeto de los demás hackers. Se considera consistente con los valores de un hacker que se venda lo suficiente para pagar la comida, la casa y los gastos relacionados con la computadora. También es consistente la utilización de estas habilidades de hacker para sostener a su familia, o incluso hacerse rico, siempre que Ud. no se olvide que es un hacker mientras lo hace.) 3. Lo aburrido y lo rutinario es malo. Los hackers (y las personas creativas en general) nunca debieran ser sometidas a trabajos rutinarios, porque cuando esto sucede significa que no están haciendo lo único que deben hacer: resolver nuevos problemas. Este desperdicio de talento daña a todo el mundo. Por ello, las tareas rutinarias, repetitivas y aburridas no sólo son displacenteras, sino intrínsecamente malas. Para comportarse como hacker, debe Ud. creer en esto lo suficiente como para automatizar aquellas porciones de tareas todo lo que se pueda, no solamente por Ud., sino para beneficio de todos los demás (especialmente otros hackers). (Existe una aparente excepción a esta regla. Los hackers hacen cosas a veces que pueden parecer repetitivas o aburridas pero como ejercicio para lograr limpieza mental, o para obtener cierta habilidad, u obtener cierta clase de experiencia que no podría tener de otro modo. Pero esto es una elección -- ninguna persona pensante debiera nunca ser forzada a hacer cosas aburridas.) 4. La libertad es buena. Los hackers son naturalmente anti-autoritaristas. Cualquiera que le pueda dar órdenes, puede hacer que deba dejar de resolver ese problema con el cual está Ud. fascinado -- y, debido a la manera en la cual trabajan las mentes autoritarias, encontrarán alguna razón espantosamente estúpida para hacerlo. Por eso, la actitud autoritaria debe ser combatida donde sea que se la encuentre, pues si se la deja lo asfixiará, tanto a Ud. como a los otros hackers. (Esto no es lo mismo que combatir toda autoridad. Los niños necesitan guía, y los criminales restricciones. Un hacker puede estar de acuerdo en aceptar cierta clase de autoridad para poder obtener algo que desea más que el tiempo que gasta en seguir órdenes. Pero éste es un pacto limitado, conciente; la clase de sumisión que desean los autoritarios no está en oferta.) Los autoritarios florecen en la censura y el secreto. Y desconfían de la cooperación voluntaria y el intercambio de información -- sólo les agrada la cooperación que tienen bajo su control. Así que para comportarse como hacker, Ud. deberá desarrollar una hostilidad instintiva hacia la censura, el secreto, y la utilización de la fuerza o el fraude para someter a adultos responsables. Y deberá estar preparado para actuar en consecuencia. 5. La actitud no es sustituto para la competencia. Para ser un hacker, deberá desarrollar algunas de esas actitudes. Pero tener la actitud solamente no lo transformará en hacker, como tampoco lo puede transformar en un atleta campeón o en estrella del rock. Para transformarse en hacker necesitará inteligencia, práctica, dedicación, y trabajo pesado. Por lo tanto, debe aprender a desconfiar de la actitud y respetar la competencia en todas sus formas. A ningún hacker le gusta perder el tiempo con quienes adoptan la pose de hacker, sino que veneran la competencia -- especialmente la competencia al hackear, pero la competencia encualquier ámbito está bien. Especialmente buena es la competencia en habilidades exigentes que pocos pueden dominar, y la mejor es la competencia en habilidades exigentes que involucran agudeza mental, maña y concentración. Si Ud. respeta la competencia, disfrutará desarrollándola en sí mismo -- el pesado trabajo y la dedicación se transformarán en una especie de juego intenso, y no una rutina. Y éso es lo vital para transformarse en hacker.

Habilidades básicas en un hacker
La actitud del hacker es vital, pero más aún lo son las habilidades. La actitud no es sustituto para la competencia, y existe un cierto conjunto de herramientas básicas que Ud. debe dominar antes que cualquier hacker sueñe con llamarlo de ese modo. Este conjunto cambia lentamente a lo largo del tiempo a medida que la tecnología crea nuevas habilidades y descarta otras por obsoletas. Por ejemplo, se incluía la programación en lenguaje de máquina, y no se hablaba de HTML hasta hace poco. Pero hacia finales de 1996, es claro que se debe incluir lo siguiente: 1. Aprenda a programar. Esta es, por supuesto, la habilidad fundamental del hacker. En 1997 el único lenguaje que Ud. debe conocer sí o sí es C. Pero no crea que podrá ser un hacker, siquiera un programador, si conoce solamente un único lenguaje -- Ud. debe aprender como pensar en los problemas de programación de una manera general, independiente de cualquier lenguaje. Para ser un hacker de verdad, Ud. debe llegar al punto en el cual puede aprender un lenguaje nuevo en días, relacionando lo que está en el manual con lo que ya sabe de antes. Esto significa que Ud. debe aprender varios lenguajes muy diferentes entre sí. Además de C, Ud. deberá aprender al menos LISP y Perl (y Java está presionando fuerte por un lugar en esa lista). Además de ser los lenguajes más importantes para hackear, a su vez representan enfoques muy diferentes a la tarea de la programación, y lo educarán de distintas y valiosas maneras. No puedo explicar en detalle en este documento como puede aprender a programar -- es una habilidad compleja. Pero puedo adelantarle que los libros y los cursos no servirán (muchos, y tal vez la mayoría de los mejores hackers son autodidactas). Lo que sí servirá es (a) leer código y (b) escribir código. El aprendizaje de la programación es como aprender a escribir bien en lenguaje natural. La mejor manera de aprender es leer algo de las cosas escritas por los maestros del estilo, luego escribir algunas cosas Ud. mismo, leer mucho más, escribir un poco más ... y repetir esto hasta que lo que escribe empieza a mostrar la clase de fuerza y economía que aprecia en sus modelos. Antes era difícil encontrar código de buena calidad para leer, porque había pocos programas de cierta magnitud disponibles en código fuente de tal manera que los nóveles hackers pudieran meterles mano. Esta situación ha cambiado dramáticamente: software libre, herramientas de programación libres, y sistemas operativos libres (todo disponible con su código fuente, y todo ello hecho por hackers) están ampliamente disponibles en la actualidad. Lo que me lleva elegentemente a nuestro siguiente tema... 2. Obtenga uno de los UNIXs libres y aprenda a usarlo y a ponerlo en funcionamiento. Doy por sentado que Ud. tiene una computadora personal o puede conseguir acceso a una de ellas (a estos muchachos de hoy día les resulta tan sencillo obtenerlas :-)). El paso con mucho más importante que cualquier novato puede dar en el camino de adquirir las habilidades de un hacker es obtener una copia de Linux o alguno de los otros Unixs tipo BSD libres, instalarlo en una máquina personal, y hacerlo funcionar. Si, es cierto que existen otros sistemas operativos en el mundo además de Unix. Pero sólo pueden encontrarse en formato binario -- Ud. no puede ni leer el código ni modificarlo. Si intenta aprender a hackear en una máquina DOS, Windows o en un MacOS se sentirá como si trata de bailar metido en un cajón. Además de eso, Unix es el sistema operativo de la Internet. Si bien Ud. puede aprender a usar la Internet sin saber Unix, nunca podrá ser un hacker en Internet sin conocerlo. Por este motivo, la cultura hacker actual está centrada fuertemente en Unix. (Esto no siempre fue así, e incluso la situación le desagrada a algunos de los hackers más viejos, pero la simbiosis entre Unix y la Internet es tan fuerte que hasta la energía de Microsoft parece incapaz de hacerle mella.) Así que, obtenga un Unix -- personalmente me gusta Linux, pero hay otros. Apréndalo. Hágalo funcionar. Métale mano, anímese. Comuníquese en Internet mediante él. Lea el código. Modifíquelo. En ese sistema se incluyen las mejores herramientas de programación (que incluyen C, Lisp y Perl) de lo que cualquier sistema operativo de Microsoft ni siquiera podría soñar, además se divertirá y se sumergirá en un caudal de conocimientos de tal magnitud que nunca hubiera imaginado, hasta que en cierto momento, mirando hacia atrás, se dará cuenta que ya es un maestro hacker consumado. Si quiere saber más acerca del aprendizaje de Unix, mire The Loginataka. Para meter mano en un Linux, mire en el directorio de distribuciones Linux o en el programa `Linux CD Giveaway' en Sunsite. 3. Aprenda como usar la World Wide Web y escribir en HTML. La mayoría de las cosas que ha construído la cultura hacker trabajan fuera de la vista del gran público, ayudando en el funcionamiento de fábricas, oficinas y universidades, y carecen de un impacto obvio en la vida de los que no son hackers. La Web es la única gran excepción, y es tan enorme y brillante este juguete de hackers que incluso los políticos admiten que está cambiando el mundo. Sólo por esta razón (y hay un montón de otras igualmente buenas) Ud. debe aprender como trabajar en la Web. Esto no significa aprender a manejar un navegador (cualquiera puede hacer eso), sino que debe aprender a escribir HTML, el lenguaje de marcas de la Web. Si Ud. aún no sabe como programar, el aprendizaje que implica la escritura de HTML le enseñará algunos de los hábitos mentales que le ayudarán luego con la programación. Así que haga su página personal. No crea que por tener una página personal está más cerca de ser un hacker. La Web está llena de páginas personales. La mayoría de ellas son sin sentido, basura sin contenido -- basura muy vistosa, pero basura al fin (si desea ver más sobre este tema mire en The HTML Hell Page). Para que valga la pena, su página debe tener contenido -- debe ser interesante y/o útil para los otros hackers. Y esto nos lleva al próximo tema...

Status en la Cultura Hacker
De manera similar a muchas otras culturas sin economía monetaria, el hackerismo se basa en la reputación. Ud. está intentando resolver problemas interesantes, pero cuan interesantes son, y cuan buenas son las soluciones que Ud. encuentre, es algo que sólo sus iguales o superiores técnicamente hablando serán capaces de juzgar. De acuerdo a esto, cuando juega el juego de los hackers, Ud. aprende a puntuarse principalmente en función de los que los otros hackers piensan acerca de sus habilidades (éste es el motivo por el cual Ud. no puede ser un hacker de verdad hasta que otros hackers lo denominen así de manera consistente). Este hecho está empañado por la imagen del trabajo de hacker como trabajo solitario; también por un tabú cultural de los hackers (si bien en la actualidad es menor, aún es fuerte) que impide que se admita al ego o la validación externa como elementos involucrados en la propia motivación. Específicamente, el hackerismo es lo que los antropólogos denominan cultura de la donación. Ud. gana estatus y reputación no mediante la dominación de las otras personas, no por ser hermoso/a, ni por tener cosas que las otras personas desean, sino por donar cosas. Específicamente, al donar su tiempo, su creatividad, y el resultado de sus habilidades. Existen básicamente cinco clases de cosas que Ud. puede hacer para obtener el respeto de los hackers: 1. Escribir software libre. Lo primero (lo más central y más tradicional) es escribir programas que los otros hackers opinen son divertidos o útiles, y donar los fuentes del programa a la cultura hacker para que sean utilizados. Los más reverenciados semidioses del hackerismo son las personas que han escrito programas de gran magnitud, con grandes capacidades que satisfacen necesidades de largo alcance, y los donan, de tal manera que cualquiera pueda utilizarlos. 2. Ayudar a probar y depurar software libre También son reconocidas aquellas personas que depuran los errores del software libre. En este mundo imperfecto, inevitablemente pasaremos la mayoría de nuestro tiempo de desarrollo en la fase de depuración. Éste es el motivo por el cual los desarrolladores de software libre piensan que un buen probador-beta (uno que sabe como describir claramente los síntomas, que puede localizar correctamente los problemas, que tolera los errores en una entrega apurada, y que está dispuesto a aplicar unas cuantas rutinas sencillas de diagnóstico) vale su peso en rubíes. Aún contando con un solo probador de éstos puede hacerse que el proceso de depuración pase de ser una prolongada pesadilla que lo deja a uno exhausto, a ser sólo una saludable molestia. Si Ud. es un novato, trate de encontrar un programa en desarrollo en el cual esté interesado, y sea un buen probador beta. Hay una progresión natural desde ayudar a probar programas, luego ayudar a depurarlos, y más adelante ayudar a modificarlos. Aprenderá un montón de esa manera, y la gente lo ayudará a Ud. más adelante. 3. Publicar información útil. Otra buena cosa que puede hacer es recolectar y filtrar información útil e interesante y construir páginas Web, o documentos como PF (Preguntas Frecuentes, FAQ en inglés), y ponerlos a disposición de los demás. La gente que mantiene las PF (FAQ) técnicas más importantes gozan de casi tanto respeto como los autores de software libre. 4. Ayudar a mantener en funcionamiento la infraestructura. La cultura hacker (y el desarrollo ingenieril de la Internet, para el caso) funciona gracias al trabajo voluntario. Existe una gran cantidad de trabajo necesario pero sin glamour que debe hacerse para que esto siga marchando -- administrar listas de correo, moderar foros de discusión, mantener sitios donde se archivan grandes cantidades de software, desarrollar RFCs y otros estándares técnicos. La gente que desarrolla estas actividades goza de mucho respeto, porque todos saben que esos trabajos son grandes consumidores de tiempo y no tan divertidos como meterse con el código. Los que lo llevan adelante demuestran su dedicación. 5. Hacer algo por la cultura hacker en sí misma. Finalmente, Ud. puede servir y propagar la cultura hacker en sí misma (por ejemplo, escribiendo un texto acerca de como transformarse en hacker :-)). Esto no es algo en lo cual estará en posición de hacer hasta que sea conocido en el ambiente por las primeras cuatro cosas. La cultura hacker no tiene líderes, exactamente, pero tiene héroes culturales, historiadores tribales, y voceros. Cuando Ud. ha estado en las trincheras tiempo suficiente, podrá crecer y transformarse en uno de ellos. Pero tenga cuidado: los hackers desconfían del ego ruidoso en sus jefes tribales, así que la búsqueda visible de esa clase de fama es peligrosa. En lugar de esforzarse por ella, debe colocarse en una posición tal que ella caiga sobre Ud., y luego debe comportarse de manera modesta y con gracia con su estatus.

La conexión Hacker/Nerd

Contrariamente al mito popular, no es necesario que sea un nerd para ser un hacker. Ayuda, sin embargo, y muchos hackers son nerds. Al ser un marginado social, el nerd puede mantenerse concentrdo en las cosas realmente importantes, como pensar y hackear. Por esta razón, muchos hackers han adoptado la etiqueta `nerd' e incluso utilizan el desagradable término `geek' como insignia de orgullo -- es su forma de declarar su propia independencia de las expectativas sociales normales. Si desea ver una discusión más extensa vea The Geek Page. Si Ud. puede vérselas con la concentración suficiente en las tareas de hacker para ser bueno en ello, y encima disfrutar de una vida, está bien. Es muchísimo más fácil ahora que cuando yo era un novato; la cultura popular ve con mejores ojos a los tecno-nerds en la actualidad. Hay además un número creciente de personas que se dan cuenta que los hackers frecuentemente son un material de alta calidad para novio/novia/marido/esposa. Si desea ver algo más acerca de esto, vea la Girl's Guide to Geek Guys. Si Ud. se siente atraído por la actividad hacker porque no tiene una vida personal, está bien también -- al menos no tendrá problemas de concentración. A lo mejor más adelante se puede conseguir una vida como la gente.

Cuestiones de estilo
De nuevo, para ser un hacker, Ud. debe desarrollar la mentalidad del hacker. Existen algunas cosas que Ud. puede hacer cuando está sin computadora, que lo pueden ayudar. Estas cosas no son sustituto para la actividad propia de hackear (nada lo es) pero muchos hackers las realizan, y sienten que de alguna manera primitiva se conectan con la esencia de la actividad de hackear. * Lea ficción científica. Vaya a las reuniones sobre ficción científica (es un buen método para encontrarse con hackers y proto-hackers) * Estudie Zen, y/o practique artes marciales. (La disciplina mental se parece en ambos casos.) * Desarrolle un oído analítico para la música. Aprenda a apreciar música de clases peculiares. Aprenda a tocar correctamente alguna clase de instrumento musical, o a cantar. * Desarrolle inclinación por los dobles sentidos y los juegos de palabras. * Aprenda a escribir correctamente en su lengua nativa. (Una cantidad sorprendente de hackers, incluyendo a los mejores que conozco, son capaces escritores.) Cuanto más de estas cosas haya hecho, es más probable que Ud. posea material natural para hacker. Finalmente, unas pocas cosas que no debe hacer. * No use un nombre de usuario grandioso y bobo. * No se meta en las discusiones airadas en Usenet (ni en ningún otro lado). * No se autodenomine `cyberpunk', ni desperdicie su tiempo en nadie que lo haga. * No escriba para el correo o los foros con montones de errores de tecleo o construcciones gramaticales incorrectas. La única reputación que se ganará con esas costumbres es la de un escarnecedor. Los hackers tienen una gran memoria -- puede tomarle años hasta que lo acepten luego de estas cosas.

Otras fuentes de información
Puede leer una traducción al japonés de este documento. El Loginataka nombra alguna de las cosas que hay que decir acerca del entrenamiento apropiado y la actitud de un hacker de Unix. Además he escrito A Brief History Of Hackerdom. Peter Seebach maintiene una excelente Hacker FAQ para administradores que no saben como tratar con hackers. También he escrito un artículo, The Cathedral and the Bazaar, que explica en detalle como trabaja la cultura Linux. Puede encontrarlo en mi página de escritos.

Preguntas frecuentes
P: ¿Me enseñaría como hackear? Desde la primera publicación de esta página, me llegan varios pedidos por semana de gente que quiere que le "enseñe todo sobre hackeo". Desafortunadamente, no tengo ni el tiempo ni la energía para hacer eso; mis propios proyectos de hackeo consumen el 110% de mi tiempo. Aún si pudiera hacerlo, el hackeo es una actitud y habilidad que Ud. debe aprender por sí mismo. Verá que los hackers de verdad quieren ayudarlo, pero no lo respetarán si Ud. comienza a rogarles que lo alimenten en la boca con todo lo que saben. Aprenda unas cuantas cosas primero. Muéstreles que está intentando, que es capaz de aprender por su cuenta. Luego vaya, hable con los hackers y hágales sus preguntas. P: ¿Dónde puedo encontrar algunos verdaderos hackers para comunicarme con ellos? Bueno, ciertamente no en IRC, eso es seguro -- allí no hay nada más que discutidores y crackers hasta donde la vista alcanza. La mejor manera es encontrar un grupo local de usuarios de Unix o Linux y asistir a sus reuniones (existe una lista de grupos en la página de Sunsite: Linux Users' Group. P: ¿Cuál lenguaje debo aprender primero? HTML, si no lo conoce ya. Existe un montón de malos libros sobre HTML con brillantes páginas y con contenidos a la moda. El que más me gusta es HTML: The Definitive Guide. Cuando esté listo para comenzar con programación, le recomiendo que comience con Perl o Python. C es realmente importante, pero también mucho más difícil.
P: ¿Por dónde puedo empezar? ¿Dónde puedo conseguir un Unix libre? En otras partes de esta página ya incluí enlaces hacia donde obtener Linux. Para ser un hacker Ud. necesita motivación, iniciativa y la capacidad para educarse a sí mismo. Comience ahora...
Eric S. Raymond

El ordenador de quinta generación

Actualmente se piensa que la tecnología ha avanzado hasta límites próximos a lo que es posible con los computadores convencionales y que es necesario un cambio drástico de dirección para seguir progresando. La continuada demanda de esas mejoras constituye una motivación para muchos paises, de manera que gastan grandes sumas de dinero en la investigación y el desarrollo de una nueva generación de computadoras. Cuando por fin llegue la quinta generación se supone que será muy diferente de cualquier otra anterior.

En el esfuerzo investigador para construir el ordenador de quinta generación rivalizan los paises más desarrollados. Fue en Japón donde se inició la carrera de la quinta generación. La investigación y el desarrollo japoneses de nueva tecnología están dirigidos por la unión de la industria y el gobierno en el Instituto para la Nueva Generación de Tecnología de Computadoras (ICOT) fundado por el Ministerio de Asuntos Internacionales e Industria. Para los japoneses este proyecto pretende conseguir un ordenador rapido basado en la lógica y el procesamiento del conocimiento, con interfaces que puedan comprender el lenguaje natural, basado todo en una máquina de arquitectura paralela, usando programación lógica con un Prolog concurrente1.

Al ser Japón un país de recursos limitados, su gobierno quiere vencer en esta carrera del ordenador de quinta generación como primera esperanza para un futuro económico del país más prometedor, pues si Japón es capaz de poner las normas para los sistemas más avanzados de cálculo, su economía sera capaz de hacer de él la fuente más cara en cuanto a inteligencia artificial se refiere. Los japoneses palpan que sus esfuerzos en la quinta generación son una necesidad de supervivencia económica2.

El ICOT supone la colaboración de ocho compañías que suministran a aquel investigadores que trabajan con él durante tres o cuatro años, pero durante ese tiempo pueden volver a sus compañías para investigar como nuevos expertos. El presupuesto destinado por el ICOT para el proyecto de ordenadores de la quinta generación es de 450 millones de dólares durante diez años. El proyecto del superordenador rápido ayudará a fabricar ordenadores con procesamiento paralelo, que seran de 100 a 1000 veces más rápidos que los superordenadores actuales habiendo destinado a este fin el MITI 100 millones de dólares durante ocho años3.

La nueva generación de computadores supone avances en tres áreas fundamentales: en integración de microcircuitos en muy alta escala (VLSI), para aumentar la densidad de compactación de los microcircuitos; en los métodos de proceso de datos, haciendo dichos procesos más parecidos a los esquemas de razonamiento humano; en las tecnicas de diseño de memorias, a fin de hacerlas más aptas y efectivas para desempeñar las nuevas tareas4.

En un informe publicado en 1980 por el Japan Information Processing Centre (JIPDEC) se predice que el ordenador de quinta generación sera el resultado de cuatro aspectos importantes. Existirá una gran diversidad de funciones computerizadas, niveles y tipos de computación. Desde máquinas para proceso a muy elevada velocidad, a procesadores para funciones y aplicaciones especiales. Ordenadores personales y computadoras incorporados en todo tipo de maquinaria. Se dejará a un lado la tendencia actual hacia máquinas de uso general y se incrementará el número de ordenadores para aplicaciones especiales. Una tendencia hacia arquitecturas diferentes a las actuales. Cobraran gran importancia las arquitecturas de los microcircuitos. También se pondrá un gran énfasis en las arquitecturas de los sitemas5.

El diseño tradicional de hardware no ha conseguido alcanzar el fin propuesto por la inteligencia artificial. Las tecnicas de inteligencia artificial requieren accesos rápidos a bancos de memoria enormes según los estandares tradicionales y, por tanto, las velocidades de proceso son demasiado lentas para las aplicaciones más exigentes. La antigua idea de solucionar un problema paso a paso mediante la ejecución de una secuencia de instrucciones ha cedido el paso, en el proyecto de quinta generación, a la idea de procesamiento en paralelo, en el cual un conjunto de procesadores trabajan simultaneamente en las diferentes partes del problema6.

Según otros rumbos tomados se propone la inclusión de compiladores en hardware más que en software y la inclusión de un microcódigo para procesadores en un lenguaje lógico como el Prolog. Las pruebas para medir la velocidad de sistemas en inteligencia artificial tienden a expresar sus medidas en inferencias logicas por segundo (LIPS), más que en millones de instrucciones por segundo (MIPS), como sucedía en el pasado7.

En los primeros cuatro años del ICOT se desarrolló una máquina basada en el conocimiento llamada Delta, que comprende un sistema de inferencia, un sistema de conocimiento, un sistema de software y un sistema para el desarrollo de prototipos de software. Las máquinas para bases de datos afines tienen acceso a unos 20 gigabytes de almacenamiento y en las etapas finales se encontraron algunos problemas debido al uso de maquinas convencionales que se basaban en un procesamiento secuencial y que se incluyeron como compromiso con la reconocida necesidad de efectuar un procesamiento en paralelo a gran escala. Se estima que las máquinas de inferencia que se necesitarán al final del proyecto deberán ser capaces de ejecutar 109 LIPS y esta potencia de procesamiento sólo será proporcionada por el equivalente de 1000 procesadores trabajando en paralelo8.

Otro de los primeros resultados practicos del proyecto japones es la máquina Personal Sequential Inference (SPI) que se desarrollo para usarla como una herramienta en la investigación sobre métodos de resolución de problemas mediante la lógica. El software es quizás más importante que la máquina en si, el lenguaje de programación del procesador esta basado en la programación lógica y posee un sistema operativo llamado Simpos que usa una versión de Prolog llamada Extended Self-contained Prolog (ESP). El PSI tiene actualmente una velocidad de unos 30 LIPS, y se espera comercializar en un futuro próximo cuando la velocidad sea de unos 200 LIPS9.

La respuesta norteamericana al ICOT no se hizo esperar. El Programa de la Agencia para la Investigación de Proyectos Avanzados de la Defensa (DARPA) ha sopòrtado la investigación en inteligencia artificial durante los últimos 20 años. Uno de sus frutos ha sido el Programa para Comprensión de Imágenes, en el que se intenta integrar imágenes, ciencia de la computación, reconocimiento de modelos, inteligencia artificial, neurofisiología y fisica, en un intento de extraer información de las imágenes con ayuda de sistemas expertos como el ACRONYM, para la interpretación de fotogramas. En respuesta al proyecto japonés DARPA lanza el Programa de Cálculo Estratégico, en el que intenta crear una nueva generación de tecnología de máquinas extremadamente potentes que soporten la seguridad militar de los EE. UU. y les facilite competir en el campo económico. Se espera que el costo económico en cinco años sea de unos 600 millones de dólares. Ademas DARPA subcontrata con laboratorios universitarios en áreas de visión, lenguaje natural, tecnología de sistemas expertos, robótica y lingüistica10.

En 1982 se formó la Corporación para la Microelectronica y tecnología de Ordenadores (MCC) para intentar conseguir el liderazgo de EE. UU. en tecnología. A diferencia del programa japonés, los organizadores del MCC consideran que el vehiculo más efectivo para conseguir sus objetivos es un consorcio de compañías privadas, en lugar de asociaciones entre la industria y el gobierno. Para comprar una cuota de la MCC todas las compañías miembro deben reunir uno o más programas y contribuir con sus cientificos e ingenieros a ellos. El precio normal de una cuota es de un millon de dólares. El presupuesto anual para 1986 de la MCC fue de 65 millones de dólares. Hay cuatro areas de proyectos tecnicos11:

1 - Arquitectura avanzada de ordenadores, desarrollada en otras cuatro áreas:
a - Interfaces con el usuario, para explorar todos los aspectos de interacción entre la persona y los ordenadores.
b - Inteligencia artificial, para desarrollar el conocimiento de los sitemas expertos y su implementación dentro de los sitemas de producción.
c - Procesamiento paralelo, para conseguir mayores prestaciones a niveles de coste, comparables a los de los microordenadores.
d - Bases de datos, imprescindibles para construir circuiteria y programas que consigan mejores caracteristicas en procesos complejos, que necesiten grandes bases de datos.
2 - Microelectrónica.
3 - Tecnología avanzada de software.
4 - CAD para VLSI.

También el Reino Unido se lanzó a la carrera de la quinta generación. En 1982 se fundó el programa Alvey de Tecnología Avanzada de Información. Su objetivo es desarrollar las tecnologías necesarias durante cinco años en contraste con los diez japoneses, con especial enfasis en los sistemas expertos. Pretende conseguir una posición competitiva para el país dentro del mercado mundial de la tecnología de la información, coordinando esfuerzos de la industria, organos de gobierno, universidades y laboratorios de investigación, por medio de las herramientas y métodos necesarios para la producción de alta calidad que repercuta en las prestaciones del hardware y software. Las áreas de investigación son: ingeniería del software, sistemas expertos, sistemas de conocimiento e interfaces hombre máquina12. El gobierno y la industria, conjuntamente han estimado el coste de la inversión durante los cinco años en 500 millones de dólares. Un ejemplo de lo conseguido es la formación de un consorcio que esta produciendo nuevas herramientas integradas de ingeniería de software, que está formado por seis empresas y miembros academicos, bajo la dirección de una firma de software. Otro proyecto es la creación de un chip microprocesador llamado Transputer para aplicaciones de procesamiento paralelo13.

La CEE creó en 1984, el Programa Europeo Estratégico para Investigación en Tecnologías de la Información (ESPRIT), que es una colaboración entre las universidades y gobiernos a través de entre ambos, y que incluye a tres firmas norteamericanas en proyectos particulares. La inversión total durante los cinco primeros años (1984/88) se aproxima a 1,5 billones de dólares, la mitad de los cuales provienen de la CEE y la otra mitad de las compañías participantes. El dinero se distribuye entre los laboratorios de investigación y universidades, en proyectos que se agrupan en las de: microelectrónica, robótica, software, procesado de la información, automatización de oficinas y fabricación asistida por ordenador (CAM)14.