sábado, abril 03, 2010

Mi encuentro con el profesor Raúl Patiño - historias sobre la computación en Venezuela



Esta entrada va dedicada a mi hermano Luis Portillo, Rafel Messana, José Márquez, Fernando Bello, y tantos otros quienes han dejado escuela en el universo de la computación Mainframe en Venezuela. De esos héroes anónimos de mil batallas. Y como ellos muchos otros cuyos nombres no son conocidos por las nuevas generaciones en tecnología.

There is no reason why a student should
be afraid of learning the characteristics
of more than one computer; once one
machine language has been mastered,
others are easily assimilated.
Indeed, serious programmers may
expect to meet many different
machine languages in the course of their carrers...

The Art of Computer Programming, Volume 1
Fundamental Algorithms
Donald E. Knuth, 1997




Tuve el privilegio de conversar una tarde con el profesor Raúl Patiño. Creo que puedo referir los inicios de Patiño y de Bello en la computación por circunstancias, nunca planeado desde temprana edad. En su larga trayectoria laboral y entre sus ocupaciones, Raúl Patiño ha sido programador de computadoras, profesor universitario y junto a su señora esposa Aura han formado una gran familia de venezolanos y venezolanas de ejemplo. Ha sido Raúl un especialista en historia universal y de Venezuela por derecho propio. Comenzó algo tarde su carrera en la computación pero en esos años ha dejado un legado en la mente y alma de muchos de los que una vez fueron sus alumnos y hoy día tienen como ocupación y modo de vida (y hasta como pasión) el mundo de la tecnología. El espectro de lenguajes de programación que utilizó abarca desde el AUTOCODER y SPS de las computadoras IBM, hasta el RPG ILE de los iSeries, FORTRAN II, FORTRAN 77, COBOL DB2, Pascal y C. Sus experiencias conforman un compendio de la actividad y arte de la programación en nuestro país. Cursó sus primeros estudios en el colegio San José del Ávila cuando era administrado y conducido por padres Benedictinos. Justo este mismo año tuve la oportunidad de recorrer junto a Raúl los pasillos del colegio en el que hace varias décadas Raúl y sus compañeros aprendía matemáticas, lenguaje, historia y aprendían a cultivar en un huerto anexo al colegio.

En esta foto del año 2011 aparecen Raúl Patiño y su señora esposa Aura dentro del patio interior del colegio San José del Ávila en Caracas


De izquierda a derecha en la foto: Raúl Patiño y Fernando Bello


RP - Raúl Patiño
JP - José Portillo


RP: Te debo el listado del compilador que me pediste.

JP: ¿Los que escribiste en Pascal de Wirth?

RP: Si, lo hice en la universidad de Southern Missisipi, donde obtuve un Bachelor in Computer Science. Fueron dos trabajos, las materias se llamaban Construcción de Compiladores y Construcción de Assembler. Esos trabajos los hice en el lenguaje Pascal. En aquella época en las universidades se enseñaba programación con Pascal, además de otros lenguajes como Fortan, Snobol, APL, Assembler, Cobol, Basic. Eso fue entre 1978-1980, no había diskette, no había CD, el medio de entrada eran las tarjetas perforadas, sin embargo, tenias otros medios de almacenamiento como cintas y discos magnéticos, así que me traje los listados fuente de los programas. Voy a revisar mis archivos físicos y al encontrarlos te los suministro.

JP: Cuando los consigas vamos a "escanearlos" y los rescatamos. Eso hago yo con todos mis trabajos viejos en tecnología y no tecnología. El papel se deteriora con rapidez en estos tiempos...

RP: Si consigo los libros te los guardo. Lo que ocurre es que le doné a la Universidad Simón Rodríguez un montón de libros (eran como 400 libros). Se los doné porque en aquella época no tenían muchos libros especializados. Me quedé con los más actualizados. Recuerdo que había un libro de lenguaje Cobol de la famosa casa editora Mike Murach, especializada en Assembler y Cobol. Posteriormente, incorporaron Cobol/DB2, Cobol/Cics, Java, MVS, OS, toda estas herramientas para mainframe. Con el libro de Cobol/DB2 preparé un taller dirigido a especialistas del área.

