13

As part of a continuing quest for knowledge, I'm spending some time this week learning the basics of F# as an introduction to functional programming. I think I am understanding the construction of software under this model and some of the proposed benefits, but am still a little fuzzy on the real-world use cases.

I was hoping that a F# success stories, or at least a few applications that I'd be familiar with might make it a little clearer about when F# (or any functional programming language) would be appropriate for a project.

So back to the question, what are some well known applications that use F# or a similar functional programming language?

BTW: I am also open to hearing about some lesser-known apps, but if you mention one, please give the basics of what the app is about and why the language used was the appropriate choice.

3
  • I'm curious about this well. I thought F# was a mathematics oriented MS Research Dept language. It'd be interesting to see if there are any programs out there using it that are recognizable. I doubt that there are any 'well known' programs that are entirely F# though. Commented Nov 18, 2010 at 15:59
  • 1
    This question appears to be off-topic because it is a poll based question.
    – user53019
    Commented Jul 15, 2013 at 16:00
  • jet.com, ecommerce startup initially written in F# was bought by Walmart couple of years ago for $3+ billions
    – KolA
    Commented Aug 21, 2019 at 9:22

5 Answers 5

9
  • The entire F# system (compiler, libraries and tools)
  • IronJS (already mentioned)
  • The XBox Live TrueSkill algorithm, as well as the whole Achievements system, the ranking system and the matchmaking system surrounding it

I guess the main reason why there are no "well-known" applications written in F#, is because it takes years, even decades to become "well-known" and F# simply isn't that old yet.

However, the overwhelming majority of applications are not "well-known". There is only one PowerPoint, but there are literally millions of hand-written custom little one-off in-house payroll apps.

And F# is certainly used in-house in many financial companies, doing scientific and numeric computing in, say, biotech or greentech, doing statistics god knows where and so on. These applications aren't well-known, either because they simply aren't "sexy" or often because the companies consider F# their secret weapon which gives them a competitive edge. (OCaml, Smalltalk and APL fill similar roles. Many financial companies use APL, for example, but they don't widely publicize it. Indeed, oftentimes the APL users aren't even programmers, and thus wouldn't even know where and how to publicize it even if they wanted to.)

2
  • 2
    According to Wikipedia, F# is 8 years old. PHP, Java, C# were all being used in well known applications long before they hit that age. C#, for example, came out in 2001. And its pretty clear F# is more than a year behind C# in terms of usage. Commented Nov 22, 2010 at 5:32
  • 5
    @GrandmasterB: That might not exactly be a fair assessment. F# was just an experimental project until it was productized in VS2010, although it was viable in 2008. So I wouldn't exactly call it 8 years old. Commented Nov 28, 2010 at 18:53
3

There is Tabbles. A file manager and organizer, with a lot of features. It provides a tagging system that you can even share with others. It's a commercial product.

1

I've wondered the same thing for awhile know. I really like F# but haven't seen anything in the realm of a commercial app. What I have heard (and quite frequently) is that F# has been used a lot in the financial realm.

What decent web-frameworks exists for functional programming? has some examples of web frameworks for functional programming languages and I know http://cs.hubfs.net/blogs/tomasp/archive/2010/05/09/14050.aspx is an article how to write an ASP.Net MVC 2 Web app in F#.

As I have been searching articles on F# and a lot of examples and people's praise has come in the form of log parsers. But that is always followed up with a caveat of something along the lines of "I'm not allowed to use the language at work" (paraphrased of course). I'll try to find more examples.

I have been toying with the idea of creating a text-based MUD (Multi-User Dungeon) in F# but I never seem to have the time.

3
  • MUD == Multi User Dungeon? Commented Nov 18, 2010 at 16:16
  • @Robert Harvey - that would be correct. I will edit that in for those who don't know.
    – Jetti
    Commented Nov 18, 2010 at 16:39
  • I forgot to add WebSharper. It allows developers to create web sites entirely in F#.
    – Jetti
    Commented Nov 18, 2010 at 18:53
0

I looked at F# briefly when I wanted to write a SQL parser, which I ended up implementing in Haskell. That said, you could use F# anywhere you would use C#, but would it be worth it? If you'll be doing a lot of functional programming, using F# will be worthwhile, as the syntax for functional constructs is friendlier. If you're doing mostly OO, it's probably better to stick with C#.

8
  • I agree with Larry Coleman. Why would somebody do something in F# when they can do it in C#? I think it is safe to say that the majority of times that F# is beneficial over C# it isn't in a commercial app situation.
    – Jetti
    Commented Nov 18, 2010 at 19:06
  • 1
    I think this is largely the MS perspective too. C# and VB.NET were presented as either/or to each other, but I think the goal with F# (and to a lesser extent, languages like IronPython and Boo) is to encourage polyglot programming: using different languages with unique features to solve different kinds of problems. Commented Nov 18, 2010 at 19:11
  • @Jetti F# is very good for any kind of data processing, for parsing, and for any calculation-heavy field where correctness matters. Functional Programming in general offers a level of expressiveness that makes many kinds of programs very easy to write. None of that is very visible, front-end stuff like a website or a GUI application, areas where C# excels. You can use LINQ to get some of the FP in C#, but F# is a more natural language to express such code. Commented Nov 18, 2010 at 19:14
  • @CodexArcanum - I completely agree with you. I guess I was misuing "Commercial App", I should've said "Everyday Consumer Application (i.e Office, Firefox, etc)"
    – Jetti
    Commented Nov 18, 2010 at 19:50
  • 1
    @Jetti: I would recommend Haskell over F# if you're interested in learning functional programming. You'll learn it faster because you won't be able to do procedural or OO in it. Commented Nov 18, 2010 at 21:28
0

Iron JS.

I personally think that it is odd that the only application I know of that is written in F# is something that allows you to write in a language other than F#.

To me, that says a lot about the true value of functional programming. People can celebrate how "beautiful" it is all they want--if it were so beautiful, people would be using it more.

3
  • I disagree with your last statement. People DO use F#, in fact, they use it so much that it has become a part of Visual Studio 2010. F# has been adopted in financial sector just as Erlang has been adopted in telecommunications. Just because I can write an app in F# doesn't mean I will just to do so. The language (and FP languages in general) have their strengths and weaknesses and so they will be widely used in areas that can benefit from their strength!
    – Jetti
    Commented Nov 22, 2010 at 1:50
  • @Jetti, Sure thing. Its been over 30 years since functional programming was conceived, but I'm sure its bound to knock procedural programming off its pedestal any day now. I'm not saying it doesn't have some merits--some things can be done quite elegantly with functional. What I am saying is that it will never dominate.
    – riwalk
    Commented Nov 22, 2010 at 4:08
  • @Stargzer712 - I agree that it will never dominate and for good reason too.
    – Jetti
    Commented Nov 22, 2010 at 13:36

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