Hablemos del origen de PASCAL

Niklaus Wirth created Pascal in the 1970s as a simplified version of Algol for teaching programming. Borland's Turbo Pascal became hugely popular and evolved into Delphi, which powered Photoshop, Skype, and other major software. Though Pascal feels old now, its clean design shaped how we teach and think about modern languages.
Chapters
Pro, te encontramos últimamente leyendo muchas veces.
¿Es que no os habéis enterado aún?
¿De qué exactamente?
Pascal, al fin podemos hablar de uno de los pilares de la informática.
Sabía que te iba a emocionar.
¿Uno de los pilares? Pero, ¿no dijimos que la raíz de los lenguajes de programación está en el lenguaje C?
C influyó mucho a los lenguajes de programación, pero Pascal también.
De hecho, Pascal evolucionó a Object Pascal y se emplea en Delphi.
Justamente, el libro de historia de los lenguajes de programación de la década de 1970 incluye alguna historia donde entra en juego Niklaus Wirth.
¿Niklaus Wirth?
Sí, el creador de Pascal. ¿No sabéis quién es?
A ver, saber saber, pues no.
¿No te suena un libro llamado Algoritmos+ Estructuras de Datos= Programas?
Pues la verdad es que no mucho.
¡Es un clásico!
Bueno, pues ilustradme. Decidme quién fue Niklaus Wirth y el porqué hizo Pascal.
¿Quién fue Niklaus Wirth?
¿Fue? ¿Ya falleció?
Trágicamente nos dejó a principios de enero de 2024, justamente el día 1.
Vaya, nos dejó un grande.
Ciertamente, Niklaus Wirth fue un suizo que, a diferencia de otros coetáneos de las décadas de 1960 a 1980, No estudió matemáticas.
Es raro que la mayoría de programadores o expertos en computación del siglo pasado no fueran informáticos.
Chip, ¿cómo podrían ser informáticos si en muchos de los países de donde eran esta carrera no existía?
Exacto. La mayoría de profesionales que se dedicaron al diseño de lenguajes como Fortran, COBOL o ALGOL eran físicos como John Backus o matemáticos como Grace Hopper.
Buen ejemplo. Entonces, Niklaus era matemático o físico.
No, en este caso Niklaus era ingeniero en electrónica.
Mmm, un pelín diferente, pero a decir verdad tiene más sentido. La electrónica está más ligada a la computación en cierta forma, ¿no?
Discutible. Hay quien asume la programación más como un ejercicio matemático, mientras que sí, el diseño de los sistemas de computación puede estar más relacionado con la ingeniería.
Entonces Niklaus estudió seguramente en el ETH.
¡Exacto! En la década de 1950 y más tarde marchó a Berkeley en la década de 1960 para después regresar como profesor de informática al ETH, justo la misma escuela técnica donde otras grandes figuras como Rutishauser desarrollaron otros lenguajes como Superplan.
Vale, pero no nos descentremos. Los lenguajes de 1950 o europeos específicamente los podemos cubrir en otro momento. Sigamos con Niklaus. ¿A qué se dedicó?
Pues en principio estuvo en el Comité Europeo para la Definición de Algol 60 y más tarde, junto con el beneplácito de otros conocidos como Tony Hoare o Edgar Dijkstra, propuso Algol W.
Creo que podemos profundizar en esto un poco más. ¿Por qué Algol W?
Algol fue una iniciativa internacional entre Estados Unidos y algunos países europeos como Alemania, Reino Unido, Países Bajos y Suiza. Principalmente, que consistió en una serie de reuniones y documentos para definir un lenguaje único.
¿Un lenguaje único? No sé por qué eso me suena a desastre.
Seguramente. ¿Te suena Algol?
No, la verdad es que no.
¡Exacto!
No fue tan desastroso, de hecho. Algol es realmente el padre de la mayoría de lenguajes de programación. Algol fue la base del lenguaje B y, por extensión, del lenguaje C.
Comentamos eso en el capítulo de C.
Lo importante es que Algol se comenzó a emplear como lenguaje de programación para las publicaciones. Un único lenguaje que todos pudiesen entender. De hecho, según dijo Tony Hoare, lo agradeció porque así pudo definir mucho mejor su algoritmo de QuickSort.
Vale, entonces Algol 60 fue publicado y muchos lo usaron e incluso muchos se inspiraron en él para hacer sus propios lenguajes.
Exacto. Bueno, en principio, el primero en llegar fue Algol 58, después Algol 60, y tuvo tan buena acogida que motivó a muchos grupos a realizar aportes.
¿Y aquí es cuando Niklaus hizo su aporte de Algol W?
No, aquí es cuando Niklaus comenzó a hacer pruebas. La primera prueba fue un lenguaje basado en Algol 60 para intentar definir un lenguaje en base a su compilador.
¿Definir un lenguaje en base a su compilador? ¿Definirlo en código máquina? Pero... eso sería poco práctico, ¿no? ¿Quién entiende código máquina?
Esto fue hace 60 años, seguramente muchos sabrían código máquina.
Realmente no muchos. De hecho, esta prueba tuvo el nombre de Euler y no fue nada bien, por lo que Niklaus probó otro enfoque.
Se veía venir. ¿Ese nuevo enfoque fue Algol W?
Casi.
Pro, ¿en algún momento entra Algol W en la ecuación?
Solo iba a decir que el enfoque era emplear la notación Backus-Naur, llamada BNF, para definir un lenguaje de programación y entonces Sí, llegó ALGOL W como un lenguaje perfectamente definido y con todos los problemas que presentó ALGOL 60 corregidos.
¿Empleando BNF se corrigieron todos los problemas?
Bueno, no todos, pero era una notación formal muy simple de entender y que permitía ver posibles problemas de forma muy rápida.
¿Y por qué la especificación de ALGOL 60 no era tan buena?
No solo eso, parece que ALGOL 68 fue lanzado sin tener en cuenta ni BNF ni las sugerencias de Niklaus. ¿Por qué la forma en la que se lanzó al GOAL 68 no fue tan buena?
Según cuenta el libro de historia de los lenguajes de programación, fue por la notación empleada. Era muy complicada y, según Niklaus, cuando se especifica un lenguaje debe hacerse en base a una notación o lenguaje que se entienda perfectamente o habrá dos problemas: el primero sería entender la notación o lenguaje para resolver el problema principal, Que es el segundo problema: entender el lenguaje que se define.
Queda claro. Algol W fue entonces una propuesta no tenida en cuenta que Niklaus lanzó y comenzó a usar por su cuenta.
Fue la base en la que comenzó a trabajar, pero el nombre no era muy prometedor. Como buen académico, Niklaus quería poder dar crédito a otra grande en mente.
Lo veo venir. Ahora sí, hablamos de Pascal, ¿a que sí?
Los inicios de Pascal. Pascal nació como una versión fácil de Algol, para enseñar a los alumnos de Niklaus programación.
Era profesor. Pascal fue entonces su herramienta, al igual que Minix lo fue de Tannenbaum.
Exacto. El lenguaje Pascal tenía como finalidad ser un lenguaje de enseñanza, así como lo fueron otros antes que él.
Como lo fue Logo.
Y también BASIC.
Pero entonces, Pascal fue un lenguaje solo para aprendizaje.
No, no solo para aprendizaje. Apple se fijó en Pascal y fue elegido como lenguaje de alto nivel para ser introducido en sus productos Apple Lisa y Apple Macintosh.
Vaya, yo creí que Apple siempre había empleado Objective-C.
No, Objective-C llegó 5 años más tarde que Apple Lisa.
Pascal resultó tan fácil que en la década de 1970 fue uno de los lenguajes más utilizados.
Parece que empresas como Adobe lo emplearon para las primeras versiones de Photoshop.
Pero para desarrollar un software tan grande tuvo que mejorar, ¿no? Agregar algunas características más allá de la programación estructurada.
¿Te refieres a la orientación a objetos?
Mejorar e integrar orientación a objetos no son sinónimos.
Nos quedó clara tu opinión en el capítulo sobre el desastre del billón de dólares, pero tienes que admitir que agregar una característica como la orientación a objetos puede considerarse una mejora.
Discutible.
¿Seguía siendo el mismo Pascal pero orientado a objetos?
No. Cuando se agregó la orientación, su nombre cambió: Object Pascal.
Pues tampoco tanto.
La implementación de los objetos fue recibida de forma muy positiva por muchas empresas en la década de 1980 porque parece que estaba de moda dotar a todos los lenguajes de orientación a objetos.
Pascal era popular y no podía quedarse atrás.
Larry Tesler, programador en Apple, habló con Niklaus para integrar la orientación a objetos en Pascal y hacer el lenguaje multiparadigma en 1983.
¿Fue para Apple, Lisa?
¡Exacto! Al principio este lenguaje se llamó Clascal.
¿Clascal? ¡Qué nombre más raro!
Es por la mezcla de clases y Pascal.
Aún así suena muy raro.
Cuando se reescribió para el Macintosh fue cuando cambió su nombre a Object Pascal.
¡Curioso! Entonces, este nombre fue el empleado en Macintosh en la década de 1980. Pero a finales de esta década surgió también otro que puede que suene a muchos programadores seniors: Turbo Pascal en DOS.
MS-DOS, PC-DOS y otras variantes de DOS.
Turbo Pascal fue desarrollado por Borland y en la década de 1990 lo evolucionaría como Delphi.
¡Cierto! En el capítulo donde hablamos de C# dijimos que Turbo Pascal y Delphi fueron obra de Anders Hejlsberg.
Exacto. Object Pascal tuvo mucho uso en aplicaciones para Mac y II en la década de 1980, pero seguramente muchos de los programadores seniors actuales lo recuerdan más como Delphi en entornos Windows o Kilix en sistemas Linux. Desarrollo rápido de aplicaciones: Delphi. Delphi fue un sistema de desarrollo rápido de aplicaciones, o RAD por sus siglas en inglés, con mucha fama. De hecho, Skype fue desarrollado en Delphi. Y Macromedia lo empleó para HomeSite.
Si hablamos de Windows, entonces hablamos de finales de la década de 1990 y principios del siglo XXI. En esta época fue mayor el impacto de Visual Studio y más tarde .NET.
Depende. El problema de Visual Studio fue que o empleas C++ con una interfaz llamada Win32 muy compleja, o empleas un Visual Basic que en sus versiones iniciales estaba muy limitado.
¿Delphi resolvía este problema?
Sí, de ahí su fama. Delphi proporcionaba una forma de programación gráfica similar a Visual Basic, pero al mismo tiempo un control a nivel de código mucho más fino de cada uno de los elementos, sin llegar a la complejidad de C++, generando un código compilado con rendimiento similar a C++. Exacto, era tener lo mejor de los dos mundos, y por ese motivo fue elegido por muchos desarrolladores y empresas.
Además, podemos agregar que sigue siendo Pascal, un lenguaje con una curva de aprendizaje muy baja.
¡Exacto! Aprender Delphi era extremadamente sencillo gracias a su interfaz y el lenguaje elegido.
Yo tengo mis dudas, no creo que Visual Basic fuese tan nefasto.
No lo viviste. Había componentes que había que emplearlos tal cual. Si el componente no permitía personalización y debías construirlo desde cero, era casi imposible. El rendimiento era muy malo. Visual Basic 5 y 6 estaban muy bien para desarrollar cosas rápidas, pero el acabado no daba la sensación de ser muy pulido.
¿Lo viviste?
Lo sufrí.
¿Delphi era mejor?
Delphi era superior.
Has mencionado a Kilix. ¿Borland desarrolló una versión para Linux?
Esto hay que tratarlo aparte. Delphi en Linux: Kilix.
El desarrollo en Linux siempre ha sido algo conflictivo.
¿Por qué es cheap?
Nunca sé si es mejor Qt, GTK, wxWindows o buscar otra solución.
Kilix intentó simplificar esto desde su editor integrado para desarrollo de aplicaciones al estilo Delphi.
¿Puedes desarrollar usando Object Pascal o Delphi en Linux?
Sí, bueno, podías con esta herramienta hasta 2011 más o menos.
¿Entonces ya no es una opción?
Parece que Kilix fue descontinuado por una baja adopción y diversas dificultades, pero Delphi se integró en un modo multiplataforma bajo el nombre de FireMonkey. Lo que ayudó a poder desarrollar aplicaciones para Windows, Mac, Android, iOS y Linux.
Entonces, aunque Kilix ya no exista, sí que tenemos disponible otra opción.
Sí, aunque recuerda que salvo la edición de comunidad no son herramientas gratuitas.
Son algo caras.
Depende de quién pague. No es lo mismo que la paguemos nosotros que lo haga una empresa que cobrará mucho dinero por desarrollar software.
Conclusiones.
Vaya, se me hizo corto el capítulo.
A mí también.
¿Será que os gusta Pascal?
No es mal lenguaje, aunque es curioso que no se use más hoy en día.
Pascal, al igual que C, no son solo percibidos hoy en día como lenguajes de bajo nivel, sino también como lenguajes antiguos, por lo que su adopción no suele ser tan fácil como otras opciones percibidas más de alto nivel como Python, Ruby, PHP o incluso Go, Java o C#.
Pascal tiene una historia curiosa y parece que cuando un lenguaje se emplea en educación termina influyendo en la elección del lenguaje en las empresas cercanas a esos centros educativos.
Es normal, es un círculo virtuoso que se perpetúa creando una educación satisfactoria de un lenguaje que es fácil y que hace lo que se espera de él. Los alumnos lo aprenden y las empresas lo adoptan.
¿Se hace fácil contratar?
Por lo que se hace también más barato.
Ahora ya no sé si es bueno, quizás sea más bien un círculo vicioso.
Tiene sus ventajas e inconvenientes para todo.
Ahora te toca a ti, agiliza tus dedos. ¿Preparado para escribir un comentario? Pues dime, ¿conocías este lenguaje de programación?
¿Te gustaría que te enseñemos a programar con él?
¿Conocías Turbo Pascal, Borland Pascal o Delphi?
¿Llegaste a usar Kilix?
Déjanos tus comentarios.
Pro, ¿que enseñemos a programar usando Pascal? ¡Pero si no sabemos Pascal!
Como decía un antiguo jefe, no saber no es problema, el problema es no querer aprender.
Vale, pongamos que queremos aprender a programar y accedemos a aprender usando Pascal. ¿De qué nos servirá?
¡De mucho! Pascal, al igual que C, son las raíces de la programación, y a diferencia de C ofrece una curva de aprendizaje mucho más baja.
Pero no vamos a usar Pascal después para nada. La mayoría de software o se desarrolla en Python o en JavaScript.
Adaptarse a Python sabiendo Pascal no lleva mucho tiempo y tenemos transpiladores para JavaScript.
Tengo mis dudas, ¿no sería mejor Python?
Continuará.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








