Acerca del Libro

Este libro se continua la historia de una profesión tan novedosa como la programación y asienta conceptos muy difundidos hoy en día como:

La programación funcional

De la mano de uno de los primeros lenguajes LISP, veremos cómo por un error de entendimiento se implementó eval y lo cambió todo.

Popularización de la programación

Lenguajes hechos entre otros por una monja como BASIC o destinados al aprendizaje de niños como LOGO. La programación se populariza, veremos tortugas y la programación interactiva.

Personajes

Lo más importante no es solo mostrar las historias y los lenguajes sino comentar las experiencias de sus personajes, ¿qué motivo cada lenguaje? ¿qué necesidades cubría? ¿por qué era así?

En esta década hablaremos de los sistemas de tiempo compartido, multiusuario, multitarea, sistemas fáciles para aprender y los primeros pasos para una mejor estructura de la programación mostrando la programación estructurada, algunos algoritmos muy conocidos y personajes ilustres y sus comentarios.

Qué hay dentro del libro

Aquí puedes echar un vistazo a lo que puedes encontrar dentro del libro, capítulo a capítulo y algunos extractos si quieres lanzarte directamente a la lectura ahora mismo.

RPG

El Report Program Generator es un lenguaje que ha convivido durante muchos años con COBOL y se ha empleado en la gran empresa y en negocios generalmente. Creado por Wilf Hey y propulsado por parte de IBM.

Bell SAP y las Macros

El lenguaje SAP fue creado en 1956 por Roy Nutty en IBM como parte del desarrollo de FORTRAN pero en 1959 Douglas E. Eastwood y Douglas McIlroy implementaron en este lenguaje compilador la recursividad y los condicionales asentando la idea de macros y creando un movimiento que influenciaría a otros lenguajes como el lenguaje TRAC por Calvin Mooers y TTM por Steven Caine and E. Kent Gordon.

La expansión y caída de ALGOL

ALGOL tuvo una gran extensión a través de Europa y propició la aparición de grandes programadores como Niklaus Wirth, Edsger W. Dijkstra, CAR Tony Hoare o Peter Naur entre otros, que tomaron las líneas generales de ALGOL e hicieron sus propias implementaciones permitiendo su expansión en la década. También hablamos de extensiones de ALGOL surgidas en la URSS y la caída de ALGOL.

GAT, MAD y MAD/I

ALGOL 58 supuso el primer documento sobre la elaboración de un lenguaje para ser empleado por toda la comunidad científica. Aunque después surgieron otras actualizaciones de ALGOL esta primera generó algunas bifurcaciones como MAD y supuso la gran influencia para el desarrollo de Multics y más tarde también para Brian Kernighan.

COBOL 60 y 68

COBOL fue propuesto en 1959 y el trabajo de cada uno de los participantes estuvo principalmente en la década anterior como vimos en el libro de las décadas de 1940 y 1950. No obstante, la primera versión y más empleada de COBOL sería la nombrada como COBOL 60 y posteriormente COBOL 68. En este capítulo veremos la progresión del lenguaje, como evolucionó, cómo se estandarizó siendo el primer lenguaje estandarizado por ANSI y como comenzó a descender su uso después de llegar a su momento cumbre.

Inteligencia Artificial y LISP

John McCarthy es considerado uno de los padres de la Inteligencia Artificial y principalmente quien acuñó ese término. Además de esto, McCarthy se encargó de la especificación del lenguaje más difundido para la implementación de la Inteligencia Artificial, LISP. Veremos algunas anécdotas de su creación y popularización.

La concordancia de COMIT y SNOBOL

COMIT por parte de Yngve (MIT), fue el primer lenguaje de programación para la manipulación de cadenas de texto y detección de patrones. Este puede ser considerado el origen de las expresiones regulares y la concordancia (pattern-matching). SNOBOL surgió para emplear las mismas características sugeridas por COMIT y mejorar donde este último fallaba.

La evolución de FORTRAN

En esta década surge FORTRAN IV, una de las versiones más empleadas de FORTRAN y FORTRAN 66. John Backus, Jean Sammet y otros continúan desde IBM haciendo crecer el lenguaje.

