lispmxEn 2022-06-30 12:03:05

¿Qué quiso decir Alan Kay con, "Lisp es el mejor lenguaje de programación jamás diseñado?"


#lisp #commonLisp #AlanKay #programacion #lenguajes #CienciasComputacionales



Pregunta en Quora


Y la respuesta de Alan Kay:


Yo soy el Alan Kay en cuestión.


Primero, permítanme aclarar algunos conceptos erróneos de las respuestas anteriores. Uno de ellos dijo "Intenta escribir un sistema operativo con Lisp", como si esto fuera de alguna manera más difícil. De hecho, uno de los mejores sistemas operativos jamás hecho estuvo en "Las máquinas Lisp" (en Zeta-Lisp), el hardware y el software siguiendo el ejemplo de "The Parc Machines" y Smalltalk (y nosotros a su vez habíamos sido muy influenciados por el modelo Lisp de programación e implementación. (Y estos sistemas operativos tanto en Smalltalk como en Lisp eran mejores y más fáciles de escribir que los estándares actuales).


Otra respuesta interesante supone que "la prueba del tiempo" es de algún modo una optimización cósmica. Pero como todo biólogo sabe, los procesos darwinianos "encuentran como ajustarse" a un entorno, y si falta el medio ambiente, entonces faltarán los ajustes. De manera similar, si la mayoría de las gentes de computación carecen de comprensión y conocimiento, entonces lo que seleccionarán también será deficiente. Hoy hay abundante evidencia de que esto es exactamente lo que sucedió.


Pero nada de esto tiene nada que ver con mi elogio a Lisp (y ya expliqué a qué me refiero con más detalle en " The Early History of Smalltalk") (En inglés).






Para comenzar con una analogía, observemos que una persona que ha aprendido fluidamente el cálculo puede en muchas áreas superar a los genios más grandes de la historia. Los científicos después de Newton fueron cualitativamente más capaces que antes, etc. Mi lema para esto es "El punto de vista vale 80 puntos de CI (Cociente Intelectual) (IQ en inglés)" (puede usar "contexto" o "perspectiva", etc.). ¡Un pobre [punto de vista] podría restar 80 puntos de CI! (Véase más arriba). Uno nuevo y  más poderoso [punto de vista] hace posible un pensamiento que antes era demasiado difícil.


Uno de nuestros muchos problemas con el pensamiento es la "carga cognitiva": la cantidad de cosas a las que podemos prestar atención a la vez. El cliché es 7 ± 2, pero para muchas cosas es incluso menos. Avanzamos haciendo que esas pocas cosas sean más poderosas.


Esta es una de las razones por las que los matemáticos prefieren la notación compacta. Lo malo son las capas extra de abstracción y las nuevas cosas crípticas para aprender - esta es la parte de  práctica de tocar el violín - pero una vez que puedes hacer esto, lo que puedes pensar de inmediato se ha magnificado enormemente. Había 20 ecuaciones de Maxwell en su forma original (en términos de diferenciales parciales y coordenadas cartesianas). Hoy las cuatro ecuaciones que podemos pensar todas a la vez se deben principalmente a su reformulación por Heaviside para enfatizar lo que es realmente importante sobre ellas (y lo que probablemente sea problemático - por ejemplo, los campos eléctricos y magnéticos probablemente deberían ser simétricos con respecto al movimiento , etc.)


La ciencia moderna se trata de experimentar fenómenos e idear modelos cuyas relaciones con los fenómenos se puedan "negociar". La "negociación" es necesaria porque lo que está dentro de nuestras cabezas, y nuestros sistemas de representación, etc. no tienen conexión necesaria con lo "¿qué hay ahí fuera?" What's out there? (En inglés).


Tomando este punto de vista, podemos ver que puede haber una "ciencia puente" y "científicos puente" porque los ingenieros construyen puentes y estos proporcionan fenómenos para que los científicos creen modelos.


Del mismo modo, puede haber una "Ciencia computacional" y "Científicos de la computación" porque los ingenieros construyen hardware y software y estos proporcionan fenómenos para que los científicos creen modelos. (De hecho, esta era una gran parte de lo que se entendía por "Ciencias computacionales" a principios de los años 60- y era una aspiración- todavía lo es - no un hecho consumado).


La historia detrás de Lisp es divertida (puede leer en la cuenta de John McCarthy la primera Historia de los lenguajes de programación). Una de sus motivaciones fue que quería algo como la "Física matemática" - Él la llamó "Teoría matemática de la computación". Otra fue que necesitaba un tipo muy general de lenguaje para hacer una interfaz de usuario de IA (Inteligencia Artificial) (AI por sus siglas en inglés) , llamada "The Advice Taker" (El Asesor) -  que él había ideado a fines de la década de los 50.


Él podía programar: la mayoría de los programas estaban en código máquina, Fortran existía y había un lenguaje que tenía listas vinculadas.


John hizo algo, que podía hacer lo que cualquier lenguaje de programación podía hacer, (esto es relativamente fácil), pero lo hizo de tal manera que podía expresar la esencia de lo que se trataba (esta era la parte matemática o la parte meta o la parte de las Ecuaciones modernas de Maxwell,  como le guste a Usted pensar en ello). En parte hizo esto - dice - para mostrar que esta manera de hacer las cosas era "más ordenada que una máquina de Turing".


Otra observación sobre esto es que la "pendiente" desde las estructuras de máquinas más simples hasta el lenguaje de más alto nivel fue la más abrupta de la historia, lo que significa que el viaje de un hardware reconocible hasta una expresión cósmica es un salto en cohete.


Como suele ser el caso -especialmente en ingeniería - un gran modelo científico a menudo es superior a lo que existe y puede llevar a artefactos mucho mejores. Esto fue ciertamente verdadero aquí. Steve Russell (más tarde famoso por ser el principal inventor y programador de "SpaceWar") miró lo que John había hecho y dijo: "Es un programa. Si lo codificara tendríamos una versión funcional ". Como John comentó: "¡Él lo hizo, y nosotros lo hicimos"!



El resultado fue "programación ilimitada en un vistazo" (la mitad inferior de la página 13 en el manual de Lisp 1.5) (http://www.softwarepreservation.org/projects/LISP/book/LISP 1.5 Programmers Manual.pdf En inglés). La clave no era tanto "Lisp" sino los tipos de pensamiento que este tipo de enfoque de representación permitía y abría en relación con respecto a todo tipo de esquemas de lenguajes de programación.


Algo divertido es que una vez que lo has asimilado, puedes pensar en mejores lenguajes de programación que Lisp, y puedes pensar de inmediato mejores formas de escribir las meta descripciones que John hizo. Esta es la parte "PDV = 80 puntos CI" (PDV = Punto de vista) (POV = 80 IQ points).

Pero esto es como decir que una vez que has visto a Newton, es posible hacer electrodinámica y relatividad. ¡La mayor proeza en la ciencia fue Newton!

¡Esta es la razón por la cual "Lisp es el mejor!"




También te puede interesar
lisp codeEn 2022-07-13 13:12:00