Ich habe mich mit LISP vertraut gemacht, um mich zu verbessern. Eines der Dinge, die mir aufgefallen sind, ist, dass LISP viel mehr dem Paradigma der Mathematik entspricht als etwa C. Die Syntax und die Entwurfsstruktur scheinen das tatsächliche mathematische Modell eines Algorithmus direkt wiederzugeben. Es macht für mich keinen Sinn, warum auch gute mathematikbasierte CS-Programme C statt LISP studieren. Ich denke, dass LISP direkter höhere mathematische Konzepte verwendet als C. Ich sage nicht, dass Sie mathematische Strukturen in C nicht modellieren können. Ich stelle lediglich fest, dass LISP für Mathematiker fest verdrahtet zu sein scheint.
Ich habe viele von Joel Spolskys Beschimpfungen in den JAVA-Schulen gelesen und was nicht - und ich stimme seiner Einschätzung zu -, aber meine Schule unterrichtete JAVA aus genau diesem Grund nicht. Sie waren strikt darin, grundlegende Konzepte wie Zeiger, Algorithmusdesign, Rekursion und sogar Montageanweisungen zu vermitteln. Sie haben dies jedoch alles in C und C ++ getan. Kennt jemand die Gründe dafür und / oder seine Geschichte?
quelle
Antworten:
IN ORDNUNG. Die langweilige Antwort ist also, dass die meisten Schulen am Ende lehren, was die Professoren mögen, und die meisten Professoren sind nicht mit Lisp aufgewachsen. Sie verbrachten ihre ersten Jahre auf dem Gebiet der Algol-basierten Sprachen. Aus diesem Grund werden Sie Jahre später, wenn sie Lehrpläne erstellen, mit Schulen konfrontiert, die CS mit einer Grundlage in Pascal, C, C ++ und Java unterrichten.
Dann haben Sie Schulen, die eine Stufe niedriger und einige Jahre jünger sind. Und sie schauen auf die Messlatte, die von den vorausschauenden Schulen festgelegt wurde, und sie sehen, dass die Schüler diese Schulen verlassen und C kennen, und dass ihre eigenen Schüler dasselbe erwarten - also beginnen sie mit dem Unterrichten von C, dann C ++ Java.
Schließlich haben Sie einige der technischen oder "unteren" Einrichtungen, die einfach lehren, welche Art von Technologie zu den Stichwörtern passt, die die Studenten in ihren Lebensläufen haben möchten - Sie erhalten also so ziemlich nur Java.
That being said, einige Schulen tun lehren Lisp, obwohl es eher eine Wahl sein kann als eine grundlegende Sprache. Sogar die Schulen, die Lisp nicht als eigenständige Sprache unterrichten, verwenden es ausgiebig in AI-Kursen, sodass Anfänger-AI-Kurse eine Konzentration auf den Beginn der Lisp-Programmierung erhalten.
quelle
Das hängt wirklich von der Universität ab. Schema (ein Dialekt von Lisp) ist seit langem die Sprache für den Einführungskurs in die Informatik am MIT, obwohl es kürzlich durch Python ersetzt wurde. Ich habe meinen BS in CS an einer Ingenieurschule gemacht, wo ich in meinem ersten Jahr mit C, Scheme, Prolog und C ++ in Berührung gekommen bin. Ich denke das war eine gute Mischung.
Ich bin der festen Überzeugung, dass die Sprache, mit der Sie anfangen, viel weniger wichtig ist, als sich früh mehreren Paradigmen auszusetzen, bevor Ihr Gehirn zu einer Art der Sichtweise auf die Welt erstarrt.
quelle
Grundsätzlich ist die Informatiktheorie mathematisch. Software-Engineering ist dies jedoch nicht. Mathematische Konzepte direkt zu modellieren ist kein inhärenter Vorteil - ich würde behaupten, es kann oft ein Nachteil sein.
Gute Theorien und gute Programme sind nicht unbedingt miteinander verbunden.
quelle