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).

akobre01
źródło
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)
Julia
źródło
4

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

missingfaktor
źródło
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

W StackOverflow jest już kilka dyskusji na ten temat: czy gotowa jest produkcja Clojure?

Przykłady z mojego otoczenia zawierają:

  • Clojure
  • Scala
  • Kurczak (kompilator schematów)

Aha, i nie zapomnij przeczytać Bicia średniej

Społeczność
źródło
Już to przeczytałem =) świetny artykuł i zdecydowanie
zachęciłem
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.
quant_dev
źródł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