Bonjour,
Q1: Oui. J'ai eu une petite intro à Haskell, et très très vaguement touché à Scala pendant les études (Scala c'était à l'EPFL, bastion originel du Scala).
Q2: Aucun; mais si je devais reprendre du fonctionel, vu que mon langage n°1 est le Java, ce serait à priori plutôt vers Scala que je me tournerais. Ceci dit, honnêtement j'ai quasiment tout oublié vu que je ne m'en sers pas pour des projets concrets, je devrais quasiment repartir de zéro.
Q3: Ni l'un ni l'autre. J'ai trouvé la prog fonctionnelle très sympathique, mais de là à architecturée un projet concret de A à Z, il y a un pas que je n'ai pas encore osé franchir. Au niveau professionel, je n'ai pas l'impression que ce soit très demandé, il semblerait que la grosse majorité soit partagée entre Java et la plateforme C#/VB.net.
Q4: Full POO et procédural, clairement. JE ne sais pas si c'est parce que je suis trop formaté étant donné que j'ai commencé la prog en autodidacte bien avant de faire des études en informatique (j'ai commencé le C/C++ à 11 ans), ou si c'est simplement parce que je n'ai pas pris la peine de creuser dans ce domaine plus que ça en-dehors des obligations scolaires
Il n'empêche que la tendance est de plus en plus à vouloir intégrer des concepts typiquement fonctionels dans les langages OO classiques, parce que ça apporte un plus extrêmement intéressant, pratique et efficace pour régler certains problèmes de manière très élégante. Le meilleur serait donc dans la souplesse et la mixité des paradygmes ?
En tout cas, on se demande bien ce que serait le JavaScript, le python et le lua sans concepts fonctionels. Mème Java s'y met un peu avec Java 8.
Q5: J'ai terminé mes études mais ne travaille pas encore (je cherche, j'ai terminé les études cette année), donc pour le moment je n'utilise pas de langage que je n'apprécie pas du tout au moins un minimum. Mon quatuor de tête est Java, PHP, JavaScript et C++ et je suis en train de me mettre à python. Après le reste c'est très anecdotique, j'ai touché un peu de lua, j'ai vaguement voulu essayer ruby mais n'ai pas été séduit, pareil pour C# à cause de la lourdeur de VS, j'ai eu un petit aperçu de perl mais ça m'a paru exceptionnellement bordélique, …etc… J'ai rangé Nodes dans un coin, je serais bien tenté d'essayer un coup mais je n'ai pas encore eu le temps…
Maintenant pourquoi ceux-là, eh bien PHP et JavaScript sont probablement des incontournables dans leurs domaines de prédilection respectifs (web back-end et front-end), bien qu'en fait je ne les apprécie pas tant que ça, je considère que lua a les mêmes qualités de base que JavaScript mais est beaucoup plus élégant, et PHP a toujours un peu cet aspect langage du petit bricoleur (même si le tir a été largement corrigé avec PHP 5.3+).
Java est souvent critiqué pour être lourd et verbeux mais il a l'avantage d'avoir une communauté énorme et d'être très polyvalent, tout en gardant un rapport performance/simplicité assez bon. ET j'aime bien C++ parce qu'on peut vraiment tout faire avec (très bas niveau comme très haut niveau), qu'il produit des programmes performants et compacts (en taille d'exécutable pas en code), l'ennui c'est évidemment qu'il est très vite complexe même pour faire les plus petits trucs idiots et certaines choses restent toujours aussi impénétrables (les tarés qui font des programmes complet en template).
Q6: Je ne répondrai pas, je ne suis pas assez fan des langages fonctionels pour cela
Q7: Oui. Ca me semble important parce que ça permet de voir autre chose, d'élargir sa culture, et d'être plus efficace en POO/procédural étant donné que le fonctionel a largement débarqué dans les langages OO classiques. La compréhension de liste en python c'est typiquement du fonctionel et c'est redoutable; tout comme les algorithmes basés sur map/reduce/filter et l'élégance de manipulation des collections associées, les closures, ou les itérateurs et générateurs, que ce soit en Java, JS, PHP, C++ ou n'importe quoi d'autre, qui implémentent tous à leur manière tout ou partie de ces concepts aujourd'hui.
ON utilise encore peu le case matching dans les langages traditionels mais c'est aussi très très puissant, ça permet d'exprimer bien des choses plus facilement et plus clairement qu'avec des chaînes de if.
Après, en ce qui me concerne, je n'ai plus utilisé les langages fonctionels au-delà des cours; c'est pas grave je pense. L'intérêt de passer par un langage fonctionel même si on l'oublie à peu près complètement après, c'est qu'on garde une idée générale des concepts que ça a apporté et qu'on reste capable globalement de les utiliser quand on les retrouve ailleurs.
Si je vous dis que j'ai fait un an de latin en secondaire, que j'ai depuis tout oublié et que je serais bien incapable de construire ou comprendre une phrase toute simple en latin aujourd'hui, mais que c'est ce qui m'a véritablement donné le déclic pour comprendre ce que sont et comment fonctionnent les cas et les déclinaisons en allemand, je pense que vous voyez où je veux en venir avec cet argument.