商业软件中的功能编程


12

我最近正在和一位同事讨论函数式编程。尽管我们两个人都认为FP具有一些明显的好处(简单的代码,更容易进行数学推理等),但我们都想知道FP软件是否会或将来会在商业软件中使用它。

我知道有许多功能性的开放源代码和学术项目(例如,我在Stack Overflow上已经看到了这个问题),但我想知道是否有人可以列出至少一些编写的其他商业软件,以功能语言(以及哪种语言)。


3
首次在Google上投放haskell.org/haskellwiki/Haskell_in_industry。此页面有什么问题?还不够详细?还不够清楚?最近不够?
S.Lott

@ S.Lott-不在Stack Exchange网站上吗?-堆栈交换站点上的许多问题已在其他地方提出,但有一个明确的政策,也可以在此处询问它们。我怀疑haskell.org明天是否会消失,但是网站确实来来往往。无论如何,函数式编程并不总是意味着Haskell。
Steve314

@ Steve314:一点点研究就会提出一个更好的问题。
S.Lott

@ S.Lott-可能-不确定所有这些项目符号列表的答案是否有用。内容不多-只是很多“所有这些项目都不会错”。但是,那就是这个问题所要的,所以……
Steve314 2011年

:此演示文稿也可能会提供一些线索scribd.com/doc/45049621/...
9000

Answers:


8

曾经用过手机吗?Erlang在电信领域有一个利基市场,但Facebook也使用它来实现其聊天功能。有关以下在生产中使用Erlang的公司的信息,请参阅此常见问题解答

  • Aptela(VoIP服务提供商)
  • Bluetail / Alteon / Nortel(分布式,容错电子邮件系统,SSL加速器)
  • Corelatus(SS7监视)。
  • CouchDB(使用MapReduce的面向文档的数据库)
  • dqdp.net(拉脱维亚语)(网络服务)。
  • 爱立信(AXD301 ATM交换机)
  • Facebook(Facebook聊天后端)
  • 芬兰气象学院(数据采集和实时监控)
  • 高盛(高频交易程序)
  • IDT公司 (实时成本最低的路由专家系统)
  • IEISS。(电子金融工具交换软件)
  • Klarna(电子支付系统)
  • Lindenbaum(大型语音会议)
  • Mobilearts(GSM和UMTS服务)
  • Netkit解决方案(网络设备监控和运营支持系统)
  • 进程一(Jabber消息传递)
  • Quviq(软件测试工具)
  • RabbitMQ(AMQP企业消息传递)
  • Schlund +合作伙伴(消息和交互式语音响应服务)
  • 市场(投注交易和预测市场)
  • T-Mobile(以前为one2one)(高级呼叫控制服务)
  • Telia(电信运营商)
  • Textendo(创新的短信服务)
  • Vail系统(交互式语音响应系统)
  • Wavenet(SS7和IVR应用程序)

4

LinkedIn,Twitter,eBay,Sony Animation Studio,Gaurdian,FourSquare等许多其他公司都广泛使用Scala。


1
是的,但是Scala不是FP,它仅使用一些FP概念:)
sakisk 2012年

@faif,什么垃圾!您的陈述表明您对FP或Scala或两者都不了解。我已经使用Scala两年多了,在Scala中编写的代码与在Haskell中编写的代码看起来并没有太大不同。我以纯功能性的方式编写代码,但在IO边界除外,根据情况,我可能会或可能不会选择使用IO monad。
missingfaktor 2012年

2
我的评论是个玩笑,不要粗鲁。您仅使用Scala的FP部分这一事实并不能使其成为FP语言。由于某种原因,它试图融合2种编程范例...
sakisk 2012年

@faif,我怎么知道你是在开玩笑还是认真?此外,您再次继续说这不是FPL,这使您之前的声明毫无意义且不诚实。如果您说它不是FPL,因为它融合了这两种范式,那么您就完全错了。如果您无话可说,请不要浪费我的时间。
missingfaktor 2012年

2
你根本没有任何意义。
missingfaktor 2012年


1
  • JaneStreet(对冲基金)使用OCaml。
  • 瑞士信贷(一家银行)使用F#。
  • 我听说BarCap(一家银行)想用Haskell来描述衍生收益。我不知道这走了多远。

RE:Barcap-一直到生产:lexifi.com/files/resources/frankau.pdf
Ed'ka 2011年

在PDF中:“也许这里的教训是没有灵丹妙药。虽然功能方法大大简化了我们的任务,但不能忽略诸如算法复杂性之类的普通问题。此外,这些问题可能会以形式出现人们没有意识到,因此开发人员必须重新学习以前的经验。”
quant_dev
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.