Historia y Filosofía de los Lenguajes de Programación

Este curso no se encuentra disponible por el momento



La historia de nuestra profesión es poco conocida por sus practicantes. Pocos conocen quiénes son John McCarthy, Peter Naur o Douglas Engelbart entre otros. Menos aún se conoce sus trabajos y la influencia que tuvieron tanto en los lenguajes de programación como en la tecnología que usamos.
Según Alan Kay, “nuestra cultura es una cultura pop… desconocemos nuestra historia y por eso nos pasamos reinventando la rueda pinchada”.

Este curso tiene los siguientes objetivos:
  1. Repasar la historia de nuestra profesión en lo que respecta a lenguajes de programación, quiénes los hicieron, bajo qué principios filosóficos y/o comerciales (si los hubo), en qué contextos históricos se crearon, etc. 
  2. Conocer a los personajes detrás de ellos, su manera de pensar, qué lograron y qué no.
  3. Hacer un ejercicio con cada lenguaje, cuando lo amerite, para poder compararlos de manera práctica
  4. Principalmente, discutir entre nosotros estos temas y sacar conclusiones para no comprar nueva tecnología sin conocer de qué se trata y no reinventar la "rueda pinchada"

Conocer la historia de una profesión ayuda a entender su actualidad y profundizar hacia dónde se dirige. Conocer lenguajes como Lisp, Scheme, Simula-67, Algol 60, ML, Forth y otros ayuda a realizar una análisis crítico de los lenguajes “mainstream” de la actualidad.
   Conocer cómo se gestaron las distintas tecnologías que se usan en la actualidad a partir de los avances realizados por D. Engelbart, A. Kay, I. Sutherland, A. Goldberg entre otros, ayuda a comprender por qué usamos la tecnología que usamos y cuáles son sus limitaciones lo que nos permite intuir qué futuro nos depara.
   En este curso se verán estos y otros temas relacionados con el objetivo de generar en los asistentes un espíritu crítico, basado en buenos fundamentos teóricos e históricos.

La modalidad del curso incluye:

  1. Material multimedial de entrevistas/charlas/conferencias realizadas por las personas a estudiar en cuestión
  2. Lectura de papers y material histórico proveniente del congreso de HOPL (History of Programming Languages), A History of Personal Workstation, la organización de Computer History Museum y de libros como "The Dream Machine", "Dealers of Lightning" y "The Innovators"
  3. Ejercicios prácticos relacionados a los lenguajes de programación que se verán.
  4. Calls con personas que formaron parte de la construcción de esta historia
 
El cronograma de temas es el siguiente:

  • Ada Lovelace & Charles Babbage / Turing & Church / Primeras computadoras (Eniac/Colossus/Z3)
  • As we may Think - V. Bush / Fortran - J. Backus / Lisp – John McCarthy
  • COBOL - Grace Hooper, Codasyl / Algol 60 – P.Naur, J. Backus, T. Hoare
  • DARPA / Augmenting Human Intellect – D. Engelbart / Sketchpad – I. Sutherland
  • Basic - Kemeny, Kurts / Pascal - N. Wirth / Simula 67 – K. Nygard, J. Dahl
  • Smalltalk – A. Kay, D. Ingalls, A. Goldberg
  • Silicon Valley: Xerox Parc / Intel / Apple
  • Scheme – J. Sussman, Guy Steele / LOGO - S. Papert et al / Forth - Chuck Moore
  • C - B. Kernighan, D. Ritchie / C++ - B. Stroustrup
  • Self – D. Ungar, R. Smith
  • ML - Miranda - Haskell
  • Otros: Prolog / Presente: Ruby, JavaScript, Java, .Net, Python, Clojure, Scala, Rust, Go, 
  • Presente: Ruby, JavaScript, Java, .Net, Python, Clojure, Scala, Rust, Go
  • “Objetos vs. Funcional” o “Objetos and Funcional” / Nuevos paradigmas de programación
  • Entrevista con Invitado 1 (a definir)
  • Entrevista con Invitado 2 (a definir)