Skip to main content

Noy hay porque cambiarlo

Hace algunos años, trabajé en una compañía que desarrollaba una aplicación de gestión de ventas para concesionarios de automóviles. Esta empresa era reticente a saltar al carro de la nueva tecnología. De hecho, decir que esta compañía evolucionaba lentamente no es una exageración, es una afrenta a la misma palabra “retraso”. 1200 baudios: es lento. El correo en vacaciones: realmente lento. El movimiento del glaciar: realmente, realmente lento. Esta compañía: algo así como la fosilización.

La compañía desarrolló la primera versión de su producto en 1973 usando COBOL y IBM System/3.

Fue un éxito inmediato: centenares de representantes compraron su producto y diez millones de dólares en ventas entraron en la compañía. Habían descubierto la fórmula correcta y no deseaban cambiarla.

A pesar de los numerosos adelantos tecnológicos de la década siguiente, permanecían en sus trece y continuaron mejorando y optimizando su producto para la plataforma System/3. Incluso se llegó al punto donde comprar un System/3 anticuado resultaba considerablemente más costoso que comprar una computadora a estrenar mucho más potente. Pero eso no importó; su sistema funcionaba y no había necesidad de cambiarlo.

Y entonces sucedió: IBM anunció que el sistema System/3 dejaría de mantenerse. Enfadados, pidieron a IBM que continuara apoyándolo.

Al ser ellos uno de los clientes usuales del System/3, IBM se ofreció enviar un equipo de consultores para ayudarlos en la transición a la nueva plataforma x86. La compañía lo rechazó.

En su lugar, emplearon un pequeño grupo de frikis para desarrollar un emulador que permitiría ejecutar las aplicaciones de System/3 en el x86. Extrañamente funcionó y no hubo necesidad de cambiar nada más.

El emulador trabajó bastante bien durante varios años y continuaron desarrollando su producto en COBOL para System/3 y ejecutándolo en un x86. Hasta que el fabricante de su compilador de COBOL dejó el negocio.

La mayoría habría intuido que era el momento de cambiar a un nuevo lenguaje y a una nueva plataforma de hardware. Ellos no.

Su solución fue, otra vez, emplear un equipo pequeño de frikis para desarrollar su propio compilador de COBOL que traduciría todo el código COBOL a C para posteriormente compilarlo como una aplicación para el x86. Extrañamente funcionó y no hubo necesidad de cambiar nada más.

Por supuesto, uno de los problemas más grandes de su traductor/compilador de lenguajes era que producía un código C totalmente ilegible que ninguno de los programadores de COBOL llegaba a entender y aún menos a poder utilizarlo para eliminar errores de la aplicación.

Los frikis fueron invocados de nuevo para crear un entorno de desarrollo de COBOL más amigable que pudiera depurar el código paso a paso. Asombrosamente, funcionó y pudieron continuar desarrollando en System/3 COBOL durante la siguiente década.

Estábamos ya en 2001 y la compañía volvía a necesitar otro equipo de frikis. Y aquí es donde yo entré en juego. La compañía deseaba extender su alcance en Europa, pero el mercado europeo estaba plagado de esa nueva tecnología de lujo llamada “Windows.” Dado que daba problemas funcionando bajo la consola de Windows, nos llamaron a unos cuantos para ayudarlos a abrazar la “nueva” tecnología de Windows. Obviamente, se les aconsejó desarrollar plenamente en C/C++ y en un entorno real de desarrollo bajo Windows, pero cayó en oídos sordos. Nos pusimos manos a la obra para intentar buscar una manera de traer su System/3-COBOL-traducido-a-C al mundo de Windows.

Uno de los retos era el control de eventos de COBOL, o más exactamente, su carencia. En Windows, cuando un usuario pulsa un botón se dispara un evento para indicar lo que ha ocurrido. En COBOL, el programa pregunta periódicamente si el usuario realizo una acción.

Se intentó trabajar alrededor de esta idea creando una “cola de acciones” que permitía que COBOL viera qué estaba sucediendo y poder responder al suceso.

