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

  • 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

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)

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

  • 1
    Yes, but Scala is not FP, it just uses some FP concepts :) – sakisk 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
  • 2
    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... – sakisk Mar 31 '12 at 13:16
  • 2
    You are making no sense at all. – missingfaktor Mar 31 '12 at 20:27
  • 1
    @faif: A multi-paradigm language supports multiple paradigms. E.g., Scala supports OOP and FP. Therefore, Scala is, among other things, a functional programming language. (Since it is multi-paradigm, it would be incorrect to say that it is purely functional.) I would apply your statement (it just uses some FP concepts) to C# or C++11, but not to Scala, F#, or Ocaml. – Giorgio Aug 23 '12 at 22:35

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

  • Already read it =) great article though and definitely pushed me to start learning more about FP – akobre01 May 13 '11 at 16:01
  • 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.
  • 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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