Based on your actual experience, a whitepaper or other respected referenceable study, is F# currently a viable tool for corporate-/enterprise-level reporting?
Attention: Before voting to close this question as "not constructive", please read the bit at the bottom.
Background
I currently work at a large corporation which makes heavy use of many different reporting tools, including (but hardly limited to) SAS, Cognos, SSRS and even a good smattering of COBOL. Each tool has its rightful place and many of them are, in most respects, equivalent in feature set, etc. Most of our tools are able to output to PDF, Excel and databases relatively easily and in those cases work wonderfully.
Unfortunately, my organization, like many, makes use of Excel spreadsheets and, love it or hate it, we spend many hours writing .NET console applications to extract information from and insert information into Excel spreadsheets. (I'm not interested in arguing the merits or detriments of this approach. It is what it is and there's no way I can change it.)
As great as the reporting technologies listed above are, they fall flat when it comes to advanced ETL from or into spreadsheets. They just weren't designed for it and while they are perfectly adept at formatting a report as an Excel spreadsheet, they aren't very good at updating an existing spreadsheet or extracting data in some very specific way (extract only values highlighted in red, for example). So we end up writing a LOT of .NET console applications to do this bit. (Again - not interested in debating the approach. It is what it is. I know - I don't like it either.)
.NET is, in my opinion, a fantastic framework and flexible enough to handle almost any programming task, so we could theoretically handle all of the reporting in .NET. But - trying to handle all of the reporting in .NET takes too long. We have to write all the boilerplate stuff ourselves. I like to leverage the power, simplicity and robustness of the actual reporting tools we already have.
So, we end up writing two applications for a single task - for example, a SAS job to load the data from multiple data sources, do the transformations and store the result in a permanent or temporary location, and a second .NET job to take the results and load them into the spreadsheet. (I know.)
The Point
I've been seeing and hearing a great deal about F# in the past couple years and I've dabbled in it a bit myself. I learned OCAML in college and I love functional programming. When called for, I'd love to do all the programming for a particular report on a single platform (if not a single language). The question, though, is whether the F# language and the .NET framework are fully ready for enterprise-level reporting - and I'm talking reports that must be run accurately and efficiently. Microsoft is certainly selling it hard, but I want to know if anyone with experience in other reporting technologies has actually tried it in a production environment. How does it compare with other reporting technologies and can it be easily integrated into a corporate environment? How did you address security? Done right, what kind of memory-profile does F# require (we're talking millions of records)? Does it process tabular data well? Is it efficient? How easy is it to maintain (especially if the code grows)? 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)? How much work (programming hours, etc) is required compared to other reporting systems (for similar results)?
If you have no experience with F#, or if you use F# exclusively, then I'm not particularly interested in your opinion - I'd like to hear from those who have actually bridged the gap and can relate, from experience, the opportunities and pitfalls in using F# as a reporting engine for big data (millions of records, outputted to a variety of formats).
I've seen a few questions that already cover some of this ground:
- Statistical functionalities of F# (or .NET libraries)
- Your experiences with Matlab/F#/R for data analysis and modeling algorithms
But they are a few years old. Several versions later, is F# up to the task? Or am I a dog barking up the wrong tree?
EDIT
Just for clarity, I am particularly interested in F#'s new information-rich programming. Prior to F# 3.0, it was merely an interesting technology, but F#'s recently added capabilities to use database type providers and its query expressions make it look like a viable alternative to other report authoring technologies. Microsoft is certainly suggesting it is.
An acceptable answer would contain a first-hand account (or a reference to a documented case study) of implementing an enterprise-level reporting engine built in F# and a comparison to another reporting technology of any performance gains or losses, etc. It doesn't have to be too detailed - just enough to convince an average (competent) manager that F# would be an appropriate/inappropriate technology for bulk/batch data processing. Has it been done? Who did it? What were the results? How complicated was the implementation (relative to similar technologies)? Does it perform well?
Why am I asking a subjective question?
Like most good stackoverflow members, I frequently vote to close subjective questions. According to the FAQ, subjective questions should be avoided but are not banned entirely. The FAQ links to six guidelines for great subjective questions which I have tried to follow. Please read those guidelines before voting to close this question.