Me he estado familiarizando con LISP para fines de superación personal. Una de las cosas que he notado es que LISP está mucho más dentro del paradigma de las Matemáticas que decir C. La estructura de sintaxis y diseño parece hacer eco directamente del modelo matemático real de un algoritmo. No tiene sentido para mí por qué incluso los buenos programas de CS basados en matemáticas estudian C en lugar de LISP. Creo que LISP emplea más directamente conceptos matemáticos más altos que C. No digo que no se puedan modelar estructuras matemáticas en C. Simplemente me doy cuenta de que LISP parece estar conectado a los matemáticos.
He leído muchas de las críticas de Joel Spolsky sobre las escuelas de JAVA y lo que no, y estoy de acuerdo con su evaluación, pero mi escuela no enseñó JAVA por esa misma razón. Fueron estrictos en la enseñanza de conceptos fundamentales como punteros, diseño de algoritmos, recursividad e incluso instrucciones de ensamblaje. Sin embargo, hicieron todo esto en C y c ++. ¿Alguien sabe las razones de esto y / o su historia?
fuente
Respuestas:
OKAY. Entonces, la respuesta aburrida es que, al final, la mayoría de las escuelas enseñan con qué se sienten cómodos los profesores, y la mayoría de los profesores no crecieron pirateando a Lisp; Pasaron sus primeros años en el campo con idiomas basados en Algol. Debido a esto, años más tarde, cuando están creando un plan de estudios, terminas con escuelas que enseñan CS con una base en Pascal, luego C, luego C ++ y luego Java.
Entonces tienes escuelas que son un nivel más bajo y algunos años más jóvenes. Y miran hacia la barra establecida por las escuelas que lideran el camino, y ven que los estudiantes abandonan esas escuelas sabiendo C, y ven que sus propios estudiantes esperan lo mismo, por lo que comienzan a enseñar C, luego C ++, luego Java.
Finalmente, tiene algunas de las instituciones técnicas o de "nivel inferior" que simplemente enseñan cualquier conjunto de tecnología que coincida con las palabras clave que los estudiantes desean en sus currículums, por lo que prácticamente obtiene Java.
Dicho esto, algunas escuelas sí enseñan Lisp, aunque puede ser más un lenguaje electivo que básico. E incluso las escuelas que no enseñan a Lisp como idioma independiente, lo usan ampliamente en los cursos de IA, por lo que los cursos de IA para principiantes se concentran en comenzar la programación de Lisp.
fuente
Esto realmente depende de la universidad. Scheme (un dialecto de lisp) ha sido el lenguaje para el curso introductorio de ciencias de la computación en el MIT durante años, aunque recientemente ha sido reemplazado por python. Obtuve mi BS en CS en una escuela de ingeniería, donde estuve expuesto a C, Scheme, Prolog y C ++ durante mi primer año. Creo que fue una buena mezcla.
Creo firmemente que con qué lenguaje comienzas es mucho menos importante que estar expuesto a múltiples paradigmas desde el principio, antes de que tu cerebro se congele en una forma de mirar el mundo.
fuente
Fundamentalmente, la teoría de la informática es matemática. La ingeniería de software, sin embargo, no lo es. Modelar conceptos matemáticos directamente no es una ventaja inherente; diría que a menudo puede ser una desventaja.
Las buenas teorías y los buenos programas no están necesariamente relacionados.
fuente