Funktionale Programmierung in kommerzieller Software


12

Ich habe kürzlich mit einem Kollegen über funktionale Programmierung gesprochen. Während wir uns beide einig waren, dass FP einige offensichtliche Vorteile hat (einfacherer Code, einfacheres mathematisches Denken usw.), fragten wir uns beide, ob es in kommerzieller Software verwendet wird oder nicht.

Ich weiß, dass es eine Reihe von Open Source- und akademischen Projekten gibt, die funktional geschrieben sind (z. B. habe ich diese Frage zu Stack Overflow gesehen), aber ich frage mich, ob jemand eine andere kommerzielle Software auflisten kann, die zumindest teilweise geschrieben wurde. in einer funktionalen Sprache (und in welcher Sprache).


3
Erster Treffer bei Google: haskell.org/haskellwiki/Haskell_in_industry . Was ist los mit dieser Seite? Nicht detailliert genug? Nicht klar genug? Nicht aktuell genug?
S.Lott,

@ S.Lott - Nicht auf einer Stack Exchange-Site? - Viele Fragen zu Stack-Exchange-Sites wurden an anderer Stelle gestellt, aber es gibt eine ausdrückliche Richtlinie, die besagt, dass es in Ordnung ist, sie auch hier zu stellen. Ich bezweifle, dass haskell.org morgen verschwinden wird, aber Websites kommen und gehen. In jedem Fall bedeutet funktionale Programmierung nicht immer Haskell.
Steve314

@ Steve314: Ein bisschen Recherche hätte eine viel bessere Frage ergeben.
S.Lott

@ S.Lott - wahrscheinlich - nicht sicher, ob all diese Antworten auf die Aufzählungsliste so nützlich sind. Nicht viel Substanz - nur viele "all diese Projekte können nicht falsch sein". Aber dann ist es das, wonach die Frage fragt, also ...
Steve314

Diese Präsentation könnte auch etwas Licht ins Dunkel bringen: scribd.com/doc/45049621/…
9000

Antworten:


8

Schon mal ein Handy benutzt? Erlang hat einen Nischenmarkt in der Telekommunikation, wird aber auch von Facebook verwendet, um seine Chat-Funktionalität zu implementieren. Lesen Sie diese FAQ für die folgenden Unternehmen, die Erlang in der Produktion einsetzen:

  • Aptela (VoIP-Dienstanbieter)
  • Bluetail / Alteon / Nortel (verteiltes, fehlertolerantes E-Mail-System, SSL-Beschleuniger)
  • Corelatus (SS7-Überwachung).
  • CouchDB (dokumentenorientierte Datenbank mit MapReduce)
  • dqdp.net (auf Lettisch) (Web Services).
  • Ericsson (AXD301 ATM-Schalter)
  • Facebook (Facebook-Chat-Backend)
  • Finnisches Meteorologisches Institut (Datenerfassung und Echtzeitüberwachung)
  • Goldman Sachs (Hochfrequenzhandelsprogramme)
  • IDT corp. (Echtzeit-Routing-Expertensysteme mit den niedrigsten Kosten)
  • IEISS. (Software für den elektronischen Austausch von Finanzinstrumenten)
  • Klarna (Elektronische Zahlungssysteme)
  • Lindenbaum (Große Sprachkonferenz)
  • Mobilearts (GSM- und UMTS-Dienste)
  • Netkit-Lösungen (Überwachungs- und Betriebsunterstützungssysteme für Netzwerkgeräte)
  • Process-One (Jabber Messaging)
  • Quviq (Software Test Tool)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (Messaging und Interactive Voice Response Services)
  • Smarkets (Wettbörse und Tippmarkt)
  • T-Mobile (vormals one2one) (erweiterte Anrufsteuerungsdienste)
  • Telia (ein Telekommunikationsanbieter)
  • Textendo (Innovative SMS-Dienste)
  • Vail Systems (Interaktive Sprachantwortsysteme)
  • Wavenet (SS7- und IVR-Anwendungen)

4

LinkedIn, Twitter, eBay, Sony Animationsstudio, Gaurdian, FourSquare und viele andere nutzen Scala in großem Umfang.


1
Ja, aber Scala ist kein FP, es werden nur einige FP-Konzepte verwendet :)
sakisk

@faif, was für ein Müll! Ihre Aussage zeigt, dass Sie wenig über FP oder Scala oder beides wissen. Ich benutze Scala seit über 2 Jahren und der Code, den ich in Scala schreibe, unterscheidet sich nicht wesentlich von dem, was ich in Haskell geschrieben habe. Ich schreibe meinen Code auf rein funktionale Weise, außer an den E / A-Grenzen, wo ich je nach Situation die E / A-Monade verwenden kann oder nicht.
Fehlender Faktor

2
Mein Kommentar war ein Witz, sei nicht unhöflich. Die Tatsache, dass Sie nur die FP-Teile von Scala verwenden, macht es nicht zu einer FP-Sprache. Es wird versucht, aus einem bestimmten Grund zwei Programmierparadigmen miteinander zu verschmelzen ...
sakisk

@faif, wie soll ich wissen, ob du Witze machst oder es ernst meinst? Des Weiteren sagen Sie erneut, dass es sich nicht um eine FPL handelt, was Ihre vorherige Aussage bedeutungslos und unehrlich macht. Wenn Sie sagen, es ist keine FPL, weil sie die beiden Paradigmen miteinander verbindet, haben Sie den Punkt völlig verfehlt . Verschwenden Sie bitte keine Zeit, wenn Sie nichts Wertvolles zu sagen haben.
Fehlender Faktor

2
Sie machen überhaupt keinen Sinn.
Fehlender Faktor

1

Zu diesem Thema gibt es auf StackOverflow bereits mehrere Diskussionen: Siehe Clojure-Produktion fertig?

Beispiele aus meiner Umgebung enthalten:

  • Clojure
  • Scala
  • Huhn (ein Schema-Compiler)

Oh, und vergessen Sie nicht, Beating the Average zu lesen


Ich habe es aber schon gelesen =), ein großartiger Artikel und mich definitiv dazu gedrängt, mehr über FP zu lernen
akobre01

1
  • JaneStreet (ein Hedgefonds) verwendet OCaml.
  • Die Credit Suisse (eine Bank) verwendet F #.
  • Ich habe gehört, dass BarCap (eine Bank) Haskell verwenden wollte, um derivative Auszahlungen zu beschreiben. Ich weiß nicht, wie weit das gegangen ist.

RE: Barcap - bis zur Produktion: lexifi.com/files/resources/frankau.pdf
Ed'ka

Aus dem PDF: "Die Lehre hier ist vielleicht, dass es kein Patentrezept gibt. Während ein funktionaler Ansatz unsere Aufgabe stark vereinfacht hat, können alltägliche Probleme wie algorithmische Komplexität nicht außer Acht gelassen werden. Darüber hinaus können diese Probleme in Formularen auftreten erkennt man nicht, so dass der Entwickler frühere Erfahrungen neu lernen muss. "
quant_dev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.