Programowanie funkcjonalne w oprogramowaniu komercyjnym


12

Niedawno omawiałem programowanie funkcjonalne ze współpracownikiem. Podczas gdy oboje zgodziliśmy się, że FP ma pewne oczywiste zalety (prostszy kod, łatwiejsze rozumowanie matematyczne itp.), Oboje zastanawialiśmy się, czy jest on czy kiedykolwiek będzie używany w oprogramowaniu komercyjnym.

Wiem, że istnieje wiele projektów open source i akademickich, które są napisane funkcjonalnie (np. Widziałem to pytanie na Stack Overflow), ale zastanawiam się, czy ktoś może wymienić jakieś inne komercyjne oprogramowanie, które jest napisane, przynajmniej częściowo, w języku funkcjonalnym (i jakim języku).


3
Pierwsze trafienie w Google: haskell.org/haskellwiki/Haskell_in_industry . Co jest nie tak z tą stroną? Nie jesteś wystarczająco szczegółowy? Nie dość jasne? Za mało?
S.Lott

@ S.Lott - Nie na stronie wymiany stosów? - wiele pytań dotyczących witryn wymiany stosów zadawano gdzie indziej, ale istnieje wyraźna zasada, że ​​zadawanie ich tutaj jest również w porządku. Wątpię, czy haskell.org zniknie jutro, ale strony internetowe przychodzą i odchodzą. W każdym razie programowanie funkcjonalne nie zawsze oznacza Haskell.
Steve314,

@ Steve314: Trochę badań stworzyłoby znacznie lepsze pytanie.
S.Lott

@ S.Lott - prawdopodobnie - nie jestem pewien, czy wszystkie te odpowiedzi na liście punktowej są tak przydatne. Niewiele treści - po prostu wiele „wszystkich tych projektów nie może się mylić”. Ale o to pyta pytanie, więc ...
Steve314

Ta prezentacja może także rzucić nieco światła: scribd.com/doc/45049621/...
9000

Odpowiedzi:


8

Czy kiedykolwiek używałeś telefonu komórkowego? Erlang ma niszowy rynek telekomunikacyjny, ale jest również wykorzystywany przez Facebooka do wdrażania funkcji czatu. Zobacz najczęściej zadawane pytania dotyczące następujących firm wykorzystujących Erlang w produkcji:

  • Aptela (dostawca usług VoIP)
  • Bluetail / Alteon / Nortel (rozproszony, odporny na błędy system poczty elektronicznej, akcelerator SSL)
  • Corelatus (monitorowanie SS7).
  • CouchDB (baza danych zorientowana na dokumenty przy użyciu MapReduce)
  • dqdp.net (w języku łotewskim) (usługi sieciowe).
  • Ericsson (przełącznik bankomatu AXD301)
  • Facebook (zaplecze czatu na Facebooku)
  • Fiński Instytut Meteorologiczny (akwizycja danych i monitorowanie w czasie rzeczywistym)
  • Goldman Sachs (programy handlowe o wysokiej częstotliwości)
  • IDT corp. (Najniższe koszty systemów ekspertowych w czasie rzeczywistym)
  • IEISS. (Oprogramowanie do wymiany elektronicznych instrumentów finansowych)
  • Klarna (elektroniczne systemy płatności)
  • Lindenbaum (konferencje głosowe na dużą skalę)
  • Mobilearts (usługi GSM i UMTS)
  • Rozwiązania Netkit (systemy monitorowania i obsługi urządzeń sieciowych)
  • Proces pierwszy (Jabber Messaging)
  • Quviq (narzędzie do testowania oprogramowania)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (usługi przesyłania wiadomości i interaktywnej odpowiedzi głosowej)
  • Smarkets (giełda zakładów i rynek prognoz)
  • T-Mobile (wcześniej one2one) (zaawansowane usługi kontroli połączeń)
  • Telia (operator telekomunikacyjny)
  • Textendo (innowacyjne usługi przesyłania wiadomości tekstowych)
  • Vail Systems (interaktywne systemy odpowiedzi głosowej)
  • Wavenet (aplikacje SS7 i IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare i wiele innych szeroko korzystają ze Scali.


1
Tak, ale Scala nie jest FP, wykorzystuje tylko niektóre koncepcje FP :)
sakisk

@faif, jakie śmieci! Twoje oświadczenie wskazuje, że niewiele wiesz o FP, Scali lub obu tych elementach. Używam Scali od ponad 2 lat, a kod, który piszę w Scali, nie różni się niczym od tego, co napisałbym w Haskell. Piszę mój kod w sposób czysto funkcjonalny, z wyjątkiem granic IO, gdzie w zależności od sytuacji mogę zdecydować się na użycie monady IO.
missingfaktor

2
Mój komentarz był żartem, nie bądź niegrzeczny. Fakt, że używasz tylko części FP Scali, nie czyni z niego języka FP. Próbuje połączyć dwa paradygmaty programowania z jakiegoś powodu ...
sakisk

@faif, skąd mam wiedzieć, czy żartujesz, czy mówisz poważnie? Dalej znowu mówisz, że to nie jest FPL, dzięki czemu twoje poprzednie stwierdzenie jest bez znaczenia i nieuczciwe. Jeśli powiesz, że to nie jest FPL, ponieważ łączy dwa paradygmaty, zupełnie nie rozumiesz sedna sprawy . Uprzejmie przestań marnować mój czas, jeśli nie masz nic wartościowego do powiedzenia.
missingfaktor

2
Nie masz żadnego sensu.
missingfaktor


1
  • JaneStreet (fundusz hedgingowy) korzysta z OCaml.
  • Credit Suisse (bank) używa F #.
  • Słyszałem, że BarCap (bank) chciał użyć Haskell do opisania wypłat instrumentów pochodnych. Nie wiem, jak daleko to zaszło.

RE: Barcap - cała droga do produkcji: lexifi.com/files/resources/frankau.pdf
Ed'ka

Z pliku PDF: „Być może lekcją tutaj jest to, że nie ma srebrnej kuli. Chociaż podejście funkcjonalne znacznie uprościło nasze zadanie, nie można pominąć typowych problemów, takich jak złożoność algorytmiczna. Ponadto problemy te mogą pojawiać się w postaciach nikt nie rozpoznaje, więc programista musi nauczyć się wcześniejszych doświadczeń ”.
quant_dev
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.