1. Smalltalk
Entwarf ursprünglich zumindest teilweise, damit Kinder mit Computern lernen können. Die Syntax ist einfach genug, um sie in einem Absatz zu beschreiben. Es steht wie LOGO beispielhaft für das Prinzip "niedrige Eintrittsbarriere, hohe Decke".
Smalltalk ist eine reine OO-Sprache in dem Sinne, dass "alles ein Objekt ist".
Es werden auch viele funktionale Techniken unterrichtet, insbesondere in der Sammlungs-API: Verketten von Nachrichten, Funktionen höherer Ordnung, Zuordnen, Reduzieren usw.
Die Squeak- Community ist lebendig und einladend. Sie werden auch viele Diskussionen über fortgeschrittene Techniken sehen: Ähnlich wie in der Lisp-Community gibt es viele sehr erfahrene Smalltalker auf der Mailingliste, die bereit sind, ihr Wissen zu teilen. (Es tut nicht weh, dass die Squeak-Community eine große Unterpopulation professioneller Pädagogen hat.) Es gibt auch eine andere Liste für Anfänger.
2. PROLOG
Eine logische Programmiersprache , mit der Sie eine ganz andere Ansicht der Berechnung erhalten als mit nahezu jeder anderen Sprache. Prolog ist sehr auch deklarative (aber nicht ganz so: die !
oder Schnitt Betreiber eine erhebliche semantische Wirkung auf einem Prädikat haben können).
3. Common Lisp
Wenn Sie möchten, ersetzen Sie hier das Schema. Common Lisp unterstützt mehrere Paradigmen, insbesondere OO und funktional. Es hat auch eine lange Geschichte (Lisp ist die zweitälteste noch weit verbreitete Sprache: nur FORTRANs ältere).
4. Haskell
(Einschränkung: Ich habe gerade erst angefangen, es zu lernen.) Wahrscheinlich die reinste funktionale Sprache auf dem Planeten. Es hat ein sehr fortgeschrittenes statisches Typensystem. Handlicher Intro Bücher existieren.
5. C oder Delphi
Sie müssen wissen, wie Computer funktionieren. Sie müssen wissen, wie Speicher und CPU tatsächlich funktionieren. Beide sind traditionell "nah am Metall" und haben Gemeinschaften, die zum Nachdenken anregen, wie sich ihre Sprache zu einer Versammlung zusammensetzt.
Warum diese Bestellung?
Smalltalk ist sehr einfach zu erlernen, sodass Sie sich schnell auf das Lösen von Problemen konzentrieren können, anstatt gegen einen Compiler zu kämpfen ("niedrige Eintrittsbarriere"). Sobald Sie mit dem Programmieren beginnen, gibt es auch keine künstliche Beschränkung Ihrer Möglichkeiten - "High Ceiling".
Wenn Sie eine faire Vorstellung davon haben, wie OO funktioniert (und - mit der Maßgabe, dass es VIELE unterschiedliche Auffassungen darüber gibt, was "OO" bedeutet - kann man sagen, dass OO den Markt beherrscht), stellt Prolog sicher, dass Sie nicht anfangen zu denken, dass OO der einzige Weg ist. Prolog unterscheidet sich sehr von den meisten Sprachen und spannt Ihre mentalen Muskeln, sodass Sie nicht glauben, dass Sie alles wissen.
Common Lisp wiederum ist die Sprache eines Erwachsenen. Es hat einen ausgereiften Standard, es ist seit Jahrzehnten führend im Sprachdesign (zusammen mit Smalltalk) - all diese ausgefallenen neuen Funktionen, die Ihre Lieblingssprache gerade erworben hat? Wahrscheinlich sind die Ideen in Lisp oder Smalltalk inkubiert. Gemeines Lisp ist auch ein bisschen wartig, und Sie werden Wartiness finden, wohin Sie gehen.
Haskells vierter Platz auf der Liste, weil (mir wurde gesagt: Ich habe gerade erst angefangen, es zu lernen) seine Reinheit bedeutet, dass einige sehr häufige Dinge (wie E / A) schwieriger zu tun sind als in weniger rein funktionalen Sprachen. Die Haskell-Leute verwenden auch einige ziemlich exotische Terminologien (Wörter wie "Katamorphismus"), und Sie wären wahrscheinlich besser dran, wenn Sie ein wenig Programmiererfahrung mitbringen würden, bevor Sie sich damit befassen. (Aber ich muss noch einmal wiederholen, ich habe gerade erst angefangen, es zu lernen! Nimm diese Meinung mit einer Prise Salz an!)
Und warum C / Delphi zuletzt? Denn wenn Sie nicht in eingebetteten Systemen arbeiten, sollten Sie nicht lernen müssen, wie man den manuellen Speicher verwaltet. Die Müllabfuhr funktionierte gut genug für eine Maschine der 80er Jahre. Ihr Telefon ist so leistungsfähig!
Schließlich habe ich Erlang nicht in die obige Liste aufgenommen, obwohl ich es wirklich sollte.