Mi relación con Pascal

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.

8 comentarios en “Mi relación con Pascal”

  1. Recuerdo con especial cariño Turbo Pascal.

    Lo primero por la capacidad de compilar en memoria -sin generar un .COM en disco-, creo que esa era la clave de la velocidad de desarrollo en tiempos donde no siempre uno tenía a mano un equipo con disco duro. Esta funcionalidad creo recordar que no estaba disponible en su hermano Turbo-C.

    Y en segundo lugar por las librerías TurboVision, de las que has hablado en otra anotación. Fue mi primera exposición a la programación orientada a objetos y realmente aquello me superaba por todos lados (como para entenderlo!). Pero recuerdo haberme sacado en la matricial un interminable listado de papel continuo con el código fuente de BREAKOUT.PAS. No lo entendía para nada, pero aún así se podía apreciar la belleza de ese código: ningún método tenía más de 5 o 6 líneas.

  2. A mi Turbo Pascal me gustaba MUCHSIMO!! hice muchas cosas usando su IDE, metiendo ensamblador mezclado con el código de Pascal. La verdad es que me gustaba mucho.

    Hace poco me enteré y sorprendí gratamente que Kotai (responsable de varios juegos actuales basados en clásicos del MSX) usa Delphi, que es el sucesor de Pascal!

  3. A mi lo que más me gustaba de Turbo Pascal era declarar un procedimiento como assambler y programar ese procedimiento en ensamblador, directamente desde el IDE de Turbo Pascal…

    Recuerdo que con Turbo C tenías que añadir a cada linea el asm y que no tenías un acceso directo a los parámetros definidos en el procedimiento/función… en Turbo Pascal si, podías definir cualquier parámetro y luego utilizarlo con su nombre en el código ensamblador… genial!!

    No hice mucho, sólo tontee un año con Pascal y no llegue al realizar ningún programa «completo» pero me divertí mucho.

    Saludos

  4. Tienes razón Juan Lupión, se me olvidó mencionar que si se configuraba para compilar en memoria, la compilación era todavía más rápida. En cuanto a Turbo Vision, mi situación fue parecida a la tuya. Sin duda un reto.

    josepzin, no me gustaba Pascal, pero coincidimos en lo del magnífico IDE.

    Fernando, cierto lo del ensamblador en linea, algo que tardó en llegar a Turbo C, y requería obligatoriamente pasar por TASM, aunque luego en la versión 3,0 ya se integrara. Eso si, el paso por TASM, permitía instrucciones i386, sin el hack de db 66.

  5. A mi no me gustaba nada de nada el Pascal, siempre fue un lenguaje del que huí, y no sabría decir por que exactamente, quizás era la sintaxis que me recordaba al basic, no sé, no me hagáis mucho caso. Quizás fue por qué en mi primer PC empecé con el Turbo C y luego ya cualquier otra cosa lo veía como un paso atrás.

    Magnífico post como siempre. Un saludo.

  6. Nunca he sido un «fan» del «Pascual» y desde que en la Universidad tuve la desgracia de tener que bregar con ese engendro indecente llamado Modula-2, aborrezco cualquier cosa que haga o diga N. Wirth… 😀

    En cambio, cuando era jóven y guapo, allá por 1987, asistí al único curso de formación que me hayan dado en toda mi carrera profesional (de hecho, aún no me dedicaba a la cosa esta), un curso de COBOL del INEM. Y fue ahí donde conocí el Turbo Pascal 3.0, no por el lenguaje, sino por !!!el editor!!!.

    COBOL tiene unas normas bastante estrictas de uso del encolumnado y el editor del TP era el único que había entonces que mostrara siempre una línea de estado con el número de línea y columna en el que te encontrabas. Así que mi contacto con TP fue para escribir COBOL. Original, ¿no? 😀

Deja un comentario