J'ai récemment lu beaucoup de discussions sur les langages de programmation fonctionnels (presque au cours de la dernière année). J'aimerais vraiment en choisir un et l'apprendre à fond.
Le dernier semestre, j'ai été initié au programme. Je l'ai aimé. J'ai adoré l'extrême simplicité de la syntaxe, le principe d' homoiconicité , les macros ( hygiéniques et non hygiéniques), la n-arité des procédures, etc.
Le problème avec Scheme est que c'est une langue académique. Je ne pense pas qu'il soit vraiment utilisé dans les environnements de production. Je ne crois pas non plus qu'il soit particulièrement bon d'avoir notre CV. J'ai donc cherché des solutions de rechange. Ils sont nombreux et semblent avoir un niveau de popularité similaire.
Quelques réflexions sur d'autres langages fonctionnels que j'ai déjà envisagés:
- Clojure: Cela a l'air génial car il permet d'accéder au monde Java, il est orienté vers l'évolutivité et la concurrence, mais le monde Java n'est-il pas à la pointe de la technologie? Je connais déjà assez bien Java, mais serait-il sage d'ajouter encore plus d'énergie en fonction de la JVM?
- Haskell: Cela semble être une langue très appréciée, mais d'après ce que j'ai lu, c'est aussi une langue plus académique.
- Lisp: Il existe depuis toujours. Il semble y avoir l'essentiel de ce que j'aime chez Scheme. Il a une grande communauté. Pour ce que je [pense que je sais], c'est probablement le langage de programmation fonctionnel le plus largement utilisé dans l'industrie (?).
- F #: Je ne l'ai pas vraiment envisagé. Je ne suis pas un grand fan de la SP. Je n'ai pas l'argent pour payer leurs logiciels (je pourrais les avoir libérés des alliances universitaires, mais je suis plus enclin à opter pour des solutions axées sur la communauté). Bien que ... je suppose que ce serait le meilleur choix orienté vers une carrière.
Ce soir, je me penche vers Lisp. Il y a une semaine, c'était Haskell. Avant cela, c'était Clojure. Au cours de la dernière année, je faisais quelque chose pour le plaisir que de ne pas le pousser pour la raison que vous connaissez. Maintenant, j'aimerais être sérieux (pour en apprendre un, pour faire de vrais projets avec cela, pour éventuellement travailler de manière professionnelle avec). Mon problème est que j'aurais besoin de les apprendre tous en profondeur avant de pouvoir en choisir un.