Una breve y dolorosa historia de la programación

Una cantidad sorprendente de ideas son olvidadas y redescubiertas. Una y otra vez.

En memoria de Ralph E Griswold. 1934 -2006

¿Cómo demonios sabes que tu código es correcto?

Kent Beck es merecidamente famoso por crear TDD. Sin embargo, según él, no inventó el TDD. Simplemente lo redescubrió.

Beck descubrió esta técnica olvidada mientras conversaba con un programador mayor. El anciano le explicó cómo se hacían las cosas en los viejos tiempos de las tarjetas perforadas:

El sabio anciano estaba desconcertado al saber que esto ya no era una práctica común:

Entonces, ¿cómo sabes que tu código es correcto?

Gran pregunta, ¡oh sabio!

Alquimistas, en el mejor de los casos

Hay una cantidad sorprendente de ideas y conceptos que han sido olvidados y redescubiertos una y otra vez. Esta es una clara señal de que, aunque la informática es una ciencia, la programación no lo es. Tampoco es una forma de ingeniería. No somos científicos ni ingenieros, alquimistas en el mejor de los casos.

La historia de la programación se asemeja a la prehistoria de la ciencia hasta el Renacimiento. Un proceso doloroso de ida y vuelta donde cada individuo no tenía gigantes sobre cuyos hombros pararse, o los había olvidado.

Hay una gran cantidad de avances que desaparecieron en las arenas del tiempo:

  • ¡Herón de Alejandría construyó máquinas de vapor y maquinaria eólica 2000 años antes de la revolución industrial!
  • Aristarco de Samos sugirió por primera vez el heliocentrismo en el siglo III a. C.

La lista sigue y sigue

Nuestros propios Herones (O nuestros propios héroes por el juego de palabras)

Tenemos nuestros propios Herones y Aristarcos en programación. Por nombrar unos pocos:

  1. D. McCracken menciona TDD usando tarjetas perforadas en su libro «Programación de computadora digital», en 1957.

A día de hoy, más de medio siglo después, todavía no es una práctica estándar en la tienda de software promedio.

Edward Ashcroft y otros describieron por primera vez el paradigma de programación de flujo de datos. Diseñaron un lenguaje de programación completo en torno a este concepto, llamado Lucid a principios de los años 80.

Solo ahora estas ideas se están redescubriendo, como Programación Reactiva y se ha encontrado que son una mejor alternativa para las aplicaciones intensivas en datos. Jet.com ahora lo está utilizando como una mejor alternativa a los microservicios.

Ralph Griswold: el mejor informático del que nunca has oído hablar

Quizás el más inmerecidamente olvidado de estos Herones fue Ralph Griswold. En la Universidad de Arizona, a principios de los años 70, creó dos idiomas increíbles: Snobol y Icon.

Aprender sobre Snobol es como encontrar los restos de una civilización alienígena ultra avanzada mientras cava en su patio trasero. En los años 70, cuando la gente caminaba alrededor de la Luna y podías comprar un boleto para un avión comercial supersónico, también tenías un idioma con evaluación retrasada, coincidencia de patrones y muchas características que aún no se encuentran en los idiomas «modernos».

Una de las ideas clave que Griswold y su equipo tenían era engañosamente simple: cuando se llama a una función, solo pueden suceder dos cosas. O tiene éxito o falla.

Cada función en Snobol o Icon falla o tiene éxito. Esta información se devuelve para cada función y es ortogonal al valor de retorno. Tener éxito y fracaso como ciudadanos de primera clase del idioma simplifica enormemente el manejo de errores. También permite un flujo de control muy flexible e incluso concurrencia a través de las rutinas.

Solo ahora (¡cuarenta años después!) Algunos de esos conceptos están ingresando a la corriente principal a través del tipo de resultado que tienen los niños «modernos» en el bloque, o las rutinas (muy pocos tienen).

Sísifo, el primer programador.

De ida y vuelta, lento y doloroso

Este proceso evolutivo, lento y doloroso, en el que se pierde información, que se redescubrirá más tarde (¡con suerte!), Podría describirse en términos del Mito de Sísifo, o la rueda implacable de Samsara.

Sin embargo, Philip Greenspun hizo un trabajo mucho mejor al describirlo:

Nuestra industria es una fuente constante de vergüenza.

Lo que está muerto no puede morir

La próxima vez que la marea se lleve una idea elegante, no temas. Si esto se ha codificado anteriormente, se codificará nuevamente.

¡Eso decimos todos!

Tus habilidades en programación también se pueden redescubrir o potenciar como estos lenguajes, para esto lo que te recomendamos son los Bootcamps de KeepCoding, son programas diseñados en Silicon Valley con una duración de seis meses que te darán la formación de un Full Stack Developer.

Acerca de Fernando Rodríguez Romero

Co-Founder & Chief Learning Officer at @Keepcoding_es. Previous life as pythonista and smalltalker, Advanced iOS instructor at @bignerdranch & Udacity. Coder, Speaker, Blogger, Dad & Cook.

Share this:

Leave a comment