Функциональное программирование в коммерческом программном обеспечении

12

Недавно я обсуждал функциональное программирование с коллегой. Хотя мы оба согласились с тем, что FP обладает некоторыми очевидными преимуществами (более простой код, более простой математический анализ и т. Д.), Мы оба задались вопросом, будет ли он использоваться или не будет использоваться в коммерческом программном обеспечении.

Я знаю, что есть ряд открытых и академических проектов, которые написаны функционально (например, я видел этот вопрос в Stack Overflow), но мне интересно, может ли кто-нибудь перечислить какое-либо другое коммерческое программное обеспечение, которое написано, по крайней мере частично, на функциональном языке (и на каком языке).

akobre01
источник
3
Первое попадание в Google: haskell.org/haskellwiki/Haskell_in_industry . Что не так с этой страницей? Недостаточно подробно? Недостаточно ясно? Не достаточно недавно?
С.Лотт
@ S.Lott - Не на сайте обмена стеками? - многие вопросы на сайтах обмена стека задавались в других местах, но есть четкая политика, что можно задавать их и здесь. Я сомневаюсь, что haskell.org исчезнет завтра, но веб-сайты приходят и уходят. В любом случае, функциональное программирование не всегда означает Haskell.
Steve314
@ Steve314: Немного исследований привело бы к гораздо лучшему вопросу.
С.Лотт
@ S.Lott - вероятно - не уверен, что все эти ответы в списке пули настолько полезны. Не так много вещества - просто много «все эти проекты не могут ошибаться». Но тогда, это вопрос, который задает вопрос, так что ...
Steve314
Эта презентация также может пролить некоторый свет: scribd.com/doc/45049621/…
9000

Ответы:

8

Вы когда-нибудь пользовались мобильным телефоном? Erlang имеет нишу на рынке телекоммуникаций, но также использует Facebook для реализации своих функций чата. См. Этот FAQ для следующих компаний, использующих Erlang в производстве:

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

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare и многие другие широко используют Scala.

missingfaktor
источник
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
  • Scala
  • Цыпленок (компилятор схемы)

О, и не забывайте читать Beating среднего

Сообщество
источник
Уже прочитал это =) отличная статья, хотя и определенно подтолкнуло меня начать больше узнавать о FP
akobre01
1
  • JaneStreet (хедж-фонд) использует OCaml.
  • Credit Suisse (банк) использует F #.
  • Я слышал, что BarCap (банк) хотел использовать Haskell для описания производных выплат. Я не знаю, как далеко это зашло.
quant_dev
источник
RE: Barcap - весь путь к производству: lexifi.com/files/resources/frankau.pdf
Ed'ka
Из PDF: «Урок здесь, возможно, заключается в том, что нет серебряной пули. Хотя функциональный подход значительно упростил нашу задачу, обычные проблемы, такие как алгоритмическая сложность, не могут быть оставлены в стороне. Кроме того, эти проблемы могут возникать в формах никто не признает, так что разработчик должен переучиться предыдущий опыт ".
quant_dev