90 votes

La programmation fonctionnelle est-elle pertinente pour le développement web ?

J'ai beaucoup entendu parler récemment de la programmation fonctionnelle et Clojure semble particulièrement intéressant. Bien que je "comprenne" la description de base de ce qu'elle est, je n'arrive pas à comprendre comment je pourrais l'utiliser au quotidien en tant que développeur web, si tant est que je le puisse. Une grande partie de ce que j'ai lu se concentre sur le côté mathématique de la programmation fonctionnelle plutôt que sur les situations de programmation typiques que l'on trouve dans les OO classiques.

Est-ce que j'ai le mauvais bout du bâton ? La programmation fonctionnelle est-elle totalement étrangère au développement Web ? Si ce n'est pas le cas, existe-t-il des exemples de son utilisation "pour le web" ?

62voto

JacquesB Points 19878

La programmation fonctionnelle convient très bien aux applications web. L'application web reçoit une requête HTTP et produit un résultat HTML. Cela peut être considéré comme une fonction allant des demandes aux pages.

Comparez avec les applications de bureau, où nous avons typiquement un processus long, une interface utilisateur avec état et un flux de données dans plusieurs directions. Cette situation est plus adaptée à l'OO, qui concerne les objets avec état et le passage de messages.

32voto

Greg Case Points 10300

Voici quelques exemples qui me viennent à l'esprit :

  • La boutique Yahoo ! est alimentée par Lisp (initialement nommé Viaweb avant l'acquisition)
  • Reddit a été entièrement prototypée en Lisp, bien qu'elles passage à Python en 2005
  • Hacker News est entièrement écrit en Arc (un dialecte Lisp)

20voto

Sherm Pendley Points 10822

Je ne vois pas pourquoi. Tant que vous fournissez aux navigateurs un HTML conforme aux normes, ils ne se soucient pas de ce que vous avez utilisé pour le produire, que ce soit un langage fonctionnel, un langage impératif ou des singes entraînés.

20voto

Chris Conway Points 24671

Pure la programmation fonctionnelle pourrait ne pas s'adapter très bien à l'environnement de programmation web. Mais le principal obstacle est simplement le manque d'infrastructure (frameworks et API). Il faudra beaucoup de temps (probablement jamais, honnêtement) avant qu'un langage fonctionnel ne dispose d'un environnement de programmation web aussi riche que Java, Python ou Ruby.

Cela dit, il y a quelques options.

Je n'ai pas d'expérience dans ce domaine. Peut-être les commentateurs peuvent-ils me dire ce qui a bien fonctionné pour eux.

14voto

James McMahon Points 14356

Twitter a réécrit son backend en Scala. un langage JVM qui prend en charge les paradigmes orienté objet et fonctionnel.

En outre, le Ascenseur est écrit en Scala.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X