21 octubre 2024

Cuando era un computin

Resulta que me puse -por fin- a ordenar mi taller, y de paso traté de ordenar un poco la bodega, que está repleta de basura que han dejado parientes y amigos por años, pensando que con eso se liberaron de un problema, traspasándolo a nosotros, claro.

Ortdenar esa bodega es como limpiar los Establos de Augias, creo que el propio Hércules se vería en problemas tratando de organizar esa toneladas de basura. Pero no solo hay basura ajena sino también algo de basura propia.

Así fue como me encontré con cientos de diskettes de 3 1/2 y de 5 1/4 de los años en que me ganaba el caviar vendiendo programas. Allí deben estar los programas para control de centrales de compras del Regimiento Dolores, los de control de inventarios de Superaudio, de los Tribunales de Arica e Iquique y muchas empresas de la Zona Franca que vendí por esos años.

Recuerdo bien las dos veces que fracasé tratando de hacer un código, cuando recién empezaba con eso: la primera fue en el computador Radio Shark de don Andrés Guisa y la segunda vez cuando traté de hacer un programa de control de naves para la Gobernación Marítima de Iquique.

De ambos fracasos aprendí mucho, especialmente del de la Gobernación Marítima, que tratamos de hacer con el teniente Silva, que recién se había graduado de ingeniero en la Universidad Federico Santa María. Nos enredamos tanto en el diseño que al final no entendíamos nada y el maldito asunto quedó olvidado: trabajé muchísimo y no pude cobrar nada.

Pero igual fue una gran experiencia, aprendí casi todo lo que se de esos dos fracasos y de allí en adelante todos mis programas funcionaron, aunque no todos llegaron a entrar en producción, casi siempre por problemas administrativos o limitaciones de la máquina.

"Cualquiera puede programar"
Hice un curso con ese nombre, y otro que se llamaba "Aprenda Python en tres días", ambas afirmaciones son ciertas, no se necesita ser inteligente y ni siquiera ingenioso para aprender cualquier lenguaje de programación, se parece a aprender un nuevo idioma, pero es incomparablemente más fácil.

El inglés por ejemplo tiene unas 170.000 palabras, el español tiene 93.000 de uso común. Comparando con un lenguaje de programación. para aprender Python por ejemplo, basta conocer entre 20 y 40 instrucciones -que equivalen a las "palabras" de un lenguaje natural. ¡Imaginen aprender un idioma que tiene solo 40 palabras!

La sintaxis y gramática de cualquier lenguaje de programación es infinítamente más simple que la de cualquier idioma. Y tengan en cuenta que cualquier criatura maneja su lenguaje natural después de un par de años. 

Por eso los buenos programadores generalmente aprendieron por su cuenta cuando niños, no porque los niños sean más "inteligentes" sino porque hasta un niño puede aprender un lenguaje de programación en muy poco tiempo.

¿Y por qué entonces no todo el mundo se dedica a esribir código? Aquí viene el secreto: resulta que la programación es un oficio muy artesanal que requiere años de práctica dura. Un programador funciona igual que un escritor, son procesos muy parecidos.

Por eso cuando Centurio o alguien más me dicen "Pero si tu sabes Python ¿por qué no programas un corntrolador para drones?", eso equivale a suponer que cualquiera que sepa leer y escribir debería ser capaz de escribir una novela o una buena obra de teatro.

Claro que podría ser capaz, pero solo en potencia y después de pasar varios años desarrollando aplicaciones de ese tipo en específico. Hay infinitas clases diferentes de aplicación, la mayoría son muy especializadas.

La analogía entre un programador y un escritor es profunda, muchos buenos programadores también son buenos escribiendo porque el proceso es muy parecido. 

Así como un buen escritor debe haber leído cientos o miles de libros antes que sea capaz de redactar uno bueno, un programador también aprende de esa manera: copiando chunks de código que incorpora a su caja de herramientas y con el tiempo van desarrollando su estilo.

Porque existe un estilo de programar que a veces hace muy identificable al que escribió un código, tal como uno al leer un fragmento puede identificar que lo compuso el escritor tal o cual. 

Lo principal es entender que no basta dominar un lenguaje de programación para ser capaz de escribir código, tal como no basta saber un idioma para escribir buenas novelas o poesía.

Cuando yo empecé a programar tenía unos 14 años en 1969, aprendí Fortran y no fue hasta 1980, once años después que tuve acceso a un computador por primera vez, antes de eso mis programas eran en papel y lápiz y no tenía como probarlos, más que haciendo a mano flujos y tablas de entradas y salidas.

