Programmation fonctionnelle dans les logiciels commerciaux


12

Je discutais récemment de la programmation fonctionnelle avec un collègue. Alors que nous étions tous les deux d'accord pour dire que la FP a des avantages évidents (code plus simple, plus facile à raisonner mathématiquement, etc.), nous nous sommes tous deux demandé si elle est ou ne sera jamais utilisée dans un logiciel commercial.

Je sais qu'il existe un certain nombre de projets universitaires et open source qui sont écrits de manière fonctionnelle (par exemple, j'ai vu cette question sur Stack Overflow) mais je me demande si quelqu'un peut lister d'autres logiciels commerciaux qui sont écrits, au moins en partie, dans une langue fonctionnelle (et quelle langue).


3
Première apparition sur Google: haskell.org/haskellwiki/Haskell_in_industry . Quel est le problème avec cette page? Pas assez détaillé? Pas assez clair? Pas assez récent?
S.Lott

@ S.Lott - Pas sur un site Stack Exchange? - de nombreuses questions sur les sites d'échange de piles ont été posées ailleurs, mais il existe une politique explicite selon laquelle il est OK de les poser ici également. Je doute que haskell.org disparaisse demain, mais les sites Web vont et viennent. Dans tous les cas, la programmation fonctionnelle ne signifie pas toujours Haskell.
Steve314

@ Steve314: Un peu de recherche aurait créé une bien meilleure question.
S.Lott

@ S.Lott - probablement - pas sûr que toutes ces réponses à la liste à puces soient si utiles. Pas beaucoup de substance - juste beaucoup de "tous ces projets ne peuvent pas se tromper". Mais alors, c'est ce que la question demande, alors ...
Steve314

Cette présentation pourrait également faire la lumière: scribd.com/doc/45049621/…
9000,

Réponses:


8

Avez-vous déjà utilisé un téléphone portable? Erlang a un marché de niche dans les télécommunications, mais il est également utilisé par Facebook pour implémenter sa fonctionnalité de chat. Consultez cette FAQ pour les sociétés suivantes utilisant Erlang en production:

  • Aptela (fournisseur de services VoIP)
  • Bluetail / Alteon / Nortel (système de messagerie distribué et tolérant aux pannes, accélérateur SSL)
  • Corelatus (surveillance SS7).
  • CouchDB (base de données orientée document utilisant MapReduce)
  • dqdp.net (en letton) (services Web).
  • Ericsson (commutateur ATM AXD301)
  • Facebook (backend de chat Facebook)
  • Institut météorologique finlandais (acquisition de données et surveillance en temps réel)
  • Goldman Sachs (programmes de trading à haute fréquence)
  • IDT corp. (Systèmes experts de routage à moindre coût en temps réel)
  • IEISS. (Logiciel d'échange d'instruments financiers électroniques)
  • Klarna (Systèmes de paiement électronique)
  • Lindenbaum (conférence vocale à grande échelle)
  • Mobilearts (services GSM et UMTS)
  • Solutions Netkit (systèmes de surveillance des équipements réseau et de soutien aux opérations)
  • Processus un (messagerie Jabber)
  • Quviq (outil de test logiciel)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Partenaire Schlund + (services de messagerie et de réponse vocale interactive)
  • Smarkets (Marché des paris et marché de prédiction)
  • T-Mobile (auparavant one2one) (services avancés de contrôle d'appel)
  • Telia (un opérateur de télécommunications)
  • Textendo (services de messagerie texte innovants)
  • Vail Systems (systèmes interactifs de réponse vocale)
  • Wavenet (applications SS7 et IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare et bien d'autres utilisent largement Scala.


1
Oui, mais Scala n'est pas FP, il utilise juste quelques concepts FP :)
sakisk

@faif, quelles ordures! Votre déclaration indique que vous en savez peu sur la PF, la Scala ou les deux. J'utilise Scala depuis plus de 2 ans maintenant, et le code que j'écris dans Scala ne ressemble pas beaucoup à ce que j'écrirais dans Haskell. J'écris mon code de manière purement fonctionnelle, sauf aux limites des E / S, où selon la situation, je peux ou non choisir d'utiliser la monade IO.
missingfaktor

2
Mon commentaire était une blague, ne soyez pas impoli. Le fait que vous n'utilisiez que les parties FP de Scala n'en fait pas un langage FP. Il essaie de mélanger 2 paradigmes de programmation pour une raison ...
sakisk

@faif, comment suis-je censé savoir si vous plaisantez ou êtes sérieux? Plus loin, vous continuez à dire que ce n'est pas un FPL, ce qui rend votre déclaration précédente vide de sens et malhonnête. Si vous dites que ce n'est pas un FPL parce qu'il mélange les deux paradigmes, vous avez complètement raté le point . Veuillez cesser de perdre mon temps si vous n'avez rien de valable à dire.
missingfaktor

2
Vous n'avez aucun sens.
missingfaktor

1

Il y a déjà plusieurs discussions sur ce sujet sur StackOverflow: voir Clojure production ready?

Des exemples de mon entourage contiennent:

  • Clojure
  • Scala
  • Poulet (un compilateur de schémas)

Oh, et n'oubliez pas de lire Battre la moyenne


Je l'ai déjà lu =) un excellent article et m'a définitivement poussé à commencer à en savoir plus sur FP
akobre01

1
  • JaneStreet (un hedge fund) utilise OCaml.
  • Le Credit Suisse (une banque) utilise F #.
  • J'ai entendu dire que BarCap (une banque) voulait utiliser Haskell pour décrire les gains dérivés. Je ne sais pas jusqu'où cela est allé.

RE: Barcap - jusqu'à la production: lexifi.com/files/resources/frankau.pdf
Ed'ka

Extrait du PDF: "La leçon ici, peut-être, est qu'il n'y a pas de solution miracle. Bien qu'une approche fonctionnelle ait grandement simplifié notre tâche, des problèmes courants tels que la complexité algorithmique ne peuvent pas être mis de côté. En outre, ces problèmes peuvent surgir sous des formes on ne reconnaît pas, de sorte que le développeur doit réapprendre les expériences précédentes. "
quant_dev
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.