APL

A Programming Language es el primer lenguaje que requería de un teclado especial para poder programar debido a la cantidad de símbolos matemáticos que empleaba en su sintaxis. Kenneth Iverson y Adin Falkoff (en IBM) desarrollaron este lenguaje para transcribir mejor las ecuaciones y teoremas matemáticos para ser ejecutados por el computador. Hablamos también de PPL que se fundamenta muy fuertemente en APL y constituye la base para llegar a conocer el lenguaje S.

Simula y el origen de los objetos

Este lenguaje derivado de ALGOL 60 y desarrollado en Dinamarca es considerado uno de los primeros lenguajes orientados a objetos. Aunque la primera definición de qué es la programación orientada a objetos no llegó hasta la siguiente década, este lenguaje y sus seguidores comenzaron un movimiento que terminó empleando estos elementos.

Euler

Niklaus Wirth y H. D. Huskey implementaron en la Universidad de Berkeley y luego en Stanford un lenguaje interpretado y orientado a la pila realizando la conversión del código en dos pasos: interpretación semántica y análisis sintáctico. Estas ideas harían mucho más fácil la aparición de ideas como la programación estructurada y la forma de escribir lenguajes de programación.

CPL y BCPL

Las Universidades de Londres y Cambridge hicieron un esfuerzo conjunto para crear un lenguaje de programación y lo llamaron Combined Programming Language (CPL) aunque al principio fuese el Cambridge Programming Language, fuertemente influenciado por ALGOL 60 aunque tomando trozos de COBOL resultando en algo moderadamente elegante y complejo.

RUNCOM y Multics

RUNCOM es otro lenguaje creado para Multics, Louis Pouzin se encargó de su desarrollo.

JOSS, TELCOMP y MUMPS

RAND fue la empresa donde Cliff Shaw trabajó y dio soporte a Simon y Newell para IPL en la década anterior. Pero Shaw también es conocido por el desarrollo de JOSS, un lenguaje con muy pocos requisitos para ejecutarse en máquinas poco potentes y aún así bastante elegante. TELCOMP fue una de las influencias de JOSS implementado por Bolt, Beranek and Newman (BBN) del cual se derivan STRINGCOMP y MUMPS.

COWSEL y POP-1

COntrolled Working SpacE Language es un lenguaje influenciado por CPL y LISP y desarrollado en la Universidad de Leeds. En 1966 fue renombrado a POP-1.

PL/1

Lenguaje de IBM influenciado por ALGOL 60, COBOL y FORTRAN fue el padre de otros lenguajes de la siguiente década como C o más tarde C++ y debido a su patente disuadió a estas implementaciones de usar el nombre del lenguaje original de IBM optando por otros nombres. Este lenguaje fue el primero en ser compilado usando su propio lenguaje. Un dialecto bastante conocido se implementó en 1967 bajo el nombre de XPL para implementar otros lenguajes similares.

BASIC

Uno de los lenguajes más populares de la década y que más se extendió gracias a su facilidad de uso. La implementación original fue realizada por parte de John Kemeny, Thomas Kutz y la hermana Mary Kenneth Keller.

IMP

Este lenguaje creado por Edgar T. Irons en la Agencia de Seguridad Nacional (NSA) sirvió para la creación del sistema operativo de tiempo compartido Folklore dentro de la NSA.

ISWIM y la programación funcional

Peter J. Landin escribió este lenguaje: If you See What I Mean. Es el lenguaje raiz de la programación funcional y principal influencia de otros lenguajes posteriores como Miranda o ML.

CORAL y la programación en tiempo real

El Royal Radar Establishment (RRE) de Malvern, UK, a través de I. F. Currie y M. Griffiths creó este lenguaje basado en ALGOL 60, JOVIAL y FORTRAN. Fue ideado para la implementación de sistemas en tiempo real.

Edinburgh IMP

En la Universidad de Edimburgo, Escocia, se implemento este lenguaje influenciado por ALGOL 60 y Atlas Autocode.

LOGO y la programación para los niños

LOGO es un lenguaje de programación orientado a la educación y acercar la programación a los niños. Está influenciado por Lisp.

