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.

JohnFx
  • 19,052
  • 8
  • 65
  • 112
  • 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. – Kavet Kerek Nov 18 '10 at 15:59
  • 1
    This question appears to be off-topic because it is a poll based question. –  Jul 15 '13 at 16:00
  • jet.com, ecommerce startup initially written in F# was bought by Walmart couple of years ago for $3+ billions – KolA Aug 21 '19 at 09:22

5 Answers5

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

Jörg W Mittag
  • 101,921
  • 24
  • 218
  • 318
  • 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. – GrandmasterB Nov 22 '10 at 05: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. – Robert Harvey Nov 28 '10 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.

Kaveh Shahbazian
  • 332
  • 1
  • 13
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.

Jetti
  • 5,163
  • 2
  • 26
  • 41
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#.

Larry Coleman
  • 6,101
  • 2
  • 25
  • 34
  • 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 Nov 18 '10 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. – CodexArcanum Nov 18 '10 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. – CodexArcanum Nov 18 '10 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 Nov 18 '10 at 19:50
  • @Jetti: I would add to your first comment that reasons to use F# instead of C# are most likely also reasons to skip both and use Haskell. – Larry Coleman Nov 18 '10 at 21:04
  • @Larry - I haven't gotten around to learning Haskell unfortunately. I do like the integration with the .Net framework that F# offers though that Haskell just doesn't have (AFAIK) – Jetti Nov 18 '10 at 21:23
  • 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. – Larry Coleman Nov 18 '10 at 21:28
  • "using different languages with unique features to solve different kinds of problems": I like this approach, much better than stuffing a lot of unrelated features into one language in the hope that it will be appropriate for all kinds of problems. – Giorgio Dec 18 '12 at 12:47
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.

riwalk
  • 7,660
  • 3
  • 29
  • 32
  • 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 Nov 22 '10 at 01: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 Nov 22 '10 at 04:08
  • @Stargzer712 - I agree that it will never dominate and for good reason too. – Jetti Nov 22 '10 at 13:36