Eran los años de la prehistoria, donde los que sabíamos un lenguaje teníamos que hacer el trabajo que ahora hacen 10 o más personas, desde entender el problema hasta entregar un código en producción sin errores ni excepciones.

No era nada difícil, pero si excesivamente trabajoso. Los programas que escribía en Visual Basic y en VBA para los tribunales, al imprimirlos contenían más de 600 páginas de código y eso que eran aplicaciones sencillas. 

Si tuviera como leer los diskettes que aparecen en la foto los encontraría hoy y me podría entretener recordando los buenos viejos tiempos, cuando me amanecía en un viejo computador Epson tipeando como loco. Ya nada de eso puede existir, hoy eso es inviable.

En el año 2005, mi amigo Stephen tenía una empresa de computación de nicho en Estados Unidos, con un solo cleinte que le daba bastante plata y tuvo la mala idea de contratarme para que empezara a ayudar a montar y administrar servidores virtuales y hacer control de calidad del código que desarrollaban.

Fue una pésima idea, si hay algo para lo que yo no sirvo era justamente para eso, hice puros desastre y después lo dejé, es un recuerdo vergonzoso para mi por el horrible desempeño, nunca había hecho tan mal un trabajo en mi vida.

La última vez que tuve algo que ver con computación fue cuando me tocó supervisar un sistema grande y complicado en la Municipalidad de Tacna, en 2008. Ese tenía dos equipos de desarrollo que trabajaban en paralelo para hacer funcionar la cosa.

Habían varios programadores, un par de analistas, un diseñador, especialistas en bases de datos, unos dedicados al front end y otros al back end, gente dedicada a las pruebas y control de calidad y otros dedicados a documentar. No recuerdo cuantos, pero eran varios.

El problema fue cambiar un sistema antiguo y lleno de parches en modo de texto, pero que mal que mal funcionaba (a duras penas) por otro nuevo. Los primeros meses de producción fueron desastrosos y el asunto provocó una revuelta popular donde la gente salió a la calle a tirarle piedras a la municipalidad.

Al final zafamos, pero entonces entendí que ya no tenía nada que hacer en computación, el maldito asunto ya no me entusiasmaba. Muchos años después, solo por curiosidad aprendí Python en un par de días, resultó muy fácil porque es casi idéntico al Basic con el que yo había trabajado años 

En fin, esas cajas de diskettes me trajeron buenos recuerdos del pasado, me gané el caviar durante casi 20 años con eso, fue lindo y entretenido mientras duró, como todo.

