Langage fonctionnel

Zeste de fonctionnel

a marqué ce sujet comme résolu.

Par rapport aux autres membres de Zeste de Savoir, surtout ceux qui ont répondu à ce sujet, je suis très (très) débutant. C'est pour ça que j'ai jugé important de mentionner mon niveau parce que j'ai infiniment moins de recul qu'eux, je pense.

En un an de Python t'as le temps de voir les bases et éventuellement de les approfondir un peu, ça fait de toi peut être un intermédiaire en Python, mais certainement pas en programmation. Ça rejoint ce que je disais: quand on apprend un langage, on apprend un paradigme de programmation, c'est pour ça que je pense que c'est bien de connaitre plusieurs langages de paradigmes différents (là je parlais du fonctionnel parce que c'était le sujet, mais c'est valable aussi pour la programmation logique, l'évènementiel, etc…). Surtout que mon apprentissage est quasiment que théorique, j'ai jamais fait de gros projet donc je pratique pas beaucoup.

+0 -0
  1. Absolument pas, même si je suis en école d'ingé info-indus.
  2. OCaml est le seul que je connaisse pour l'instant.
  3. Personnel, c'est pas demain la veille que j'aurais le niveau pour faire des trucs pro avec. :P
  4. Je maîtrise le procédural beaucoup plus que le fonctionnel, mais les codes fonctionnels ont un cachet et un style que je préfère au procédural.
  5. J'utilise principalement C et C++ en perso, et Java et WinDev en entreprise.
  6. A vrai dire, vu qu'OCaml permet de faire de l'impératif, ça pourrait (en théorie) passer partout.
  7. Oui ! Peu importe lequel, connaître le paradigme fonctionnel permet de développer une nouvelle manière de concevoir l'informatique et l'algorithmique. Je compte d'ailleurs proposer quelques séances aux personnes de ma promo pour les aider à mettre le pied à l'étrier. :)
  1. 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).

  1. 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).

  1. 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.

  1. 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.

  1. 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.

  1. 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++.

  1. 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.

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.

Il est trop limité pour un site Web, mais pour des jeux sur navigateur, Elm (un dérivé du Haskell) envoie vraiment du bois, la gestion des I/O est super simple et élégante.

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++.

Ça, c'est vraiment un gros point noir de Haskell : pour que les performances soient vraiment bonnes, faut faire de la magie noire… Et j'ajouterais la sale manie de mettre toutes les fonctions de la lib standard utilisées par ton programme dans l'exécutable final : tu te retrouves avec un programme de 2,5 mégaoctets pour faire une p****n de factorielle…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte