Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was recently discussing functional programming with a co-worker. While the two of us both agreed that FP has some obvious benefits (simpler code, easier to reason about mathematically, etc.), we both wondered whether or not it is or will ever be used in commerical software.

I know there are a number of open source and academic projects that are written functionally (e.g. I've seen this question on Stack Overflow) but I'm wondering if anyone can list some other commercial software that is written, at least in part, in a functional language (and what language).

share|improve this question

migrated from stackoverflow.com May 13 '11 at 15:54

This question came from our site for professional and enthusiast programmers.

3  
First hit on Google: haskell.org/haskellwiki/Haskell_in_industry. What's wrong with this page? Not detailed enough? Not clear enough? Not recent enough? –  S.Lott May 13 '11 at 16:31
    
@S.Lott - Not on a Stack Exchange site? - many questions on stack exchange sites have been asked elsewhere, but there's an explicit policy that it's OK to ask them here too. I doubt haskell.org will disappear tomorrow, but web sites do come and go. In any case, functional programming doesn't always mean Haskell. –  Steve314 May 13 '11 at 22:38
    
@Steve314: A little bit of research would have created a much better question. –  S.Lott May 13 '11 at 22:40
    
@S.Lott - probably - not sure all these bullet list answers are that useful. Not much substance - just lots of "all these projects can't be wrong". But then, that's what the question asks for, so... –  Steve314 May 13 '11 at 22:45
    
This presentation might also shed some light: scribd.com/doc/45049621/… –  9000 May 13 '11 at 23:43
add comment

4 Answers

Ever used a cell phone? Erlang has a niche market in telecommunications, but its also used by Facebook to implements its chat functionality. See this FAQ for the following companies using Erlang in production:

  • Aptela (VoIP Service Provider)
  • Bluetail/Alteon/Nortel (distributed, fault tolerant email system, SSL accelerator)
  • Corelatus (SS7 monitoring).
  • CouchDB (document-oriented database using MapReduce)
  • dqdp.net (in Latvian) (Web Services).
  • Ericsson (AXD301 ATM switch)
  • Facebook (Facebook chat backend)
  • Finnish Meteorological Institute (Data acquisition and real-time monitoring)
  • Goldman Sachs (high-frequency trading programs)
  • IDT corp. (Real-time least-cost routing expert systems)
  • IEISS. (Electronic financial instrument exchange software)
  • Klarna (Electronic payment systems)
  • Lindenbaum (Large scale voice conferencing)
  • Mobilearts (GSM and UMTS services)
  • Netkit Solutions (Network Equipment Monitoring and Operations Support Systems)
  • Process-one (Jabber Messaging)
  • Quviq (Software Test Tool)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (Messaging and Interactive Voice Response services)
  • Smarkets (Betting exchange and prediction market)
  • T-Mobile (previously one2one) (advanced call control services)
  • Telia (a telecomms operator)
  • Textendo (Innovative text messaging services)
  • Vail Systems (Interactive Voice Response systems)
  • Wavenet (SS7 and IVR applications)
share|improve this answer
add comment

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare, and many others make an extensive use of Scala.

share|improve this answer
    
Yes, but Scala is not FP, it just uses some FP concepts :) –  faif Mar 31 '12 at 11:18
    
@faif, what rubbish! Your statement indicates you know little about FP or Scala or both. I have been using Scala for 2+ years now, and the code I write in Scala does not look much different from what I'd write in Haskell. I write my code in a pure functional manner, except at the IO boundaries, where depending on the situation, I may or may not choose to use IO monad. –  missingfaktor Mar 31 '12 at 12:46
1  
My comment was a joke, don't be rude. The fact that you are using only the FP parts of Scala doesn't make it an FP language. It's trying to blend 2 programming paradigms for a reason... –  faif Mar 31 '12 at 13:16
    
@faif, how am I supposed to know if you are joking or being serious? Further you again go on to say it's not an FPL, making your previous statement meaningless and dishonest. If you say it's not an FPL because it blends the two paradigms, you have entirely missed the point. Kindly stop wasting my time if you have nothing of value to say. –  missingfaktor Mar 31 '12 at 16:56
1  
You are making no sense at all. –  missingfaktor Mar 31 '12 at 20:27
show 10 more comments

There are already several discussions about this topic on StackOverflow: see Clojure production ready?

Examples from my surrounding contains:

  • Clojure
  • Scala
  • Chicken (a Scheme Compiler)

Oh, and don't forget to read Beating the average

share|improve this answer
    
Already read it =) great article though and definitely pushed me to start learning more about FP –  akobre01 May 13 '11 at 16:01
add comment
  • JaneStreet (a hedge fund) uses OCaml.
  • Credit Suisse (a bank) uses F#.
  • I've heard that BarCap (a bank) wanted to use Haskell to describe derivative payoffs. I don't know how far this went.
share|improve this answer
    
RE: Barcap - all the way to production: lexifi.com/files/resources/frankau.pdf –  Ed'ka May 13 '11 at 23:04
    
From the PDF: "The lesson here, perhaps, is that there is no silver bullet. While a functional approach greatly simplied our task, commonplace issues such as algorithmic com- plexity cannot be set aside. Furthermore, these issues may crop up in forms one does not recognise, so that the developer must relearn previous experiences." –  quant_dev May 14 '11 at 10:49
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.