F# and “enterprise-level” reporting [closed]

How does it compare with other reporting technologies and can it be easily integrated into a corporate environment?

I don’t know how F# compares with other reporting technologies but I have deployed it in more than one corporate environment and it is basically the same as C#, i.e. easy and robust.

How did you address security?

Same as C#.

Done right, what kind of memory-profile does F# require (we’re talking millions of records)?

I’ve found one GC bug in .NET in 5 years of use and it was not specific to F#. I’ve had several problems with large objects (again, not F# specific) but, in general, the GC is robust and efficient and collects aggressively.

I’ve processed billions of records and found F# to be extremely fast and very reliable. Note that F# is used in Microsoft’s Bing AdCenter (for ad placement) and Microsoft’s Halo 3, both of which require terabyte datasets to be processed.

Does it process tabular data well?

Yes and you have easy parallelism (see the Array.Parallel module) but its main strength relative to other tools is in manipulating structured data like trees and graphs.

Is it efficient?

Yes.

Our current client, one of the world’s largest insurance companies, saw a 10x performance improvement switching from C++ to F# (as well as a 10x reduction in code size).

A previous client saw a performance improvement moving a compiler from OCaml to F#. This is impressive because OCaml was specifically designed for writing compilers and is extremely fast.

A former client had us rewrite their trading platform and we saw 100x throughput and latency improvements even though we were moving from non-GC C++ to GC’d F#.

How easy is it to maintain (especially if the code grows)?

Easy to maintain. In ML, adding functions is a no-brainer and the static type system catches gives you lots of feedback when you extend union types.

Our current client put their first F# code live last April and its maintainer had no problems despite not having had any training in F# (or OCaml) at all.

What kind of third-party add-ons, plug-ins, etc. are required to get something working (or can it do most everything out of the box)?

We have never used any (but we sell two!). The only third party things I’ve considered are WPF controls which are, again, not F# specific.

How much work (programming hours, etc) is required compared to other reporting systems (for similar results)?

No idea, sorry. Looks like we’ve got some work with Dialogue and HP Extreme coming up so I’ll find out soon enough…

How complicated was the implementation (relative to similar technologies)?

F# code is much simpler than older mainstream languages like C++, C# and Java.

I’d like to stress that F# really pays dividends when you use it to attack problems that are too complicated to solve using more traditional tools, rather than just rewriting old code in F#.

For example, our current client have been using a business rules engine that cost them around £1,000,000 to buy but it doesn’t solve their business problem (struggles with big tables, struggles with mathematics) so I wrote them a demo of a bespoke business rules engine in one week in around 1,000 lines of F# code. I could not have done that with any other tool.

Leave a Comment