Hace algunos días surgió una conversación en la que varias personas se sorprendían porque siguiera usando el lenguaje Pascal en estos días. Me pareció lo suficientemente interesante como para reflexionar sobre ello, y publicarlo aquí, ya que en lo que a mi respecta, Pascal es un lenguaje que nunca me ha gustado demasiado, que que en cambio si he utilizado bastante.

Analicemos a continuación el porqué… Primero de todo, Pascal fue el primer lenguaje más o menos serio que aprendí. Dominaba varios dialectos de BASIC, algo de ensamblador Z80, y otros lenguajes sencillitos como LOGO, pero quería algo más. De manera que tuve la oportunidad de hacerme con Turbo Pascal 3, y su manual fotocopiado para irlo trasteando.

En aquellos tiempos en que era difícil conseguir determinado software especializado en nuestro pais, incluso si tenías pensado pagar por él, Turbo Pascal 3, me permitió contar con un IDE bastante rudimientario, en especial comparado con Turbo Basic 1.1, pero al menos permitía trabajar con un lenguaje que se consideraba serio. Al final no era tan potente como pudiera parecer, pero si es cierto que generaba unos ejecutables (COM) muy compactos, eficientes, y compilaba tremendamente rápido. Ésto último sería una característica que lo acompañaría a lo largo de su vida.

Cuando conseguí la versión 4, esta vez el IDE se ponía a la altura de los mejores, manteniendo el resto de sus virtudes, y aumentando su potencia. Pudiendo empezar a hacer cosas, que antes no era capaz de hacer.

Después aprendí C, un lenguaje que si me gustaba, y que era mucho más potente. Turbo C, estaba a la par de Turbo Pascal, pero generaba código todavía mejor, así que mis esfuerzos se centraron en esa linea. Sin embargo poco después, volví a Pascal, con Turbo Pascal 5.5, pude adquirir nociones de POO, que luego me servirían para C++, y con Turbo Pascal 6 conté con un entorno de trabajo tremendamente productivo, que seguía compilando a la velocidad del rayo, y que manejaba ensamblador en linea (BASM) de una manera muy cómoda.

Por supuesto con el auge de las herramientas de Microsoft, probé también Quick Pascal, que en realidad no ofrecía nada que no tuviera ya.

Con Borland Pascal 7, ocurrió más o menos lo mismo, mientras que Borland C++ 3.1, era un entorno pesado, y los ejecutables tardaban en generase, Borland Pascal era mucho más rápido, y las sesiones de depuración eran muy suaves.

Seguí mis derroteros con C, y algo de C++ mayoritariamente con Borland C++ y ensamblador que me encantaban, pero también con Watcom C/C++, Clipper, dBase IV, … Las cosas más o menos sencillas las seguía haciendo en aquellos días en BASIC con Quick BASIC o Turbo BASIC primero y el gran PowerBASIC después.

Los interfaces de usuario en modo texto (TUI), seguían en uso, y por aquellos días, su rendimiento no tenía parangón. El mejor era sin duda Turbo Vision, y aunque luego aparecería para C++, la mejor forma de utilizarlo era con Turbo/Borland Pascal.

Con la popularición de Windows, comencé con Visual Basic 3, un lenguaje poco eficiente, pero en un entorno realmente RAD muy productivo, así que luego hice mis pinitos con Delphi 2, el mismo lenguaje Pascal que no me entusiasmaba, pero siendo RAD, y generando ejecutables nativos rápidos de verdad.

Apareció C++ Builder 1, de nuevo la potencia de C++, con un entorno RAD, que es por donde iría mi camino de programador aficionado, aunque a nivel profssional las cosas fueran bastante diferentes.

Ni Pascal ni DOS habían muerto con la cancelación de Turbo Pascal, así que aparecieron entornos como TMT Pascal, FreePascal y el increíble Virtual Pascal, que actualizaban el soporte hardware a procesadores de 32 bits en modo protegido, siendo bastante compatibles con Turbo Pascal, y en general mejorándolo.

Fue pasando el tiempo, y en la parte más reciente desarrollé Lamark, un programa muy sencillo como excusa para ponerme al día con ensamblador, de nuevo con C++ Builder. En 2012 lo reescribí enteramente en Lazarus, la razón no fue otra que dar soporte nativo a plataformas x64, que Delphi no permitía. E incluso con las versiones XE2 y XE3 que ya lo permite, todavía no es capaz de manejar ensamblador x64 en linea…

Me dejo algunas cosas en el tintero como los instaladores de InnoSetup, que se programan en un dialecto de Pascal, las clases de Modula-2 en la universidad, y el extraño Topspeed Modula-2, …

Como podéis ver, ha sido una relación curiosa, un lenguaje que nunca me ha gustado, pero que siempre ha ido acompañado de buenas herramientas e implementaciones.