Mi octavo libro dedicado a recuperar al auténtico primer videojuego español, a la venta con precio muy popular en versión papel, o versión ebook económica.
La programación de software en el mundo PC de los años ochenta o noventa es muy diferente a la actual, y por medio de este artículo deseo recordar cómo se programaba en aquellas décadas ya pasadas. Deseo hablar de programación antigua.
En el año 1986 hice mi primer programa en calidad de programador «amateur»... en el año 2017, 31 años después, sigo programando... pero profesionalmente. A lo largo de estos años la programación ha evolucionado enormemente y la forma de desarrollar las aplicaciones, y los lenguajes, son completamente diferentes.
...no es lo mismo la programación ejecutada por un usuario, que la programación que ejecuta un profesional.
En este artículo deseo mostrar una visión de lo que era programar hace veinte y treinta años, y se hace necesario tomar un punto de referencia concreto debido a la gran amplitud de la especialidad del desarrollo de aplicaciones informáticas. Por ejemplo, no es lo mismo la programación ejecutada por un usuario, que la programación que ejecuta un profesional; no es lo mismo la programación industrial, que la programación de gestión; no es lo mismo desarrollar un protocolo de comunicaciones o un sistema operativo, que una aplicación de gestión.
Como punto de referencia de este artículo elegiremos a los programadores «amateur» que desarrollaban aplicaciones para su propio uso, y a los programadores profesionales que desarrollaban aplicaciones de gestión de medio tamaño; todo ello en el mundo PC. No vamos a entrar a hablar de los programadores de código máquina y ensamblador de los años setenta y primeros ochenta, héroes de la informática por la gran dificultad de trabajar con lo más cercano al lenguaje de la máquina.
La primera diferencia entre los años ochenta y primeros noventa con respecto a la actualidad tiene que ver con el ámbito de actuación del informático y sus especialidades. Allá en los ochenta existía el informático de sistemas, y el de gestión. El informático de sistemas se dedicaba a toda la gestión del hardware, redes, y sistemas operativos. El informático de gestión analizaba y desarrollaba aplicaciones. En la actualidad disponemos de un abanico de especialidades mucho más amplio, y en el área de desarrollo podemos encontrar programadores cliente/servidor, web, aplicaciones para móviles, «backend», «frontend», etcétera.
A finales de los años ochenta los lenguajes de programación más usados a nivel de usuario y profesional eran el BASIC, Lenguaje C, Pascal, Clipper, o COBOL (el compilador RM-COBOL el más común en el mundo PC) . Para la formación se demandaban los cursos de BASIC, COBOL, y un lenguaje RPG de la familia de ordenadores mainframe IBM AS/400 que, en aquellos años, podía proporcionar una importante salida profesional. A finales de los ochenta también existió una importante demanda de formación en dBASE III Plus para la gestión de bases de datos y la programación de aplicaciones dentro de su propio intérprete.
Para facilitar las tareas de edición, nacieron aplicaciones residentes en memoria para los sistemas operativos monotarea como, por ejemplo, el mítico Sidekick, que permitió disponer de un editor abierto en memoria al mismo tiempo que se ejecutaban tareas del sistema operativo como el compilado o linkado.
Los sistemas operativos más usados en la informática personal a finales de los ochenta contaron con la característica de ser monotarea y monousuario (por ejemplo MS-DOS o CP/M), por lo que era necesario utilizar un editor de texto para desarrollar el código fuente, y una vez codificado, era necesario cerrar el editor para compilar primero, y «linkar» después el fichero objeto creado por el compilador. Así se obtenía un ejecutable. Para las pruebas exactamente el mismo proceso: editar primero, cerrar el editor, compilar, y linkar. La depuración del código se hacía poniendo mensajes en el código para mostrar en pantalla el contenido de variables y los resultados del programa durante la propia ejecución. No había depuración paso a paso, inspecciones, ni nada parecido. Para facilitar las tareas de edición, nacieron aplicaciones residentes en memoria para los sistemas operativos monotarea como, por ejemplo, el mítico Sidekick, que permitió disponer de un editor abierto en memoria al mismo tiempo que se ejecutaban tareas del sistema operativo como el compilado o linkado.
No todas las aplicaciones desarrolladas a finales de los ochenta eran compilables. Muchas aplicaciones rodaban directamente sobre un intérprete o requerían un «runtime» de lenguaje en el que habían sido desarrolladas para ser ejecutadas; por ejemplo: GW-BASIC o dBASE IV. En esos casos no existía el compilado y linkado, ni la aplicación terminaba en un ejecutable final.
En algunos lenguajes de programación concretos, como el COBOL, antes de pasar la programación a un editor de texto, se desarrollaba todo el código fuente en unas plantillas previas de papel, plantillas creadas específicamente para el lenguaje en cuestión. La programación era lenta, y los que estudiamos informática en los primeros años noventa nos tocó desarrollar sobre aquellas plantillas; un odioso trabajo extra.
A partir de la existencia de los IDEs, procesos voluntarios ejecutados por el programador como el linkado y compilado, pasaron a ser procesos transparentes ejecutados en «background» por el IDE.
En los primeros años noventa la programación comenzó a migrar hacía los primeros IDE, editores exclusivos para el desarrollo de programas en un lenguaje de programación. Una empresa llamada Borland introdujo lenguajes de programación sobradamente conocidos como el BASIC, Pascal, o el Lenguaje C, pero incluyendo un IDE donde se podía editar el código, depurar en ejecución, y realizar inspecciones, sin necesidad de cerrar como sucedía en los editores externos, compilar, linkar, y ejecutar. Aquellas aplicaciones para desarrolladores creadas por Borland fueron el Turbo BASIC, Turbo C, o Turbo Pascal y su principal característica fue la rápida compilación-linkado en un solo paso, y la flexibilidad en el desarrollo que permitió el IDE. En realidad, Borland lanzó al mercado aquellos productos en el año 1987, pero su presencia real en España fue a partir de 1989 hasta 1993, aproximadamente. A partir de la existencia de los IDEs, procesos voluntarios ejecutados por el programador como el linkado y compilado, pasaron a ser procesos transparentes ejecutados en «background» por el IDE.
En los primeros noventa un nuevo tipo de lenguajes de programación como el Clipper comienzan a tener una importante presencia por las grandes posibilidades en el desarrollo de aplicaciones de gestión; no podían competir con los lenguajes con IDE, ya que el Clipper era un compilador de un lenguaje estructurado secuencial creado para el dBASE II, pero sí podía competir en el área del software de gestión por su importante personalización en ese aspecto concreto. Al mismo tiempo, también comenzaron a tener mucha presencia los lenguajes de programación orientada a objetos como el C++; la programación estructurada empezó a decaer.
En 1995 llegó al mundo PC el primer sistema operativo en entorno gráfico, y con ello llegó el sistema operativo multitarea y multiusuario enfocado al usuario. Lentamente se van introduciendo los lenguajes de programación visuales para crear aplicaciones en modo gráfico para el nuevo mundo que estaba naciendo. Lenguajes como Visual Basic, FoxPro, o Delphi, se ponen de moda para la creación de aplicaciones tipo «Windows». Pero la programación de objetos todavía tardaría varios años en llegar a los lenguajes de programación visuales. A partir de esta época el resultado final de cualquier lenguaje de programación es el ejecutable, por lo que los lenguajes interpretados o basados en «runtime» dejan paso a las nuevas tecnologías de programación basados en «framework» globales o en compilados basados en código nativo, siendo la todo el proceso de programación controlado por grandes entornos IDE.
Una nueva era en la programación se comenzó a abrir a finales de la década de los años noventa, apareciendo lenguajes de programación multiplataforma como el Java que buscaban la misma globalidad que empezó a encontrar el propio Internet.
En 1995, con la llegada de sistemas operativos Windows, comenzó a cobrar fuerza la necesidad de utilizar los lenguajes visuales para desarrollar aplicaciones bajo entornos gráficos y se fue haciendo necesario dejar de lado lenguajes primitivos para enfocar el área de la programación de aplicaciones hacia un mundo humano por medio de la programación orientada a objetos. Una nueva era en la programación se comenzó a abrir a finales de la década de los años noventa, apareciendo lenguajes de programación multiplataforma como el Java que buscaban la misma globalidad que empezó a encontrar el propio Internet.
A partir de 1995 se habla en programación de conceptos como clase, objeto, propiedad, método, evento, herencia, sobrecarga, etcétera; aquellos conceptos no existían en los años ochenta y primeros noventa, y se fue dejando atrás una programación estructurada y secuencial poco flexible y poco inteligible en un mundo humano basado en la realidad de nuestra percepción. También es importante destacar que, a mediados de los noventa, no existían todavía nuevos ámbitos como la programación web, ni la programación para dispositivos móviles. Los nuevos ámbitos aportaron un nuevo enfoque a la programación en el nuevo siglo, logrando protagonismo para los «framework» y las bibliotecas basadas en lenguajes de programación por encima de los propios lenguajes.
Desde nuestro punto de vista, la programación es mucho más interesante y atractiva en la actualidad con los modernos lenguajes visuales basados en la programación orientada a objetos, con sus IDEs que permiten una depuración flexible y un desarrollo funcional, y con su carácter gráfico. En los años ochenta y primeros noventa era mucho más aburrido -y retorcido- desarrollar aplicaciones, pero también hemos de afirmar que, cuando miramos globalmente el mundo de la informática de los años ochenta, nos invade un halo de positiva melancolía.
...no es lo mismo la programación ejecutada por un usuario, que la programación que ejecuta un profesional.