28 comentarios:

  1. Diskettes de 5 1/4, me recorde de mi primer compu, con dos floppy sin disco duro...Caramba que estoy viejo :-)

    ResponderBorrar
    Respuestas
    1. Los programas que están en esos discos eran para equipos Radio Shack y para el Casio 9000P en Ca Basic y QBasic, en los diskettes de 3 1/2 son programas en Visual Basic y VBA ¡tiempos aquellos!

      Borrar
  2. Mmmmm ... buenos recuerdos de la "prehistoria" computacional ... jajajaja.

    Yo también recuerdo haber usado esos diskettes floppy y los de 3 1/2 ... de hecho, mi tesis de Geografía en la Ponticato (PUCCH), la escribí completa en discos de 3 1/2 ... y aprendí, a las malas, a usar dos discos, uno de trabajo y el otro nada más de respaldo.

    Dije "a la mala", pues partí escribiendo todo en un solo diskette, hasta que un día ese diskette falló y todo lo trabajado "a la basura" (ya llevaba como 3 capítulos de la tesis) ... por suerte y/o gracias a Dios, escribía todo primero a mano en un cuaderno y de ahí lo pasaba al disco, de lo contrario hubiera sido un absoluto desastre perder todo lo avanzado ... pero después de tener que volver a escribir todo lo que ya tenía listo, aprendí la lección y decidí de ahí para adelante, manejarme con dos diskettes, uno de trabajo y el otro exclusivamente para copiar y tener de respaldo.

    Hablo de los años entre 1985 cuando egresé de la universidad y 1990, donde ya me titulé.

    Lindos recuerdos ... más ahora, cuando ya a fin de año paso al equipo de los jubilados ... aunque sin duda continuaré haciendo pegas, pero ya por mi cuenta, no contratado con horario estable semanal ... jejejeje.

    Gracias Don Tomás, por estimularme estos gratos recuerdos

    ResponderBorrar
    Respuestas
    1. Es extraño que no recuerde haber tenido una catástrofe así con diskettes, con lo que si tuve -y muchas- fue con discos duros, había unos Fireball o algo así, que eran del porte de un libro, los usaba en mi computador Epson me fallaron tres al hilo y eso no había como arreglarlo, eran de 300 y 600 Mb todavía tengo uno, no se si funcionará de 100 Mb, tendré que destruirlo antes que me muera, por si las moscas.

      Esos discos son de antes que apareciera la interfaz SATA, es como dices, historia de la prehistoria

      Borrar
  3. Hoy tengo respaldo hasta por debajo de la lengua: un servidor NAS de 16 terabytes y unos 8 discos duros entre 1 Terabyte y 500 gigas, más los discos locales de los 8 laptop y los dos Ipad de la Pilar y el Tomás Jr, tengo todo repetido por todas partes ¡el problema ahora es encontrar lo que busco!

    ResponderBorrar
    Respuestas
    1. Jajajaaj ... yo solo tengo un par de discos duros externos en casa, más lo que está en la memoria de mi note y algunos pendrive también ... ahh, y lo que tengo en la memoria de mi compu de la oficina y que es personal, que a fines de diciembre, tendré que copiar a disco duro externo y llevármelo, pues yo me voy, pero mi compu laboral se queda, ¡¡obviamente!!

      Así y todo, de repente también me cuesta recordar donde tengo cosas que sé que por ahí tengo ... jajajaja.

      Como decía la canción; "el tiempo pasa y ...", la memoria es frágil .. ¡¡qué se le va a hacer!!

      Cordiales saludos

      Borrar
    2. Mmmm ... creo que se comprende .. pero cuando hablo de "memoria frágil", me refiero a la cerebral, obviamente ... jejejeje.

      Las otras no se píerden, al menos mientras no falle el hardware o quede obsoleto aquel o el software (me paso con una especie de "diario de vida" que alguna vez escribía en WordPerfect y que cuando ese programa desapareció, perdí un montón de escritos y muchísimos recuerdos) ... ¡¡en fin!!

      Borrar
    3. Toda memoria es frágil y todo se terminará perdiendo, tanto la del cerebro como la digital. Al final no quedará mada, eso si que es seguro.

      Borrar
  4. Mi experiencia es muy inferior. Programé bastante pero para una actividad donde el principal consumidor éramos mis colegas y yo, una simulación del proceso fabril, para ensayar esquemas de cocimientos. El tipo de programas para el que más se prepara un ingeniero.
    Después en un trabajo externo hice los programas de una desmotadora de algodón, los recibos de algodón, liquidaciones a los productores, cuentas corrientes, ese tipo de cosas. Logré sobrevivir a eso.
    Ya enteramente por libre un "despachante de aduana" me hizo preparar un programa que creo le sirvió. Era un tipo que se ganaba la vida presentando a la Aduana el desarrollo de lo que venía en un contenedor, debía pasarlo a la codificación aduanera argentina y autoliquidarse los impuestos. Un curro burocrático, combinar unas bases de datos y nada más.
    Ese mismo tipo era un gran apostador de la quiniela de números y quería un programa para seguir los números. Quería seguir los números que habían salido a la cabeza, al segundo puesto, tercero, la etc.. etc... y quería apostarle a los más retrasados.
    En ese momento, en un ataque de honestidad "nerd", le dije que era una pelotudez su idea, que los números no tienen "memoria" y ninguno acumula más probabilidades de salir al siguiente tipo porque haya pasado un rato mayor o menor sin salir, o acabase de salir. Se ofendió, pero por suerte le dio por atribuirlo a mi inexperiencia como jugador. Me terminó dando una clase de probabilidad tal como él la entendía, en ese momento mi reserva de honestidad estaban ya agotadas, acepté, le hice su programa que no lo ayudaría a ganar nunca y le cobré mejor que el primero, el que sí servía para trabajar. Uls

    ResponderBorrar
    Respuestas
    1. Ah Ulschmidt ¡el cliente tiene siempre la razón! jaja, aunque pida pelotudeces hay que hacerlo feliz ¡bien cobrado! Al menos le diste sus minutos de esperanza de ganarse la quiniela

      Borrar
    2. él aseveraba que acertaba más desde que lo tenía! Pero tengo un amigo "burrero", propietario de un caballo y apostador empedernido, que sólo recuerda los fines de semana en que salió ganando. Si por su segada cuenta fuera ya debería ser Midas. En cambio está en la lona, como es previsible. Uls

      Borrar
    3. Ese sesgo lo tenemos todos, yo tengo un chanchito de la suerte, un ekeko y varios otros amuletos que me protegen de todo mal y no me fallan nunca... excepto cuando me fallan que es casi siempre- Pero de eso ni me acuerdo

      Borrar
  5. Recuerdo alcanzar a conocer los diskettes, aunque no tuve tanta interacción con ellos como con los cassettes y los VHS. Aun conservamos de los dos últimos pese a no tener cómo reproducirlos.

    ResponderBorrar
    Respuestas
    1. Es el problema que tengo yo con una pila de discos duros viejos, que vienen con la interfaz para los I 386 y 486!

      Borrar
  6. En mi caso, mis primeras experiencias computacionales fueron a mediados de los años 80, esporádicamente, con un Commodore 64 del colegio, donde nos enseñaban a “programar” en lenguaje LOGO. Luego tuvimos un Sinclair ZX Spectrum en la casa y ahí aprendí a programar bastante bien (para mis 10 años en aquel entonces, uuuh…) en BASIC, con cassetera!

    Con el tiempo pasé a PCs con MS DOS. Hacía programas batch ultra simples, pero útiles, como un menú de texto, incluso con submenúes, para acceder a los distintos programas, en una época anterior a las interfaces gráficas, cuando aún no existía Windows y, cuando éste apareció, no era un sistema operativo.

    Ya en la universidad, aprendí Pascal y otros lenguajes inútiles, por esa especial habilidad que tienen en las Ues para enseñar cosas obsoletas. Al final aprendí algo de C++, que me gustó harto, pero ya había pasado el tren…

    Así que siempre fui una especie de usuario avanzado, sin ser profesional ni experto en el tema. Los programas que sabía hacer eran para entretenerme o como utilidades simples, pero nunca como para vender ninguno.

    Saludos,
    El Triministro.

    ResponderBorrar
    Respuestas
    1. Yo no tuve esa etapa que tuvieron la mayoría de los programadores de esos años, con Atari, Sinclair, Comodore, etc. los primeros programas los hice picando trajetas, que se mandaban en bus a Antofagasta y llegaban de vuelta como en tres semanas después de ser procesadas por el Burroughs 1715 o el IBM 360 que tenía la universidad.

      Un año después llegaron los PDP11 (creo que eran esos, o DEC) con los terminales VT100 que usaban una versión de Basic en tiempo compartido, aprendí Basic en un par de días y le empecé a hacer clases particulares a los profesores que no tenían idea de programar (yo programaba -en teoría- desde los 70)

      De ahí un amigo me presentó a Gabriel Abusleme y me propuesieron que vendiera los Casio FX9000P al 5% de comisión y los prograsmas eran para mi, ahi me forré, los computadores valían como 2500 dólares y yo cobraba entre 800 y 1000 por los programas, grito y plata!

      Vendí más de 60 de eso equipos, el FX900P me cambió la vida

      Borrar
  7. Lo de los diskettes me recordó una noticia que leí hace poco: los discos duros de los años 90 ya están empezando a fallar. Lo contaba en una entrevista un ejecutivo de Iron Mountain que decía que los sellos musicales han perdido grabaciones que creían seguras, pese a que estaban almacenadas en condiciones óptimas.
    Eso también me recuerda que debo digitalizar mis VHS y 8mm antes de que la desmagnetización me haga perder recuerdos familiares. Dicen que los discos M-DISC son bastante longevos y a precio accesible.

    ResponderBorrar
    Respuestas
    1. Hola Rafael, mi impresión es que los discos duros antiguos fallaban mucho más que los de ahora, recuerdo que en los 80-90 los discos duros me duraban máximo 5 años. En todo caso no existe almacenamiento masivo seguro, por eso se necesita una masiva redundancia de todo lo que tenemos. Lo bueno es que como el almacenamiento es más barato ahora, la redundancia está al alcance de la mano, yo creo que la clave está en diversificar.

      Una parte en un sistema RAID como los synology, otro tanto en discos duros convencionales y también un servidor web para el corto plazo, si falla uno debería salvar el otro.

      En todo caso todo lo que tengamos va a desaparecer en un momento dado, ya llegará el día en que las 6.774 entradas y los 88.089 comentarios de este Templo del Ocio se van a evaporar y nadie sabrá las tonteras que pensábamos. Espero ya estar bien muerto cuando eso pase, ahi me importará un pucho

      Borrar
  8. Ni siquiera me imagino cómo sería eso de esperar 3 semanas para que te llegara la salida de vuelta y recién ahí darte cuenta de que había un error en el código…

    Yo no alcancé a conocer las tarjetas en persona. Lo más antiguo que me tocó fueron los sistemas operativos con lenguaje nativo integrado, como el BASIC de los Commodore, Atari o mi Spectrum. Después de eso vinieron los PCs sin disco duro, con DOS cargado en diskette y pantallas Hércules.

    Los niños y jóvenes de hoy por supuesto ni se imaginan esa época, pero saben mucho menos que nosotros. Nivel usuario, con suerte, y muy pocos saben desarrollar aplicaciones, que sería el equivalente actual de programar. Seguro es menos necesario, pero no me deja de alarmar el tan escaso dominio de todo. Para mí es como irse de viaje lejos en auto sin saber cambiar un neumático.

    PD: Por alguna razón es entretenido conversar de estas cosas prehistóricas…

    Saludos,
    El Triministro.

    ResponderBorrar
    Respuestas
    1. Es entretenidísimo recordar esos años felices. Lo peor de picar tarjetas era cuando alguien te hacía una broma y cambiaba una tarjeta de lugar, como se procesaba en batch por la noche y la salida era solo por impresora, empezaba a imprimirse un ciclo infinito hasta que se terminaba la resma de papel perforado!

      Yo no creo que la inteligencia o la mente puedan entrenarse, aunque ese es el principio de toda la enseñanza. Se supone que los que juegan muy bien ajedrez son muy inteligentes pero no es el caso, tampoco los buenos para las matemáticas ni nada de eso, lo único que puede entrenarse eficazmente son habilidades mecánicas del pensamiento, cosas de lógica, matemática, etc. que cada día hacen más las máquinas que aprenden.

      Yo me se las tablas de multiplicar, el cuadrado del binomio, muchas lindas demostraciones geométricas y cosas así ¿de qué diablos me sirve?

      Borrar
    2. No entendí a qué viene eso último pero, respondiendo tu pregunta, sirven para lo mismo que te es útil saber cosas como la genealogía, programación, mecánica o historia: para nada o para mucho, dependiendo del gusto y del uso que le quieras dar, IMHO.

      Saludos,
      El Triministro.

      Borrar
    3. Sin duda, si uno lo disfruta por supuesto que vale la pena

      Borrar
    4. No se me escapó en la conversación la mención a los respaldos, que son uno de mis pecados. Siempre he tenido esos respaldos tipo "inserte un pendrive y oprima acá" que siempre olvido hacer. He enviado discos duros a reparar mientras rezaba por su rescate. Una vez compré un sistema donde supuestamente una cinta interna o doble disco duro hacía el backup... pero también olvidada correr la rutina.
      Ahora supongo que el resguardo ocurre en la nube. Tampoco lo implementé. Los dioses del bit aún podrán castigarme, algún día. Uls

      Borrar
  9. Hola Tomas,
    Muy entretenida su entrada de hoy.
    Recuerdo en mi especialidad habian unos computadores IBM
    IBM_Personal_Computer_model
    que uno utilizaba ya sea usando Fortram o Basic

    ¿Qué opina de esta aplicación para SO Window ?

    qb64

    Por otro lado, insistiré en lo del dron...😉

    ResponderBorrar
    Respuestas
    1. Creo que el QuickBasic y sus variantes en modo de texto ya son fósiles, aunque igual QB64 puede servir para correr código muy antiguo, por ejemplo si pudiese leer los diskettes que tengo, tal vez sería divertido

      Borrar
  10. Ah, me estoy poniendo al día con su blog don Tomás, y me encuentro con esta entrada de las mías.

    Mi historia particular con la programación es que aprendí leyendo unos especiales de Icarito Computación. Traían unos listados en Basic y yo los escribía a lápiz y los analizaba, porque de computador ni hablar. En sexto básico aprendí a hacer la cimarra y viajaba todo Santiago desde la zona sur al Parque Arauco, donde en la tienda Muricy vendían computadores Atari y los vendedores te dejaban tranquilo jugar con ellos. Ahí ejecuté mis primeros programas en Basic; los escribía durante la mañana y quedaban funcionando durante la tarde, y se borraban en la noche.

    Ah, tiempos mozos que no volverán, ñaca ñaca.

    ResponderBorrar
  11. En mis años hijotos todo era mejor, no como en estos tiempos desgenerados.

    Recuerdo que cuando aparecieron los Atari -acá llegaron después de los Casio- fueron un tremendo éxito y una competencia directa para mi, pero con el FX-9000P tenía una gran ventaja que era la memoria contínua: todo funcionaba en RAM y era muy rápido, era una basura para juegos pero una joya para inventarios, cuentas corrientes, contabilidad y esas cosas.

    Que gran revista fue Icarito, Isabel Allende fue una de sus directoras. Chile tuvo una tradición de revistas espectaculares desde los años to: Paula, Ercilla, Icarito, Ritmo, uno las lee ahora y siguen siendo interesantes

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"