Programmazione funzionale in software commerciale


12

Di recente ho discusso della programmazione funzionale con un collega. Mentre entrambi siamo d'accordo sul fatto che FP abbia alcuni ovvi benefici (codice più semplice, più facile da ragionare matematicamente, ecc.), Ci siamo entrambi chiesti se sia o non sarà mai usato nel software commerciale.

So che ci sono un certo numero di progetti accademici e open source scritti in modo funzionale (ad es. Ho visto questa domanda su Stack Overflow) ma mi chiedo se qualcuno può elencare qualche altro software commerciale che è scritto, almeno in parte, in un linguaggio funzionale (e quale lingua).


3
Primo successo su Google: haskell.org/haskellwiki/Haskell_in_industry . Cosa c'è che non va in questa pagina? Non abbastanza dettagliato? Non abbastanza chiaro? Non abbastanza recente?
S.Lott

@ S.Lott - Non sei su un sito Stack Stack? - molte domande sui siti di scambio di stack sono state poste altrove, ma esiste una politica esplicita che è OK porre anche qui. Dubito che haskell.org scomparirà domani, ma i siti web vanno e vengono. In ogni caso, programmazione funzionale non significa sempre Haskell.
Steve314,

@ Steve314: un po 'di ricerca avrebbe creato una domanda molto migliore.
S.Lott

@ S.Lott - probabilmente - non sono sicuro che tutte queste risposte all'elenco dei proiettili siano così utili. Non molta sostanza - solo un sacco di "tutti questi progetti non possono essere sbagliati". Ma poi, questo è ciò che la domanda chiede, quindi ...
Steve314,

Questa presentazione potrebbe anche far luce: scribd.com/doc/45049621/…
9000,

Risposte:


8

Hai mai usato un telefono cellulare? Erlang ha un mercato di nicchia nelle telecomunicazioni, ma è anche usato da Facebook per implementare la sua funzionalità di chat. Vedi queste FAQ per le seguenti aziende che utilizzano Erlang nella produzione:

  • Aptela (fornitore di servizi VoIP)
  • Bluetail / Alteon / Nortel (sistema di posta elettronica distribuito, tollerante ai guasti, acceleratore SSL)
  • Corelatus (monitoraggio SS7).
  • CouchDB (database orientato ai documenti usando MapReduce)
  • dqdp.net (in lettone) (servizi Web).
  • Ericsson (interruttore ATM AXD301)
  • Facebook (backend della chat di Facebook)
  • Istituto meteorologico finlandese (acquisizione dati e monitoraggio in tempo reale)
  • Goldman Sachs (programmi di trading ad alta frequenza)
  • IDT corp. (Sistemi esperti di routing a costo minimo in tempo reale)
  • IEISS. (Software di scambio di strumenti finanziari elettronici)
  • Klarna (sistemi di pagamento elettronico)
  • Lindenbaum (conferenza vocale su larga scala)
  • Mobilearts (servizi GSM e UMTS)
  • Soluzioni Netkit (sistemi di monitoraggio delle apparecchiature di rete e sistemi di supporto alle operazioni)
  • Process-one (Jabber Messaging)
  • Quviq (Software Test Tool)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (servizi di messaggistica e risposta vocale interattiva)
  • Smarkets (scambio di scommesse e mercato delle previsioni)
  • T-Mobile (precedentemente one2one) (servizi avanzati di controllo delle chiamate)
  • Telia (un operatore di telecomunicazioni)
  • Textendo (servizi di messaggistica di testo innovativi)
  • Vail Systems (sistemi interattivi di risposta vocale)
  • Wavenet (applicazioni SS7 e IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare e molti altri fanno un ampio uso di Scala.


1
Sì, ma Scala non è FP, utilizza solo alcuni concetti FP :)
sakisk

@faif, che spazzatura! La tua affermazione indica che sai poco su FP o Scala o entrambi. Uso Scala da più di 2 anni ormai, e il codice che scrivo in Scala non sembra molto diverso da quello che scriverei in Haskell. Scrivo il mio codice in puro modo funzionale, tranne ai limiti di IO, dove a seconda della situazione, posso o meno scegliere di usare IO monade.
missingfaktor

2
Il mio commento è stato uno scherzo, non essere scortese. Il fatto che tu stia utilizzando solo le parti FP di Scala non lo rende un linguaggio FP. Sta cercando di fondere 2 paradigmi di programmazione per un motivo ...
sakisk

@faif, come faccio a sapere se stai scherzando o se fai sul serio? Inoltre continui a dire che non è un FPL, rendendo la tua affermazione precedente insignificante e disonesta. Se dici che non è un FPL perché mescola i due paradigmi, hai perso del tutto il punto . Smetti gentilmente di perdere tempo se non hai nulla di valore da dire.
missingfaktor

2
Non hai affatto senso.
missingfaktor

1

Esistono già diverse discussioni su questo argomento su StackOverflow: vedi la produzione Clojure pronta?

Esempi dai miei dintorni contiene:

  • Clojure
  • Scala
  • Chicken (un compilatore di schemi)

Oh, e non dimenticare di leggere Battere la media


Già letto =) ottimo articolo però e sicuramente mi ha spinto a iniziare a saperne di più su FP
akobre01

1
  • JaneStreet (un hedge fund) utilizza OCaml.
  • Il Credit Suisse (una banca) utilizza F #.
  • Ho sentito che BarCap (una banca) voleva usare Haskell per descrivere i guadagni derivati. Non so fino a che punto sia andato.

RE: Barcap - fino alla produzione: lexifi.com/files/resources/frankau.pdf
Ed'ka

Dal PDF: "La lezione qui, forse, è che non esiste un proiettile d'argento. Mentre un approccio funzionale ha notevolmente semplificato il nostro compito, problemi comuni come la complessità algoritmica non possono essere accantonati. Inoltre, questi problemi possono sorgere in forme non si riconosce, quindi lo sviluppatore deve riapprendere le esperienze precedenti. "
quant_dev
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.