- Avez-vous commencé à utiliser les langages fonctionnels durant votre cursus scolaire ? (Si oui n’hésitez pas à préciser le nom et l’année de votre formation)
Oui, j'ai appris le Ocaml en première année d'école d'ingé (bac+3).
- Quel langage fonctionnel utilisez-vous principalement (votre favori) ? Quels sont les autres langages fonctionnels que vous utilisez (mis à part le favori) ?
J'utilise exclusivement le Haskell quand je fais du fonctionnel. Je me tâte à en tester d'autres, notamment pour tout ce qui est interface graphique et parallélisme/réseau (en gros, pour les I/O).
- Utilisez-vous votre langage fonctionnel favori pour des projets professionnels, personnels ou les deux ?
Surtout pour des projets perso. Étant toujours étudiant, je peux difficilement dire que je l'ai utilisé pour des projets professionnels. Je peux cependant noter que j'ai réussi à utiliser le Haskell, dans le cade de mes études, pour un projet de compilateur qui était prévu pour être fait en Java.
- Généralement, préférez-vous utiliser les langages avec un paradigme procédural ou fonctionnel ?
Ça dépend beaucoup des cas. Globalement, quand je veux faire quelque chose rapidement (en temps de code), j'ai remarqué quee le Haskell est bien meilleur. Par contre, dès qu'il faut manipuler précisément du bas niveau (ou certaines structures de données par évidentes) ou pour certains algorithmes, le procédural peut être plus pratique. Pareil quand j'ai besoin d'un maximum de performance.
- Quels sont les langages procéduraux utilisez principalement ? Si vous en utilisez, l’utilisez-vous parce que vous l’appréciez (n’hésitez pas à citer les qualités) ou bien est-ce plus par obligation (pour gagner sa vie) ?
J'utilise surtout le C++ et le Javascript en procédural. J’apprécie pas mal les deux et ça me permet d'avoir pas mal de choix sur la granularité de ce que je veux faire.
- Dans quel cas (type de projet) éviteriez-vous d'utiliser votre langage fonctionnel ?
S'il faut faire beaucoup d'entrée/sorties, typiquement pour un jeu ou une interface graphique. Ça peut facilement tourner à l'horreur et c'est typiquement le genre de cas où le fonctionnel n'a que très peu d'avantage sur le procédural. Pareil quand j'ai besoin d'un maximum de performances. Même si Haskell se défend très bien, ça nécessite beaucoup de temps et de connaissances pour adapter un code afin qu'il ai des performances similaire à un équivalant C++.
- Conseilleriez-vous aux gens qui ne connaissent que le paradigme procédural d’apprendre au moins un langage fonctionnel ? Si oui pourquoi et lequel ?
Oui. Je trouve que le Haskell est vraiment bien pour ça : même s'il est probablement assez difficile à apprendre pour quelqu'une qui viens d'un milieu procédural, ça permet de voir directement quels sont les points importants du fonctionnel. Et puis, ça reste un des langage fonctionnel les plus puissant dans le typage.
Note : le Ocaml est majoritairement enseigné en France, mais ce n'est pas le cas dans pas mal d'autres pays où c'est le Haskell et le Scala qui sont souvent favorisés.