Функціональне програмування в комерційному програмному забезпеченні


12

Я нещодавно з колегою обговорював функціональне програмування. Хоча ми вдвох погодилися з тим, що FP має деякі очевидні переваги (простіший код, простіше міркувати математично тощо), ми обидва поцікавилися, чи він використовується, чи коли-небудь буде використовуватися в комерційному програмному забезпеченні.

Я знаю, що існує ряд проектів з відкритим кодом та академічними написаннями, які написані функціонально (наприклад, я бачив це запитання у "Переповнення стека"), але мені цікаво, чи може хтось перелічити якесь інше комерційне програмне забезпечення, яке написано, принаймні частково, у функціональній мові (і якою мовою).


3
Перший хіт на Google: haskell.org/haskellwiki/Haskell_in_industry . Що не так з цією сторінкою? Недостатньо детально? Не досить зрозуміло? Недавно?
С.Лотт

@ S.Lott - Не на сайті Stack Exchange? - багато питань на сайтах обміну стеками були задані в інших місцях, але є чітка політика, що нормально задавати їх і тут. Я сумніваюсь, що haskell.org зникне завтра, але веб-сайти все-таки приходять і залишаються У будь-якому випадку, функціональне програмування не завжди означає Haskell.
Стів314

@ Steve314: Трохи дослідження створили б набагато краще питання.
С.Лотт

@ S.Lott - напевно - не впевнений, що всі ці відповіді зі списку кульок корисні. Немало суті - просто багато "всі ці проекти не можуть помилитися". Але тоді, ось що запитує, тож ...
Стів314

Ця презентація також може пролити трохи світла: scribd.com/doc/45049621/…
9000

Відповіді:


8

Коли-небудь користувався мобільним телефоном? Ерланг має нішу на ринку телекомунікацій, але його також використовує Facebook для реалізації своєї функції чату. Дивіться це поширені запитання для таких компаній, які використовують Erlang у виробництві:

  • Aptela (постачальник послуг VoIP)
  • Bluetail / Alteon / Nortel (розповсюджена, несправна система електронної пошти, прискорювач SSL)
  • Corelatus (моніторинг SS7).
  • CouchDB (база даних, орієнтована на документи, використовуючи MapReduce)
  • dqdp.net (латиською мовою) (веб-сервіси).
  • Ericsson (перемикач банкоматів AXD301)
  • Facebook (чат у Facebook чат)
  • Фінський метеорологічний інститут (збір даних та моніторинг у режимі реального часу)
  • Goldman Sachs (високочастотні торгові програми)
  • IDT corp. (Експертні системи маршрутизації в режимі реального часу)
  • IEISS. (Програмне забезпечення для електронного обміну фінансовими інструментами)
  • Klarna (Електронні платіжні системи)
  • Lindenbaum (широкомасштабна голосова конференція)
  • Mobilearts (послуги GSM та UMTS)
  • Netkit Solutions (Системи моніторингу мережевого обладнання та експлуатації)
  • Процес-один (обмін повідомленнями Jabber)
  • Quviq (інструмент для тестування програмного забезпечення)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (послуги обміну повідомленнями та інтерактивного голосового реагування)
  • Smarkets (ринок бірж та прогнозування)
  • T-Mobile (раніше one2one) (розширені послуги з управління дзвінками)
  • Телія (оператор телекомунікацій)
  • Textendo (інноваційні послуги текстових повідомлень)
  • Vail Systems (Інтерактивні системи голосового реагування)
  • Wavenet (додатки SS7 та IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare та багато інших широко використовують Scala.


1
Так, але Scala не FP, вона просто використовує деякі концепції FP :)
sakisk

@faif, яке сміття! Ваша заява свідчить про те, що ви мало знаєте про FP або Scala або про обох. Я використовую Scala вже 2+ років, і код, який я пишу в Scala, не сильно відрізняється від того, що я написав би в Haskell. Я пишу свій код чисто функціонально, за винятком меж IO, де залежно від ситуації я можу або не захочу використовувати монаду IO.
зниклий фактор

2
Мій коментар був жартом, не будьте грубі. Той факт, що ви використовуєте лише частини FP Scala, не робить його мовою FP. Він намагається поєднати 2 парадигми програмування з причини ...
sakisk

@faif, як я повинен знати, чи ти жартуєш чи серйозно? Далі ви знову продовжуєте говорити, що це не FPL, роблячи ваше попереднє твердження безглуздим і нечесним. Якщо ви скажете, що це не FPL, оскільки він поєднує дві парадигми, ви повністю пропустили суть . Будь ласка, перестаньте витрачати мій час, якщо у вас немає нічого корисного сказати.
зниклий фактор

2
Вам взагалі немає сенсу.
зниклий фактор

1

На цю статтю вже існує декілька дискусій на StackOverflow: дивіться, чи готове виробництво Clojure?

Приклади з мого оточення містять:

  • Clojure
  • Скала
  • Курка (компілятор схем)

О, і не забудьте прочитати Побиття середнього


Уже прочитав =) чудова стаття, хоча і, безумовно, підштовхнула мене до початку дізнатися більше про FP
akobre01

1
  • JaneStreet (хедж-фонд) використовує OCaml.
  • Credit Suisse (банк) використовує F #.
  • Я чув, що BarCap (банк) хотів використовувати Haskell для опису похідних виплат. Я не знаю, як далеко це пішло.

RE: Barcap - аж до виробництва: lexifi.com/files/resources/frankau.pdf
Ed'ka

З PDF: "Можливо, урок полягає в тому, що немає срібної кулі. Хоча функціональний підхід значно спростив наше завдання, загальноприйняті питання, такі як алгоритмічна складність, не можна відміняти. Крім того, ці питання можуть виникати у формах не визнає, так що розробник повинен переучити попередній досвід ".
Quant_dev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.