El desafío siguiente consistía en crear un interfaz para la aplicación, o, más exactamente, crear un generador de interfaces que traduciría las pantallas de la consola a las formas de ventanas de Windows. Se consiguió increíblemente hacer eso, también.

Asombrosamente, una vez que “el proyecto de la conversión a Windows” se realizó exitosamente, su software trabajó correctamente en esta plataforma.

Su aspecto era terrible, funcionaba increíblemente lento y requería muchísima potencia de procesador y muchísima memoria RAM, pero funcionaba. La compañía podía seguir manteniendo su piso entero de programadores de COBOL que trabajaban desarrollando en System/3-COBOL-traducido- -a-C-renderizado-en-Windows.

Después de todo, encontraron una fórmula que funcionó y no había porque cambiarla.


Adaptación de thedailywtf.com

Comments

Popular posts from this blog

Himno de Teleco

Himno de la carrera de ingeniería de Telecomunicaciones, al más puro estilo Dragon Ball. Para echarte unas risas. Aviso de antemano: el humor de la canción está dirigido exclusivamente a estudiantes de Telecomunicaciones, ingenieros de ídem o a cualquiera que tenga unos conocimientos básicos (universitarios) sobre señales y sistemas. Vamos con Payán, todos a la vez a buscar con ahínco un sistema de transmisión. Sin duda será, convencido estoy, lineal, invariante y sin distorsión. Este mundo es como un filtro ideal donde hay escondido un suspenso en él. Como un filtro multicolor con un cero de transmisión, como una variable aleatoria con toda su gran inversión, el proceso empieza ahora, ¡vamos a filtrar, filtrar, filtrar, filtrar, filtrar! Hallaremos su covarianza y también su correlación, con la respuesta al impulso hallaremos convolución, el filtro sin distorsión será al fin nuestro, oh. Integrémoslo por Fourier, unidos a Gauss no hay que temer pues tenemos el DSP, ¡que no sirve p...

Los Captchas y el Profeta

Ultimamente hay una palabra "nueva" en Internet que me ha llamado la atención. Se trata de Captcha. Es un tipo de prueba que intenta dificultar la automatización de ciertas tareas en Internet, obligando a un usuario humano a realizarlas. Su intención es dificultar el abuso de estos recursos, en forma de spam en foros públicos, la creación automática de cuentas de correos o cualquier otra actividad automatizada masiva. La típica prueba de captcha consiste en que el usuario introduzca un conjunto de caracteres que se muestran en una imagen distorsionada que aparece en pantalla. Se supone que una máquina no es capaz de comprender e introducir la secuencia de forma correcta por lo que solamente el humano podría hacerlo. Lo más curioso de todo esto es el origen del nombre. Captcha proviene del acrónimo Completely Automated Public Turing test to tell Computers and Humans Apart, o sea, Prueba de Turing pública y automática para diferenciar a máquinas y humanos. Esta prueba también s...

Cosas que los programadores prefieren al dinero

Muchos de los desarrolladores que conozco llevan programando desde el instituto. Tanto si era construyendo juegos en modo texto en C como creando una aplicación para el banquillo del equipo de fútbol de la escuela en Visual Basic, es algo que hacían por el desafío y, claro, por las chicas. Las mujeres aman a un hombre que puede hablar en ensamblador con su 8086. Los graduados universitarios se enfrentan a una triste realidad cuando abandonan el vientre protector de la universidad y tienen que conseguir su primer empleo. Muchos de mis amigos encontraron trabajos donde pagaban una miseria al salir de la universidad, y les asombraba que la diferencia entre salarios iniciales de ingenierías y salarios iniciales de informática era casi el doble. Pero la mayoría de los ingenieros en mi clase no se hicieron ingenieros por el dinero; lo hicimos porque teníamos un profundo deseo de trastear e impresionar a nuestros amigos. ¿Ya os he dicho lo de las chicas? El dinero es un factor de motivación p...