web-dev-qa-db-fra.com

La programmation fonctionnelle est-elle réellement utilisée pour créer des applications?

Dupliquer possible:
[.____] Quelles sont certaines applications bien connues écrites dans F #?

Je vois beaucoup de gens à parler de la façon dont la programmation fonctionnelle cool est, à quel point Lisp et Haskell et F # sont géniaux, etc., mais ce que je ne vois pas, c'est qu'ils sont réellement utilisé. À peu près chaque programme sur mon ordinateur est écrit dans quelque chose dans la famille C, Delphi ou Python. Je vois des tutoriels en train de parler à quel point il est facile d'utiliser des langues fonctionnelles pour faire des problèmes de mathématiques compliqués, mais personne ne parle de les utiliser pour faire les choses que la plupart des gens se soucient d'utiliser des ordinateurs, tels que des applications et des jeux d'entreprise.

Quelqu'un a-t-il des exemples de programmes réels que les gens ont entendu et utilisent, écrit dans une langue fonctionnelle? Le seul que je puisse penser au sommet de ma tête est abus , il y a presque 15 ans. (Des choses comme Emacs, où le programme de base est écrit en C avec une couche de script de langue fonctionnelle sur le dessus, ne comptez pas.)

12
Mason Wheeler

Je ne connais pas beaucoup de jeux ou d'applications d'utilisateur final écrits dans des langages fonctionnels, bien que je suis sûr qu'il en existe. Les jeux et les applications d'utilisateur final, bien que une partie importante et visible du marché des logiciels n'en sont qu'une partie. Rappelez-vous, il y a énormes des quantités de logiciels là-bas que vous ne voyez jamais car il s'agit de processus d'orchestration qui ne disposent pas d'une application d'utilisateur finale ou d'interfaces de jeu.

Par exemple, F # est populaire au Credit Suisse pour une analyse quantitative:

http://blogs.msdn.com/b/dsyme/archive/2010/07/15/f-jobs-at-credit-suisse-london.aspx

Sauf si vous travaillez là-bas, vous n'allez probablement jamais voir l'interface utilisateur sur ce logiciel.

Ou, Erlang est populaire pour écrire le logiciel qui contrôle les commutateurs de téléphones mobiles:

http://fr.wikipedia.org/wiki/erlang_ (programmation_language )

Vous ne pensez probablement pas à faire un appel téléphonique comme une application, mais une personne devait écrire le logiciel qui contrôle le commutateur.

20
Eric Lippert

Avez-vous déjà utilisé un site Web moderne, beaucoup de JavaScript, des tonnes de personnes utilisant jQuery?

Eh bien, c'est efficacement une langue fonctionnelle, des fermetures, des fonctions comme des objets de première classe, etc.

Partout, des millions d'utilisateurs jour après jour.

10
Orbling

erlang est utilisé à - Facebook , Yahoo , et Amazon . Il est également en cours d'exécution dans Ericsson et Nortel EPBX (Bourse publique électronique BRANCH EXCHANGE) Telecom avec des heures de disponibilité ridicules. Couchdb est écrit à Erlang, comme c'est Ejabberd . Il y en a plus maintenant et plus à venir chaque jour. Vérifiez totalement erlang pour des emplois Erlang pour voir qui travaille sur quoi.

9
Alan

Les dialectes LISP sont utilisées partout à la place - mais ce n'est pas vraiment grand public ...

JAK et DAXTER (démo youtube) a été écrit à l'aide de l'objectif ( montage de jeu LISP ). à partir de la revue GamasUTRA , je cite (j'en mettant l'accent sur la clarté):

5. Règles de l'objectif! Pratiquement tout le code d'exécution (environ un demi-million de lignes de code source) a été écrit dans l'objectif (l'assemblage de l'objet de jeu Lisp [acronyme correct?]), Du chien vilain propre en interne Langue développée, qui était en fonction du langage de programmation LISP . Avant de vous renvoyer comme fou, considérez les nombreux avantages d'avoir un compilateur personnalisé.

LISP a un ensemble très cohérent et un ensemble de règles syntaxiques impliquant la construction et l'évaluation des listes. Les listes qui représentent le code sont exécutées en évaluant les éléments figurant dans la liste; Si la tête de la liste est une fonction (ou une autre action), vous pouvez penser aux autres éléments de la liste comme étant les paramètres à cette fonction. Cette simplicité de la syntaxe LISP le rend trivial pour créer des macros puissantes qui seraient difficiles ou impossibles à implémenter à l'aide de C++ .

Autre logiciel écrit à l'aide de LISP commun Comprend:

la liste continue. Il est juste de dire que bien que Lisp ne soit pas exactement une langue entièrement traditionnelle, cela résout certainement beaucoup de problèmes difficiles de manière propre et élégante.

6
Gary Rowe

Orbitz tilise de manière approfondie Lisp pour son moteur de recherche de vol.

3
Robert Harvey

Programmation fonctionnelle ne se limite pas à une langue particulière, c'est aussi un style de codage dans mon esprit.

Quand je dis style bien sûr, j'ignore l'exigence fonctionnelle "pure" de ne pas inclure d'états ..

En ce sens, je soupçonne que c'est beaucoup utilisé dans des situations quotidiennes.

Juste pour vous donner un exemple, dans un projet récent, j'ai utilisé un style de programmation "fonctionnel" pour transformer les URL en cartes de site dynamiques (structure arborescente) à la volée. Cela a été fait en décomposant le problème dans des fonctions plus petites qui ont ensuite été composées pour créer la solution finale: données In -> Fonction (F1 + F2 + FN) -> Arbre

2
Darknight

xmonad , un gestionnaire de fenêtres, est écrit à Haskell.

2
mipadi

Il est utilisé dans l'industrie par la minorité qui comprennent comment et avoir la possibilité de l'utiliser. La majorité des programmeurs ne comprendront pas la récursion ou les choses comme des fonctions de première classe et que vous pouvez traiter une fonction comme valeur et la stocker dans une liste. Je n'essaie pas de sonner élitiste, mais la réalité est l'utilisation de langues fonctionnelles est limitée car la grande majorité des programmeurs ne peuvent pas l'obtenir. Bien sûr, les gens utilisent JavaScript mais qu'ils l'utilisent de manière fonctionnelle, c'est une autre question.

Quoi qu'il en soit, voici une liste de certaines organisations/personnes utilisables/utilisées des langues fonctionnelles:

  • Paul Graham a utilisé Lisp pour créer un magasin Web qui s'est vendu à Yahoo de retour dans la journée où Yahoo était roi du filet.
  • Citrix Utilisez OCAML pour les outils de gestion pour Xen.
  • L'équipe Halo a utilisé F # en interne
  • Assez certain que beaucoup de banques utilisent F # pour le moment.
  • Ericsson utilise Erlang

Mais à la fin de la journée, la langue utilisée a peu de différence pour le résultat du projet. Le meilleur langage de programmation du monde ne vous permettra pas de la mauvaise gestion de la mise en œuvre de mauvais processus conçus et des exigences suivant des mois, puis en attendant que les lignes de documentation 1000000 converties en code travaillant et testé en 3 mois.

2
sashang

Beaucoup d'analyses financières utilisées pour être effectuées dans APL, des réponses antérieures que cela ressemble à elles sont transiguées à F # aujourd'hui.

1
TMN

graveur Igor , un programme de notation musicale, est écrit dans Lisp.

1
Joonas Pulakka
0
LennyProgrammers