2 puntos por GN⁺ 2023-12-02 | 1 comentarios | Compartir por WhatsApp
  • Turbo Pascal, presentado por Borland en noviembre de 1983, cumplió oficialmente 40 años en noviembre de 2023
  • Turbo Pascal fue el producto que marcó el inicio de Borland y es considerado el primer entorno de desarrollo integrado (IDE) ampliamente usado en la industria
  • En su momento dejó una fuerte impresión por la experiencia de desarrollo y el nivel de terminación del producto, lo que derivó en un gran éxito comercial
  • Embarcadero sigue desarrollando la línea de compiladores sucesora, y el compilador de línea de comandos Win32 de Delphi 12 Athens usa la versión 36.0
  • Como el esquema actual de numeración de versiones se remonta al primer Turbo Pascal, este 40 aniversario también está directamente vinculado con la historia de la línea Delphi

Turbo Pascal, iniciado en noviembre de 1983

  • Turbo Pascal fue un producto lanzado por Borland en noviembre de 1983
  • Para noviembre de 2023, cumplió oficialmente 40 años

Su lugar en la historia de Borland y de los IDE

  • Turbo Pascal es considerado un producto hito de la industria
  • Fue el producto que dio origen a la compañía Borland
  • Se lo menciona como el primer IDE ampliamente conocido
  • Para los estándares de la época, era un producto sobresaliente y su escala de éxito fue enorme

Lecturas adicionales y contexto de Pascal

El compilador sucesor que llegó hasta Embarcadero

  • Embarcadero sigue desarrollando la línea de compiladores sucesores de Turbo Pascal
  • Recientemente lanzó la versión 36 de ese compilador
  • El compilador de línea de comandos de Delphi 12 Athens incluye la indicación de versión Embarcadero Delphi for Win32 compiler version 36.0
  • Este número de versión 36 pertenece a un esquema de numeración que se remonta al primer Turbo Pascal

Easter Egg por el 40 aniversario

  • Para conmemorar este 40 aniversario, Embarcadero dedicó un Easter Egg del producto al aniversario de Turbo Pascal
  • El mensaje termina con “Happy 40th birthday, Turbo Pascal!”