JP: ¿Cuál fue el primer lenguaje de programación que manejaste?

RP: Se llamaba SPS (el Autocoder llegó luego), era de la segunda generación de computadores de IBM: 1401, 1440 y 1460.

JP: ¿Dónde trabajaste con esos computadores?

RP: Fue en el IPASME. Yo entré como operador y los programadores ahí usaban el SPS. Consistía en instrucciones de Assembler. Allí di mis primeros pasos en programación.
 

Luego me fui al Ministerio de Obras Públicas (MOP) con la poca experiencia que yo tenía. Ellos tenían IBM 1401 también pero usaban SPS y Autocoder este último era un Assembler más poderoso que el SPS. Me hice programador en esa herramienta.

JP: Como un Macro-Assembler


Listado fuente en AUTOCODER. Esta muestra es parte de un listado de salida mostrado desde un programa Assembler escrito en FORTRAN (tomado de la página BitSavers, una fuente importante de información y documentos sobre la IBM 1401 y contemporáneos http://www.bitsavers.org/)


RP: Estando en el MOP, un día nos llama el director (a mí y a un compañero de nombre Adolfo Ayala). Recién lo habían nombrado director del centro electrónico (se llamaba así y no informática o tecnología). Nos dijo: "necesito que me ayuden a organizar el inventario del archivo técnico porque hay muchas cajas y paquetes de software". La mayoría de los programadores en el ministerio eran ingenieros en diversas áreas y programaban en FORTRAN II.

JP: ¿Los ingenieros en otras áreas conocían de programación en esa época?

RP: Si, programaban en FORTRAN II y estaba por salir el FORTRAN IV.

NOTA: Para el año 1966 la división de procesamiento electrónico del Ministerio era visitada por ingenieros como Castor Segundo Goa, Celso Fortoul, León Arocha Carvajal, Antonio Alamo. Para el procesamiento de cálculos se usaba una IBM 1602 que era programada en FORTRAN II.

JP: ¿Y que pasó después?

RP: Entonces, volviendo al tema, el director del Centro Electrónico, nos pidió hacer un inventario. Allí conseguimos FARGO (Fourteen-o-one [IBM 1401] Automatic Report Generation Operation), que fue anterior al RPG, ambos, FARGO and RPG facilitaron la transición entre las máquinas de tabulación y equipo de registro unitario de IMB, hacia la nueva serie de computadoras
IBM 1401. ¿Escuchaste nombrar ese FARGO alguna vez?

JP: No

RP: Era un generador de reportes. También había RPG I. Todos estaban en cinta magnética. Además había Cobol. Luego cuando le llevamos el resultado del inventario nos dijo: "aquí podemos usar muchas de estas cosas". Él director nos llamó para decirnos: "voy a hablar con IBM para que nos dé un curso de Cobol aquí en sitio".

JP: ¿Qué año fue eso?

RP: Estamos hablando del año 1966.


La IBM 1401


JP: ¿Dónde quedaba la IBM en aquel entonces?

RP: IBM tenia su sede en la avenida Urdaneta y estaban mudarse a la Torre Capriles, en Plaza Venezuela.

RP: Entonces, nuestro director habla con la gente de IBM y preparamos un curso en el propio ministerio por las tardes. IBM asignó un instructor y comenzó a dictarnos el curso que duraría dos (2) semanas con tres (3) horas diarias o algo así. En paralelo a todo esto, Ayala y yo bajamos el compilador Cobol la 1401. Luego, a los tres días de haber iniciado el curso el instructor no pudo asistir. No sé si enfermó, pero el hecho es que no continuó. Luego nos dijeron que enviarían a otro pero tampoco se presentó, el curso murió al nacer.

JP: ¿Y cómo armaron todo?

RP: Ayala y yo, por nuestra cuenta, continuamos investigando y estudiando para intentar hacer un programa modelo en Cobol. Por cierto, ¿Sabes cuanto se demoraba una compilada en la 1401?

JP: Imagino que mucho por las limitaciones de memoria. ¿Cuánto tardaba?

RP: Entre 40 y 45 minutos. Y en algunos casos entre una (1) hora y más dependiendo del tamaño del programa.

JP: ¿"ponchaban" las tarjetas perforadas ustedes mismos?

RP: Si, las "ponchabamos". Ese era el medio de entrada (de datos y programa). El compilador de Cobol estaba en cinta magnética. Antes, cuando el compilador estaba en tarjetas perforadas, el programa fuente había que colocarlo en medio de un grupo de tarjetas de comandos y el compilador.

JP: ¿En esa época existía el lenguaje JCL (Job Control Language)?

RP: Había algo muy básico, en JCL.

JP: Y las tarjetas con esos comandos se colocaban en los extremos como emparedando a tu programa fuente, ¿Correcto?

RP: Si, eso es. Correcto.

RP: Había unas tarjetas de control, pero eran más que todo para Jobs, las extensiones para discos, el Exec y otros comandos más. El sistema operativo era DOS (no confundir con el ms-dos posterior de Microsoft). Después de las primeras tarjetas de comandos venían las tarjetas con el fuente seguidas de las tarjetas de fin y al final la data cuando estaba en tarjetas.

JP: ¿Y le sacaron provecho?

RP: Lo cierto es que, en aquel momento, hicimos dos o tres programas y nos emocionamos mucho con los progresos que obtuvimos. En paralelo trabajábamos con los programas de la instalación. Los programas leían y grababan data secuencial, sencilla. Luego nos metimos con Index-Sequential, arreglos y subrutinas. Al ver estos avances, el director nos dice: "miren, hay una aplicación que tenemos que hacer y con eso se gradúan. Era la aplicación de la Caja de Ahorros, háganla en Cobol, tengo aquí ese proyecto para automatizar esa parte". Entonces lo hicimos en Cobol, con los pasos propios de análisis, diseño, desarrollo y lo implantamos; fue una novedad.

JP: ¿Cuánto tiempo tardaron en desarrollarlo?

RP: Bueno, entre cuatro a seis meses. No había apuro porque no se conocía nada. Era un ambiente medio experimental en aquella época y no había nadie a quien preguntarle.

JP: Entonces ustedes fueron pioneros en Cobol en el ministerio.

RP: En esa parte de Cobol, si. Porque todo se hacia en Autocoder. Todos los programas administrativos se hacían en ese Assembler. Que usaban Macros para el manejo de cintas, de discos. Pero cuando no habían Macro la cosa más complicada porque tu mismo tenías que armar las instrucciones de cinta (rebobinar la cinta, instrucciones de avance, la lectura o grabación de la misma, el área entrada-salida de los datos), igualmente para el manejo de lectura-grabación de los discos, todo un "trabajón". Fue una época muy bonita de la computación.

JP: ¿Y después del Cobol, que pasó?

RP: Un día el director nos dice: "vamos a preparar un cursito en RPG". Hicimos lo mismo que con el Cobol: la cinta, esto, aquello. No conocíamos nada de RPG: las hojas de File, Input, Calculo, Output y Extensión... eso si, estudiamos y repasábamos la lógica del RPG porque era el RPG básico, en el que tu no tenías las ventajas que tienes en los RPG´s posteriores. Hicimos dos listados y el director entusiasmado comenzó a reunirse con nosotros una hora después de almuerzo y una hora en la tarde. para darle los avances y preparar el material. Al final se preparó el curso y el director lo dictó en las instalaciones del Centro de Procesamiento de Datos del Banco Obrero, tuvo una buena acogida

JP: Un solo "Eval" y metes toda una expresión algebraica, etc.

RP: Nada de eso existía..

RP: Bueno,

JP: ¿Cómo se llamaba él?

RP: Antonio Aranguren, un ingeniero. Había estudiado en Francia y para esa época estaba recién llegado a Venezuela. Era hombre muy culto.

JP: Un emprendedor. Por eso los impulsaba a ustedes a meterse en todos esos proyectos de aprovechar las herramientas.

RP: Claro que sí. Él era ingeniero civil, tiempo después sacó una firma de Consultoría y Proyectos.

JP: ¿Murió ya?

RP: Si, ya el murió.

RP: Un hombre muy pro-tecnología. Ese Centro Electrónico ocupaba todo un piso. Habían como 30 ingenieros en diversas especialidades.. En el Ministerio se desarrollaba muchos programas del área de ingeniería, prácticamente todas las obras que se construyeron en el país, se calculaban en ese Ministerio, (construcción de puentes, autopistas, edificios, área eléctrica, represas, etc.) y la otra área, la constituían los Analistas Programadores del área administrativa, esto incluía la contabilidad, presupuesto, inventario de bienes, nómina y otros.


NOTA: A este punto la conversación se desvía al tema educativo y sobre la relación alumno-profesor.

JP: Siguiendo el caso de este señor director, ¿Aprendiste a medir a las personas? ¿Cuál era tu lema como profesor a este respecto?

RP: Yo me preparaba con mucho ahínco y daba lo mejor de mí, y por lo tanto podía exigir. Hay algo que saqué por psicología propia. En general tienes tres grupos: el grupo de las personas que salen adelante, no importa si el profesor es bueno o mediocre, otro grupo, que es la mayoría, quieren aprender y se esfuerzan. Si el profesor es bueno, obtienen resultados positivos, pero si el profesor no cumple con las pautas, algunos terminan con dificultades o no finalizan. No hay que descuidarlos.

JP: ¿Este último grupo es más numeroso?

RP: Correcto.

RP: Y hay un tercer grupo que cuesta incorporarlos, este grupo es un reto para quien con profesionalismo imparte el entrenamiento, en la medida que motives, atiendas con más dedicación y entendimiento den sus dificultades, hace que muchos se incorporen al segundo grupo o pasan a la estadística de reprobados.

JP: Es decir, es la representación exacta del comportamiento de la curva normal (desde el punto de vista estadístico del término), ¿Correcto?

RP: Así es.

JP: La motivación, la motivación...

NOTA: Raúl me comentó casos de alumnos que tuvo que reprobaban determinada materia en varias ocasiones. Era el caso curioso de un señor quien siendo era un gran analista y programador en Cobol pero no daba con el Assembler y otro caso fue en lenguaje Fortran, en ambos preparé un plan de recuperación teórico-práctico con evaluación dirigida y continua, que dieron resultados muy apetecibles a estos casos. El lector puede recordar en este momento el epígrafe con el cual inicio este artículo basado en la nota del profesor Knuth sobre el manejo de múltiples lenguajes de programación.

JP: ¿Cómo explicas que una persona sea buena para un lenguaje de programación y para otro sea un desastre, si consideramos que lo que está en el fondo de cada lenguaje es la misma lógica de programación?

RP: Primero existe una influencia de su trabajo diario. Lo sacas de Cobol y no da la talla para la nueva propuesta. Son personas que tienen tapa ojos y solo ven un camino, pero si los sacan de eso se pierden. Se hacen unos expertos y caminos grandes con una sola cosa. Yo tuve la suerte que el primer programa que hice lo construí con mis compañeros de trabajo y no necesité de un curso.

JP: ¿Cómo te iniciaste en Assembler?

RP: Me inicie con SPS y Autocoder, Posteriormente trabajando en el Instituto Nacional de Hipódromos hice un curso de Assembler 360 en dos semanas en IBM, mañana y tarde. Cuando regresé del curso, me dediqué a programar en esa herramienta por mucho tiempo.

JP: ¿Te fuiste a trabajar en el hipódromo?

RP: Si

JP: ¿Qué equipos tenían?

RP: El Hipódromo tenía un sistema de registro unitario y una IBM 360-20. Estaban saliendo del registro unitario y cambiando todo para la 360, todo continuaba en tarjetas perforadas y la decisión era cambiar la modelo 20 por una 360 modelo 30 que era más versátil. La persona destacada por IBM me pide que lo ayude a preparar unos cursos de procesamiento de datos básico. Me dio unos tips sobre cursos. Allí di mis primeros pasos en la docencia.

JP: ¿Qué año era?

RP: Eso fue en 1968. Estuve dos años programando en Cobol, RPG y Assembler en el Hipódromo, por cierto que la aplicación estrella fue la automatización del juego del 5 y 6, esto fue un suceso nacional.
De allí me fui como director de una academia llamada ECPI (Electronic Computer Programming Institute).

JP: ¿Dónde estaba la sede de esa academia?

RP: En el edificio de la Cámara de Comercio al final de los Caobos. Piso 7. Estuve entre los años 1970 y 1974.

JP: ¿Era una academia privada?

RP: Era privada de un gringo que la había instalado en México y en Puerto Rico. Era como una red en Estados Unidos y el tenía la franquicia. La montó en Caracas y en Valencia. Tenía una máquina propia, era una IBM 360.

JP: Anterior a esa ¿Existían otras academias de computación?

RP: Si, la Academia Moderna en el centro y otra más, pero no eran muy buenas y no tenían equipos.

JP: ¿Era un currículum completo?

RP: Muy completo para su momento. Estudiabas un año y medio más o menos. Tenías una materia introductoria al Procesamiento de Datos con duración de tres meses, donde veías los conceptos básicos: bit, byte, archivo, registro, campos, lógica binaria, diagramas de flujo, etc. Después tenías un curso de RPG que duraba tres meses, luego Cobol con cuatro meses, después Assembler de seis meses y al final Sistema Operativo dos meses..

JP: Al final ¿te daban un diploma o título?

RP: Un titulo de programador. Con las asignaturas explicadas arriba.

JP: Y todas estas empresas enviaban personas a prepararse allí.

RP: Muchas empresas, si. Allí estudió gente valiosa. Personas que años después los encontré como desarrolladores, programadores y gerentes en varias compañías. Yo entré como director en esa academia por mi experiencia en educación en computación y estuve trabajando allí cuatro años.

NOTA: A este punto pasa cerca de nuestra mesa una muchacha muy bella y con minifalda y me desconcentró. Me lanzó una mirada muy pícara que todavía la recuerdo. Luego me di cuenta que también le había echado una picada de ojo a Raúl. Que vaina!

RP: ¿Qué pasó? Te veo perdido.

JP: Cónchale Raúl, con esa echadera para delante y para atrás en tu narración me perdí!

RP: Bueno, en el hipódromo estuve entre 1968 y 1970. Luego vino la academia que te comenté, ¿Me sigues?

JP: Yes sir!

RP: Yo creía que sabía Assembler y cuando fui a dar mi primer curso en ECPI bueno... tuve que auto-entrenarme con aquel manojo de instrucciones como la aritmética binaria y de punto flotante, las instrucciones de uso múltiple y otras

JP: Aprendiste bastante enseñando la materia, ¿Correcto?

RP: Claro que si, muchísimo. Del ECPI me fui a la Fuerza Aérea como analista programador. En el ECPI daba clases Mariano Márquez Oropeza, un teniente coronel quien era el segundo de abordo del proyecto de automatización en La Carlota. Ellos tenían un IBM 360 Modelo 20 en Maracay, únicamente para el inventario de las partes para los aviones Mirage. Luego arrancaron el proyecto de automatización de todas las aplicaciones de la fuerza con sede en La Carlota, en lenguaje Cobol, muchos de los militares programaban en Fortran. Después con el instituto del IUFAN comenzaron a usar el RPG. Dado mis conocimientos de Assembler y DOS me colocaron como System Programming, es decir, encargado del sistema operativo y dando soporte a los usuarios. Estaba yo solo para revisar y resolver los reventones de programas, descifrar los dumps de memoria, etc. Había que conocer los formatos de datos: empaquetado, binario, registros etc. En eso estuve desde el año 1974 hasta 1978.

RP: Entonces, el teniente coronel que me contrató, quien sabía mucho de computación porque era ingeniero civil y había hecho una maestría en Estados Unidos en Investigación de Operaciones y conocía de teoría de colas, teoría de inventarios, modelos matemáticos y era un excelente programador en Fortran. Por eso me llevó para allá conjuntamente con otras personas y armó un buen team.

JP: Estando en la Fuerza Aérea es que decides ir a estudiar en el norte

RP: Si, porque conocía mucho pero no tenía un título. Ya había arrancado la carrera de computación en la Simón Bolívar, ya estaban saliendo los licenciados de la UCV Yo había arrancado a estudiar en la Central pero lo interrumpí por cuestiones de trabajo.

JP: Y estando en tus ocupaciones de system programming, ¿Continuaste con tus labores de docencia?

RP: Si, mientras estuve en la FA me llama un amigo del Instituto Universitario Nueva Esparta para dictar un curso en RPG. Ellos no tenían máquina. Todo era teórico. El curso más avanzado estaba en cuarto semestre y ninguno había programado en una máquina real. Esa era una carrera a nivel de técnico superior que estaba comenzando, en mi caso entré como experto. Por eso pude entrar a dar clases sin tener título de tercer nivel.

RP: Durante el semestre les mandé un programa. Tenía como ocho alumnos. Por mi cuenta, les pedí los programas en papel y en la FA le pedí a una secretaria que me ayudara a poncharlos en tarjetas y a la computadora para que vieran los errores de compilado, y me aparecí luego con los resultados de la compilación.

JP: Imagino la cara de los alumnos cuando vieron por primera vez en sus vidas esos listados!

RP: Caramba! se impresionaron, luego fui contratado para un segundo semestre. Un día se me prende el bombillo. Hablo con el ya Coronel Mariano Márquez Oropeza con quien trabajaba en la FA. y ya nombrado Director del Centro Electrónico, le explico la situación con mis alumnos. Por cierto, él había dado clases en ECPI y también le gustaba muchísimo la docencia, le planteo la posibilidad de hacer un intercambio: le enviamos unos becarios de la FA al instituto y a cambio le compilamos programas de los alumnos en nuestra máquina. Me respondió: "encárgate de eso". Se lo planteo al director del Instituto Nueva Esparta y por supuesto le gustó la idea. Fue una tabla de salvación. A partir de ese momento se estableció un acuerdo beneficioso para ambas partes, por parte de la FA, formar recurso humano y por el Instituto Nueva Esparta facilitar la compilación de los programas de sus alumnos.

JP: Fuiste un gran enlace. Un intercambio bien bonito.

RP: Si, y yo iba a coordinar todo eso.

JP: ¿Eran mujeres quienes perforaban y transcribían los programas?

RP: Si, y yo sugerí que contratáramos a alguna de ellas a destajo. Pero finalmente se optó en utilizar los servicios de transcripción con una firma externa.

JP: Para ese entonces, la Central y la Simón Bolívar ¿Tenían sus propios computadoras?

RP: Si, incluso la de los Andes y la del Zulia también.

El prof. Patiño revisando el listado fuente del compilador Fortran que desarrolló para la cátedra de construcción de compiladores en la SMU (está escrito en lenguaje Pascal y arroja código Assembler para la Xerox Sigma-9 que tenían en la universidad en aquella época)

Patiño se fue a estudiar en University of Southern Missisippi, donde obtuvo un Bachelor in Computer Sciences y regresó, para continuar con su labor docente desde el año 1981 en el Instituto Nueva Esparta y a partir de 1987 en la Universidad Simón Rodríguez, primero entra como contratado por horas y después contratado medio tiempo, posteriormente concursó por la cátedra Lenguaje Fortran que le permitió obtener el escalafón de Instructor, más adelante, debido a sus credenciales, obtuvo una reclasificación como Profesor Asistente. Después cursó una Maestría en Gerencia de Informática en la Universidad José María Vargas y cuyo trabajo de grado, le valió su ascenso a Profesor Agregado. A partir de 2006 se jubiló como Profesor de la Universidad Simón Rodríguez. Desde 1990 hasta 1999 compartió sus labores docentes como Gerente de Informática en empresa de fármacos y misceláneos.