People often use Darcs as an example of why functional programming is a bad idea "for industry". But the irony is that Darcs has a state-heavy mutable data storage model. This is what makes it slow, not Haskell.
Compare Darcs to Git's completely immutable model, and you'll notice that you get fast Git clients even if you implement it in a language like Ruby.
The "takeaway" from functional programming is that immutability scales, no matter what syntax you implement the pure data structures in.
Since starting with Haskell many years ago, I don't think I've written any application that's been dependent on a mutable datastore. With nearly every business application requiring auditing and historical data retention, doing things right even gets you bullet-point features for free!
I definitely fall on the Erlang side, but (especially if you shrug off the fanatic outliers) the differences are actually quite minor.