Bon, pas mal des langages que tu cites sont impératifs, donc autant essayer d'aller voir un peu ce qu'il y a de vraiment différent; c'est toujours bon d'avoir du recul (ça permet de troller plus efficacement).
* Forth : ça c'est un langage qu'il est fun. Des règles de bases extremement simples qui permettent de construire des choses évoluées. Pas mal utilisé dans l'embarqué, puisque ça permet d'avoir un interpreteur built-in sur quasi n'importe quoi (genre un micro-controlleur) tout en permettant des manips subtiles (à vue de pif, le "bios" des motherboard à base de Niagara doivent en avoir par exemple). Les bases se voient rapidement avec un tutorial.
* Lisp : globalement, à chaque fois qu'un langage permet un nouveau moyen d'exprimer une concept ou une construction, tu auras toujours un lispeux qui te dira "ouais, on le fait déjà en lisp". Amha d'ailleurs c'est pas complètement faux, à partir du moment où tu ignores les supports syntaxique; perso "Syntax does matter", donc ... Ce qui fait à mes yeux la force de ce langage, c'est le fait de pouvoir facilement manipuler du code (représenté sous forme de liste) à partir d'un morceau de code (toi aussi résoud direct les problèmes d'introspection :) .
* Haskell : parce qu'il est bon de connaitre les langages fonctionnels. Haskell est connu pour être un peu plus "pur" (aheum) que OCaml niveau approche fonctionnelle et beaucoup d'articles de recherche sur les langages utilisent la notation Haskell pour présenter une sémantique. OCaml est aussi bon à connaitre, car il propose qqchose d'extremement réaliste pour un langage fonctionnel (d'aucun dirait "ouais, parce qu'il propose aussi de l'impératif" :) )
* Erlang : Non pas pour son aspect fonctionnel mais pour tout ses aspects redondance, failover, remplacement à chaud, qui donnent un très bonne idée de ce qui est possible de faire (et c'est impressionant) avec un bon support du langage. Pour te faire une idée, tu peux changer du code qui est en train de tourner sans interruption et si jamais la modif est invalide, Erlang repassera sur l'ancienne version sans interruption.
* Prolog : un peu comme pour Forth, l'approche de Prolog est vraiment différente des langages impératif et fonctionnel. C'est pas le langage le plus à la mode, mais il nécessite une manière de penser ses algos assez intéressante je trouve. Et comme toujours ça permet de voir qu'il n'y a pas qu'une seule approche pour exprimer un problème.
Sinon, pour rester dans les impératifs :
* Python, parce que je l'aime bien, qu'il est super clean & régulier
* Ada 95, qui malgré une image un peu vieillotte a un pouvoir d'expression assez peu commun et te fais comprendre des concepts qui restent implicites dans d'autres langages.
Et la lecture de http://lambda-the-ultimate.org/ t'intéressera si tu as envie de suivre un peu ce qui se fait au niveau des langages informatiques.
# Histoire de changer de l'impératif
Posté par Pierre Palatin . En réponse au journal Quel langage pour s'amuser ?. Évalué à 10.
* Forth : ça c'est un langage qu'il est fun. Des règles de bases extremement simples qui permettent de construire des choses évoluées. Pas mal utilisé dans l'embarqué, puisque ça permet d'avoir un interpreteur built-in sur quasi n'importe quoi (genre un micro-controlleur) tout en permettant des manips subtiles (à vue de pif, le "bios" des motherboard à base de Niagara doivent en avoir par exemple). Les bases se voient rapidement avec un tutorial.
* Lisp : globalement, à chaque fois qu'un langage permet un nouveau moyen d'exprimer une concept ou une construction, tu auras toujours un lispeux qui te dira "ouais, on le fait déjà en lisp". Amha d'ailleurs c'est pas complètement faux, à partir du moment où tu ignores les supports syntaxique; perso "Syntax does matter", donc ... Ce qui fait à mes yeux la force de ce langage, c'est le fait de pouvoir facilement manipuler du code (représenté sous forme de liste) à partir d'un morceau de code (toi aussi résoud direct les problèmes d'introspection :) .
* Haskell : parce qu'il est bon de connaitre les langages fonctionnels. Haskell est connu pour être un peu plus "pur" (aheum) que OCaml niveau approche fonctionnelle et beaucoup d'articles de recherche sur les langages utilisent la notation Haskell pour présenter une sémantique. OCaml est aussi bon à connaitre, car il propose qqchose d'extremement réaliste pour un langage fonctionnel (d'aucun dirait "ouais, parce qu'il propose aussi de l'impératif" :) )
* Erlang : Non pas pour son aspect fonctionnel mais pour tout ses aspects redondance, failover, remplacement à chaud, qui donnent un très bonne idée de ce qui est possible de faire (et c'est impressionant) avec un bon support du langage. Pour te faire une idée, tu peux changer du code qui est en train de tourner sans interruption et si jamais la modif est invalide, Erlang repassera sur l'ancienne version sans interruption.
* Prolog : un peu comme pour Forth, l'approche de Prolog est vraiment différente des langages impératif et fonctionnel. C'est pas le langage le plus à la mode, mais il nécessite une manière de penser ses algos assez intéressante je trouve. Et comme toujours ça permet de voir qu'il n'y a pas qu'une seule approche pour exprimer un problème.
Sinon, pour rester dans les impératifs :
* Python, parce que je l'aime bien, qu'il est super clean & régulier
* Ada 95, qui malgré une image un peu vieillotte a un pouvoir d'expression assez peu commun et te fais comprendre des concepts qui restent implicites dans d'autres langages.
Et la lecture de http://lambda-the-ultimate.org/ t'intéressera si tu as envie de suivre un peu ce qui se fait au niveau des langages informatiques.