REFAL inteligencia artificial y concordancia

REFAL fue un lenguaje ruso de programación desarrollado por Valentin Turchin entre otros con características que lo hacían superior a Lisp gracias a la estructura interna de sus datos en árbol y el uso de la concordancia.

Forth y la cuarta generación de computadoras

Forth es una contracción de "fourth" por dedicarse a la cuarta generación de computadoras. Desarrollado por Charles H. Moore y Elisabeth Rather en el Observatorio Nacional de Radio Astronomía de Kitt Peak, Arizona.

Lenguaje B

Este lenguaje desarrollado por Ken Thompson y con ayuda de Denis Ritchie en los laboratorios Bell es el comienzo y la base que más tarde daría lugar al lenguaje C.

PILOT

PILOT fue el sucesor de Computest y un lenguaje conversacional desarrollado por John A. Starkweather en la Universidad de California.

SETL y la teoría de conjuntos

Jacob T. Schwartz desarrolló este lenguaje en la Universidad de Nueva York basándose en la teoría de conjuntos.

El lenguaje que enseña: TUTOR

Este lenguaje fue diseñado por Paul Tenczar en la Universidad de Illinois para la instrucción asistida por computador o instrucción administrada por computador. Ideal para desarrollar lecciones para los alumnos.

Un lenguaje de programación no es solo un medio para instruir a las computadoras. Es también un medio para que los humanos se comuniquen entre sí. -- Alan Perlis

¡No pierdas la oportunidad de aprender!

10,00 €

* eBook incluye las versiones PDF y ePUB

Preguntas de Uso Frecuente

Si tienes preguntaso te solo quieres decir hola, contáctanos. Quizás algunas de tus preguntas puedan ser respondidas en la sección de preguntas de uso frecuente.

Este libro ha sido escrito pensando en la Historia detrás de los Lenguajes de Programación y aunque muestra algunos detalles técnicos, estos no son demasiado profundos y se explican todos tanto en el glosario como durante la explicación. No obstante, la narrativa se centra en los personajes y cómo llegaron a realizar su obra. Así que sí. Este libro puede ser para ti si te gusta la Historia y sientes curiosidad sobre el origne de los lenguajes de programación.

Conocer nuestro pasado nos ayuda a entender nuestro presente y modelar mejor nuestro futuro. Las décadas tratadas en el libro ocurrieron hace 80 y 70 años y aún así guardan mucha relación con temáticas que aún siguen ocurriendo en nuestro sector:

  • Carencia de programadores, ¿cómo se resolvió o se intento abordar en la década de 1950?
  • Diferentes sintáxis de lenguajes de programación, ¿de dónde surge cada una y por qué son así?

Aún no teniendo una utilidad práctica en nuestro trabajo, considero necesario este trasfondo cultural y el conocimiento de los pioneros de nuestra profesión.

No. Ese no es el objetivo del libro. El objetivo del libro es transmitir las necesidades y problemas del momento, las personas que lo iniciaron todo, qué hicieron, cómo lo hicieron y sobre todo el por qué lo hicieron. Intenta ser una lectura narrativa pero con algunos detalles técnicos.

Manuel Rubio
Saber Más Sobre el Autor/a

Manuel Rubio

Desarrollador Políglota, Escritor, Gerente y Mentor

Comenzó a programar a los 12 años con lenguajes como GW-BASIC, QBasic, MODULA-2, Pascal y C. Cuando comenzó el mundo laboral ya dominaba Java, JavaScript, PHP, Perl, Ruby, Python entre otros y más tarde comenzaría con Rust, Golang, Erlang, Elixir y Gleam. Pero lo que más le atrae es poder enseñar a programar en esos lenguajes a otros. Comenzó su formación como profesor asistiendo a un cruso en Londres y más tarde como mentor de Erlang, Elixir, OTP, Ecto y otras tecnologías dentro de Erlang Solutions Ltd. Escribir libros es para Manuel otra forma no solo de enseñar sino también de aprender, tal y como decía Feynman.

Otros libros del autor/a

Si deseas recibir actualizaciones para este libro, ofertas y más: