J'ai déjà quelques langages à mon actif (dans un ordre approximatif d'expertise) : Python, C, C++, PHP, Javascript, Haskell, Java, MIPS, assembleur x86. Mais cela fait presque 2 ans que je n'en ai pas appris un nouveau, et ça commence à me démanger. J'ai quelques critères :
- Doit (je répète : doit) avoir une implémentation libre de Linux
- Devrait être différent des langues que je connais déjà. En d'autres termes, il doit présenter des caractéristiques qui m'amènent à envisager la résolution de problèmes d'une manière nouvelle.
- Il devrait avoir un certain potentiel pour une utilisation pratique. Il n'est pas nécessaire que ce soit le prochain Java, mais cela exclut Brainf* et Shakespeare :) Je ne me soucie pas vraiment du nombre d'offres d'emploi, mais les applications et les bibliothèques du monde réel sont un plus.
- Il devrait y avoir au moins juste assez de matériel d'apprentissage gratuit pour me permettre de commencer.
Je pensais à Lisp (CL ? quelque chose d'autre ?) ou OCaml. J'ai déjà une certaine expérience des langages fonctionnels avec Haskell (oui, je sais que Lisp/OCaml sont multi-paradigmes). Je ne suis pas un expert - par exemple, certaines parties du code de Real World Haskell me font encore mal au cerveau, mais je comprends les concepts de base et certains concepts avancés (foncteurs, monades).
Lequel choisir ? Y a-t-il d'autres langues que j'ai oubliées ? Pourriez-vous également inclure des liens utiles vers de bons livres/tutoriels, etc.