Tenho me familiarizado com o LISP para fins de auto-aperfeiçoamento. Uma das coisas que notei é que o LISP está muito mais dentro do paradigma da Matemática do que o C. A estrutura da sintaxe e do design parece ecoar diretamente o modelo matemático real de um algoritmo. Não faz sentido para mim por que bons programas de CS baseados em matemática estudam C em vez de LISP. Penso que o LISP emprega mais diretamente conceitos matemáticos do que C. Não estou dizendo que você não pode modelar estruturas matemáticas no C. Estou apenas observando que o LISP parece estar muito conectado para matemáticos.
Eu li muitos dos discursos de Joel Spolsky sobre as escolas JAVA e o que não - e eu concordo com sua avaliação -, mas minha escola não ensinou JAVA por esse mesmo motivo. Eles eram rigorosos no ensino de conceitos fundamentais como ponteiros, design de algoritmos, recursão e até instruções de montagem. No entanto, eles fizeram tudo isso em C e c ++. Alguém sabe as razões para isso e / ou sua história?
fonte
Respostas:
ESTÁ BEM. Portanto, a resposta chata é que, no final, a maioria das escolas ensina com o que os professores se sentem confortáveis e a maioria dos professores não cresceu invadindo o Lisp; eles passaram seus primeiros anos no campo com idiomas baseados em Algol. Por causa disso, anos depois, quando eles estão criando um currículo, você acaba com escolas que ensinam CS com base em Pascal, depois em C, depois em C ++ e em Java.
Então você tem escolas que são um pouco mais baixas e alguns anos mais jovens. E eles olham para o padrão estabelecido pelas escolas que lideram o caminho, e veem que os alunos deixam essas escolas conhecendo C, e veem que seus próprios alunos esperam o mesmo - então eles começam a ensinar C, depois C ++ e depois Java.
Por fim, você tem algumas instituições técnicas ou de "nível mais baixo" que simplesmente ensinam qualquer conjunto de tecnologia que corresponda às palavras-chave que os alunos desejam em seus currículos - para que você obtenha o Java.
Dito isto, algumas escolas fazem ensinar Lisp, embora possa ser mais de uma disciplina eletiva em vez de uma linguagem fundamental. E mesmo as escolas que não ensinam o Lisp como um idioma autônomo, o usam extensivamente nos cursos de IA; portanto, os cursos iniciantes de IA concentram-se no início da programação do Lisp.
fonte
Isso realmente depende da universidade. O esquema (um dialeto do lisp) tem sido a linguagem para o curso introdutório de ciência da computação no MIT há séculos, embora tenha sido substituído por python recentemente. Eu me formei em CS em uma escola de engenharia, onde fui exposto a C, Scheme, Prolog e C ++ durante meu primeiro ano. Eu acho que foi uma boa mistura.
Acredito firmemente que a linguagem com a qual você começa é muito menos importante do que ser exposta a múltiplos paradigmas desde o início, antes que seu cérebro congele em uma maneira de ver o mundo.
fonte
Fundamentalmente, a teoria da ciência da computação é matemática. Engenharia de software, no entanto, não é. Modelar conceitos matemáticos diretamente não é uma vantagem inerente - eu diria que muitas vezes pode ser uma desvantagem.
Boas teorias e bons programas não estão necessariamente relacionados.
fonte