1 comentarios

 
GN⁺ 2023-12-02
Comentarios de Hacker News
  • Uno de mis videojuegos favoritos era ZZT, escrito en Turbo Pascal. Era un extraño juego en modo texto creado por Tim Sweeney, de Epic Megagames, que mezclaba puzzles, disparos y otras cosas; incluso la versión shareware gratuita incluía un editor de juegos y hasta un pequeño lenguaje de programación llamado ZZT-OOP.
    El código fuente original de ZZT se perdió, pero años después Adrian Siekierka hizo ingeniería inversa de forma meticulosa al código Pascal original, hasta lograr que al compilarlo con la versión original de Turbo Pascal produjera un ejecutable idéntico byte por byte. Es increíble.
    https://blog.asie.pl/2020/08/reconstructing-zzt/
    https://news.ycombinator.com/item?id=22609474
    https://benhoyt.com/writings/zzt-in-go/

    • Por ZZT tengo Turbo Pascal instalado en mi computadora.
    • Para mí también ZZT fue un software realmente especial, y fue lo que me hizo entrar de lleno en la programación. Antes copiaba listados de código BASIC de revistas o hacía cosas triviales en la BBC Micro de la escuela, pero en mi primera PC aprendí creando desde cero lo que quería con ZZT-OOP.
    • ZZT también inspiró el overworld de Frog Fractions 2.
  • Turbo Pascal me inició en la programación. Recuerdo haber gastado cientos de marcos alemanes en licencias de Borland Pascal 7.0 y, más tarde, de Delphi 1.0 y 2.0, y al final terminé creando mi primer software “comercial” que vendí por dinero.
    En la época de DOS, aparte de Basic, Turbo Pascal probablemente era el camino más fácil para entrar a la programación, y en Windows 3.1/95 Delphi fue una herramienta reveladora que mostraba lo fácil que podía ser programar GUIs.
    En muchos sentidos siento que incluso hemos retrocedido desde entonces. Los compiladores de Turbo Pascal / Delphi generaban programas GUI completos como binarios pequeños; me pregunto cómo es que hoy el software con un rendimiento similar terminó siendo varios órdenes de magnitud más grande.

    • En las primeras versiones de Turbo Pascal, mientras el programa y el código fuente cupieran en la RAM, incluso en las máquinas de la época el ciclo de cambiar código y ver el resultado era prácticamente instantáneo. La interacción también estaba diseñada pensando en la inmediatez y, según recuerdo, en vez de escupir una pantalla interminable de reportes de errores de compilación, te llevaba directamente a la línea donde estaba el error.
      Si la causa era un typo, corregirlo, recompilar y ejecutar tomaba un segundo. Muchas herramientas actuales tienen otra filosofía, que exige al desarrollador más acciones innecesarias.
    • Un programa GUI de “funcionalidad completa” de los 90 probablemente sería casi inutilizable según los estándares actuales. Dicho de otro modo, los frameworks y programas de hoy no tienen un rendimiento similar a los de mediados de los 90, y con solo recompilar una app de hace 25 años con una versión actual del framework, en teoría, se le agregarían cosas como Unicode, internacionalización, accesibilidad y soporte de red.
      La excepción es SAP, que de alguna manera parece haber logrado combinar la hostilidad hacia el usuario de las interfaces de los 90 con el consumo de recursos de los programas modernos. Después de BASIC, el siguiente lenguaje que usé también fue Turbo Pascal.
    • Ah, marcos, qué viejo suena. No sé si era solo en Reino Unido, pero al hablar o escribir nunca traducíamos el nombre mark al inglés; siempre lo llamábamos Deutschmark.
    • A ese ejecutable le faltaba al menos un elefante enorme en la habitación: soporte para Unicode. Probablemente ni siquiera habría cabido en la RAM de una PC de aquella época.
    • Turbo Pascal no solo enseñaba programación procedural descendente, que era el enfoque habitual de Pascal en ese entonces, sino también programación orientada a objetos mediante la demo de Breakout.
  • Lo que más recuerdo de TP es que cada función tenía ejemplos de código simples y fáciles de entender, y que estaban organizados de forma lógica, así que era fácil encontrarlos y usarlos. Por eso, aunque era un adolescente que apenas entendía BASIC, pude aprender Turbo Pascal por mi cuenta solo con el IDE, sin internet.
    En muchos sistemas actuales no hay nada ni remotamente parecido. Me pregunto si era gracias a la naturaleza de los sistemas simples basados en x86 DOS de aquella época, o si hoy se volvió imposible crear algo así por el ritmo acelerado de cambio, los requisitos multiplataforma y la complejidad.

    • Processing(P5) tenía algo así. En el IDE podías seleccionar una cadena de texto y buscarla en la documentación; si era una función o constante integrada, se abría una página HTML estática instalada junto con el software, sin necesidad de internet ni de un servidor. Podías navegar la documentación estando offline, y siento que en la generación moderna de sitios estáticos se perdió esa capacidad básica.
      Quisiera agregar que Processing era el único framework de creative coding de esa época con documentación completamente offline. Por ejemplo, OpenFrameworks todavía hoy tiene, en su mayor parte, documentación casi vacía generada automáticamente.
      En mi opinión, ese fue uno de los factores que le dio a Processing una ventaja frente a sus alternativas en entornos educativos. Me dio bastante pena que p5.js no continuara del todo esa tradición, que para leer la documentación haya que conectarse a internet y que, en lugar de ser un sitio web estático, el texto se renderice con JavaScript al abrirlo. Aun así, la documentación en sí es completa, incluidos los ejemplos.
      https://processing.org/
      https://p5js.org/
    • Eso es porque hoy la gente no escribe documentación. Los lenguajes nuevos suelen ser de código abierto y existe una cultura de “lee el código fuente”, pero creo que eso está mal.
    • Yo también aprendí Turbo Pascal sin libros. Tenía el libro de BASIC que venía con la computadora, pero Turbo Pascal era mucho más fácil. Dibujar píxeles era tan simple como elegir un modo de visualización con doble búfer y dibujar los píxeles; leer el puerto del joystick o el mouse también era simplemente leerlos.
    • Con Turbo C pasaba lo mismo. Hoy, para encontrar ejemplos, hay que tener suerte.
    • A mí me pasó igual. Después de usar GFA Basic durante varios años, conocí Turbo Pascal y me resultó de mucha ayuda porque se sentía como una versión de BASIC con bloques de código, tipos de variables con registros, funciones y procedimientos, e incluso referencias. Aprendí Pascal leyendo la documentación de ayuda y revisando los ejemplos muy claros y útiles que había en casi todas las páginas.
      Eso fue varios años antes de conocer internet en la universidad, así que no había una forma fácil de acceder a materiales de aprendizaje. Antes había intentado aprender C varias veces sin mucho éxito, pero recién después de aprender TP pude trasladar a C lo que había aprendido en Pascal, y aun entonces me ayudó otro gran producto de Borland: C++ Builder.
  • A fines de los 80, después de pasar por ensamblador 6809E, variantes de BASIC estructurado y batch/shell, el primer lenguaje de programación “real” que aprendí fue Turbo Pascal. Cuando entré a la carrera de informática a principios de los 90, también enseñaban las materias de primer año con Borland Pascal, así que esa experiencia me resultó bastante útil.
    Unos años después, gracias a mi base en Pascal, terminé trabajando unos cinco años desarrollando apps a medida con Delphi, y luego eso me llevó a probar los IDE Kylix y C++Builder en Borland. Eran buenos tiempos.
    Todavía extraño Delphi. Hoy se da por sentado al punto de que si un IDE no tiene plugins se considera una falla grave, pero en aquel entonces la idea de una biblioteca de componentes y un entorno de desarrollo fácilmente extensibles en su propio lenguaje parecía pura magia. Era realmente divertido meterse con VCL y con el propio IDE.
    Es una lástima que Borland, al perseguir el mercado enterprise, dejara atrás a los desarrolladores de base y prácticamente matara el crecimiento de la adopción en la comunidad. Al menos hasta alrededor de Delphi 7 era un conjunto realmente genial.

    • En mi país, Delphi era por mucho el entorno de desarrollo más popular. Era una situación curiosa: mientras la mayor parte del mundo iba por VB 5, nosotros usábamos Delphi. Desde afuera parecía un entorno excelente, pero por alguna razón parece que solo tuvo gran éxito en algunos mercados.
    • Yo seguí un camino parecido, pero más adelante tuve que pasarme a Visual Basic 5 por cuestiones de trabajo. Aun así, siento que todavía no hay nada comparable con Delphi para desarrollo de GUI. VCL era genial.
  • Mi primer contacto con TP fue en el invierno de 1993, cuando tenía 14 años y lo pirateé de un BBS de warez. A diferencia de simplemente ejecutar archivos .BAS, la fuerza primitiva que sentí al compilar mi propio EXE fue extasiante.
    Empecé a modificar Renegade BBS y a crear programas door, e incluso intenté hacer gusanos, troyanos y virus, aunque fracasé. Esa experiencia me cambió la vida y marcó el camino que me llevó a estar hoy en el sector tecnológico. Además, ya superé esas tendencias transgresoras de la adolescencia. Le debo mucho a Borland.

    • Para un adolescente que no entendía bien cosas como compiladores e intérpretes, poder crear mis propios archivos EXE con TP4 se sentía como obtener un superpoder. Sentía que me había convertido en un programador de verdad.
      Unos años después, a los 16, desarrollé una pequeña app para gestionar clientes de mi padre y de hecho me pagaron; con parte de ese dinero compré una versión legal de TP6. Eran buenos tiempos.
    • Me recuerda a los viejos buenos tiempos de BBS. En 1989, cuando tenía 17 años, después de aprender a escribir un driver serie basado en interrupciones, hice una biblioteca door para Turbo Pascal y la distribuí como shareware. Se usó bastante hasta que la escena BBS desapareció rápidamente a mediados de los 90.
    • Yo también viví algo parecido en la misma época. Además de las cosas transgresoras, jugueteaba con programación gráfica en una 386SX, usando ensamblador inline en las partes “críticas para el rendimiento”. Esa experiencia definitivamente sentó las bases de lo que hago hoy.
  • Free Pascal todavía tiene un modo que se parece al IDE original de TP. Aunque, como ellos mismos reconocen, el código se está deteriorando y todavía depende mucho de las viejas peculiaridades de la plataforma MS-DOS original.
    Es una lástima que no exista una versión similar que pueda usarse como editor general en la terminal, al estilo de neovim o emacs, y que a la vez se integre con funciones orientadas a IDE modernos como LSP, parsers tree-sitter y Debug Adapter Protocol. Podría cambiar las reglas del juego al editar código remoto mediante conexiones SSH/terminal.

    • https://github.com/magiblot/tvision
    • Hace poco más de 10 años, algunos amigos que eran fans de Turbo Pascal se pasaron a Lazarus. Parecía el sucesor lógico de Turbo Pascal y Free Pascal. En lo personal, nunca me gustó demasiado el lenguaje Pascal, así que me pasé a usar C++ en Emacs.
  • Es difícil exagerar lo rápido que era Turbo Pascal frente a sus competidores. Era tan rápido que parecía que hacía algún tipo de trampa, y los programas generados también eran más rápidos.
    Para su época fue una obra maestra, y los elogios que recibió fueron totalmente merecidos.

    • En una clase universitaria de gráficos, nada menos que dictada por Jack Bresenham, pregunté si podía usar el nuevo Borland Turbo C para las tareas. Después de recompilar a toda prisa para una demo, descubrí que, como la PC del salón no era una 80286, mi código corría apenas a un tercio de la velocidad del código de los demás escrito en Turbo Pascal v4.
      Así aprendí que un compilador maduro era mejor que un compilador en versión 1.0.
    • Exacto. Incluso con los procesadores lentos de la época, el compilador de Turbo Pascal procesaba el código a toda velocidad. Muy lejos de los complejos sistemas de build actuales, que tardan un buen rato en compilar un programa que hace lo mismo.
    • Incluso hoy se menciona a Pascal como un lenguaje que compila rápido. Suele aparecer así también en el debate entre Go y Rust.
      Recuerdo haber compilado hace unos años una versión de la serie 2.0 de FPC en una PC con Windows y 512 MB de RAM, y no tardó ni 5 minutos.
    • Su sucesor, Delphi, sigue siendo así. Hay un artículo sobre un proyecto real de poco más de un millón de líneas, con video incluido, y en los comentarios también se habla del tiempo de compilación en Win64.
      https://www.tmssoftware.com/site/blogold.asp?post=759
    • https://prog21.dadgum.com/47.html
  • De niño, el amable dueño de una tienda de computadoras me vendió en buenas condiciones una PC semicompatible que corría MS-DOS 1.25. Fue más o menos a cambio de cortar el pasto unas cien veces y cuidar niños.
    Ese dueño vendía en disquetes de 8 pulgadas Turbo Pascal para MS-DOS genérico, es decir, una versión que no asumía un BIOS de PC, y me lo transfirió al formato de 5,25 pulgadas y 160 KB que usaba mi semicompatible. Espero haberlo apreciado entonces tanto como lo aprecio ahora. Eso fue lo que puso en marcha mi carrera.

    • Entonces tengo que preguntar: ¿qué era exactamente esa PC semicompatible de la que hablas?
  • A principios de los 80 usé Apple Pascal en Apple ][+ y //e, es decir, un entorno basado en UCSC p-system Pascal, y luego pasé a Turbo Pascal en DOS. Turbo Pascal era realmente emocionante. La experiencia era excelente gracias a un compilador muy rápido, buena retroalimentación, un editor a color y los atajos de teclado de WordStar, que ya me resultaban familiares.
    También recuerdo que, cuando los programas crecían lo suficiente, había que usar la función de overlays. Básicamente permitía cargar en DOS distintas partes del programa como si fueran páginas.
    También recuerdo haber conocido en algún momento de los 80, quizá hacia finales de la década, a David Intersimone, un gran embajador de Borland. Fue cuando visitó nuestra universidad invitado por la sección local de ACM.

  • Curiosamente, Turbo Pascal fue el primer lenguaje de programación de alto nivel que aprendí, y el entorno fue una Macintosh Plus. Solo más tarde supe que Turbo Pascal era más bien algo del mundo PC.
    En la universidad compré mi primera computadora Apple, una Macintosh Plus, con un préstamo estudiantil, y por casualidad vi en los clasificados del periódico universitario una copia de Turbo Pascal para Mac. Un profesor la vendía por unos 40 dólares, así que la compré de inmediato.
    Por suerte venía con manuales, pero las herramientas de desarrollo para Macintosh eran muy simples. No había ResEdit; en su lugar había una extraña app R-Maker que exigía crear los recursos de Macintosh como archivos de texto y luego pasarlos por la herramienta para generar el resource fork.
    Algunas de mis primeras apps fueron implementaciones en Turbo Pascal de algoritmos aparecidos en la columna Computer Recreations de Scientific American. Por suerte casi no necesitaban interfaz de usuario, así que normalmente bastaba con una ventana y algunos botones.
    Más adelante descubrí THINK Pascal, un IDE mucho más centrado en Mac, y me pasé a ese; aún más tarde me lancé a THINK C.
    Aun así, Turbo Pascal siempre seguirá siendo un recuerdo entrañable. En aquellos tiempos en que entraba a un mundo nuevo y agreste, Turbo Pascal fue lo que me abrió la puerta.