1. Smalltalk
Conçu à l'origine au moins en partie comme un moyen pour les enfants d'utiliser les ordinateurs pour apprendre. La syntaxe est assez simple à décrire dans un paragraphe. Comme LOGO, il illustre le principe de la «barrière basse à l'entrée et du plafond élevé».
Smalltalk est un pur langage OO dans le sens où "tout est un objet".
Il enseigne également de nombreuses techniques fonctionnelles, en particulier dans son API de collecte: chaîner des messages, des fonctions d'ordre supérieur, mapper, réduire, etc.
La communauté Squeak est dynamique et accueillante. Vous verrez également de nombreuses discussions sur les techniques avancées: tout comme la communauté Lisp, il y a de nombreux Smalltalkers très expérimentés sur la liste de diffusion désireux de partager leurs connaissances. (Cela ne fait pas de mal que la communauté Squeak a une grande sous-population d'éducateurs professionnels.) Il existe également une autre liste pour les débutants.
2. PROLOG
Un langage de programmation logique qui vous donnera une vision du calcul très différente de n'importe quel autre langage. Prolog est également hautement déclaratif (mais pas complètement: l' !
opérateur or cut peut avoir un effet sémantique significatif sur un prédicat).
3. Lisp commun
Remplacez le schéma ici si vous le souhaitez. Common Lisp prend en charge plusieurs paradigmes, en particulier OO et fonctionnels. Il a également une longue histoire (Lisp est la deuxième langue la plus ancienne encore largement utilisée: seulement FORTRAN est plus ancienne).
4. Haskell
(Attention: je viens juste de commencer à l'apprendre.) Probablement le langage fonctionnel le plus pur de la planète. Il dispose d'un système de type statique très avancé. Des livres d' introduction pratiques existent.
5. C ou Delphi
Vous devez savoir comment fonctionnent les ordinateurs. Vous devez savoir comment la mémoire et le CPU fonctionnent réellement. Les deux sont traditionnellement "proches du métal" et ont des communautés qui encouragent à réfléchir à la façon dont leur langage se compile pour l'assemblage.
Pourquoi cette commande?
Smalltalk est très facile à apprendre, vous pouvez donc commencer rapidement à vous concentrer sur la résolution de problèmes plutôt que de combattre un compilateur ("faible barrière à l'entrée"). Une fois que vous commencez à programmer, il n'y a pas non plus de limite artificielle à ce que vous pouvez faire - "plafond haut".
Une fois que vous avez une bonne idée du fonctionnement d'OO (et - à condition qu'il y ait BEAUCOUP de compréhensions différentes de ce que signifie "OO" - il est juste de dire que OO domine le marché), passer à Prolog vous garantit de ne pas commencer pensant que OO est le seul moyen. Prolog est très différent de la plupart des langues et va étirer vos muscles mentaux afin que vous ne commenciez pas à penser que vous savez tout.
Le Common Lisp, à son tour, est le langage d'un adulte. Il a un standard mature, il est à la pointe de la conception de langages depuis des décennies (avec Smalltalk) - toutes ces nouvelles fonctionnalités sophistiquées que votre langue préférée vient d'acquérir? Les chances sont les idées incubées dans Lisp ou Smalltalk. Le lisp commun est également un peu verruqueux, et vous trouverez la verrue partout où vous allez.
Haskell est le quatrième sur la liste parce que (on me dit: je viens juste de commencer à l'apprendre) sa pureté signifie que certaines choses très courantes (comme les E / S) sont plus difficiles à faire que dans des langages moins purement fonctionnels. Les gens de Haskell utilisent également des terminologies assez exotiques (des mots comme "catamorphisme", par exemple), et vous feriez probablement mieux d'avoir une expérience de programmation à votre actif avant de vous y attaquer. (Mais je dois réitérer, je viens juste de commencer à l'apprendre! Prenez cet avis avec une pincée de sel!)
Et pourquoi C / Delphi dure-t-il? Parce qu'à moins que vous ne travailliez dans des systèmes embarqués, vous ne devriez vraiment pas avoir à apprendre la programmation en pensant que la gestion manuelle de la mémoire est tout ce qu'il y a. La collecte des ordures fonctionnait assez bien pour une machine de niveau des années 80. Votre téléphone est si puissant!
Enfin, je ne l' ai pas mis Erlang dans la liste ci - dessus , même si je devrais vraiment.