If you consider Scala functional, I think it wins the popularity contest: used by startups and established companies (Linkedin, Twitter, Meetup, Verizon, Morgan Stanley, Autodesk, HuffPo, etc, etc...) and is not "we use it in a dark corner where nobody cares" and more like "betting the whole farm on it".
I would "bet the whole farm" on Haskell before Scala.
That's not to make a dig at Scala. It's way better than Java. It's also really complicated, and the need for JVM compatibility is a big part of that. Then you have the compile speed issues, the problematic tool chain, and the fact that average Java programmers, given Scala, will create unmaintainable nightmares.
I'd use Scala over Haskell when I wanted JVM interoperability, or if I needed to train people up quickly. For a "bet the whole farm" play, existing programmer familiarity actually matters a bit less-- "the whole farm" is rarely bet on a one-month project-- and I'd pick Haskell first.
Sure, I understand, for some orgs, betting on Haskell is the best choice.
What I meant is that they're not using Scala in a small obscure project that nobody cares/know (as most early adoptions of languages are in big companies), they have a significant amount of code and their main business runs on it.
(I'm not talking about the ideal case/what I would like, I'm talking about what I've observed in my bubble )
Thank you for attacking that misconception. Haskell is, at this point, a very practical language, and becoming increasingly that way over time as it proves to have the best enforcement model for the functional style among the options out there. For good and bad, we're not in the 1990s anymore.
it might be pop sci, but the explanation I heard long time ago is:
creativity is boosted by beta brain waves, (associated with daydreaming)
Physical activities that don't fully engage your brain (walking, exercising, taking a shower, etc..) increment beta waves.
On the other hand, increased focus and alertness, is associated with alpha waves, coffee produces that effect thus reduces your creativity
While Haskell itself doesn't bring too much new things, is has been a good vehicle to explore new concepts.
Mind you, all ideas need to mature before having widespread use, so is not hard to think on most of the ideas "being around for 30 years"
Applicative functors seems an example of something "new" as the paper introducing it is form 2008.
> is has been a good vehicle to explore new concepts
Which concepts exactly?
> Applicative functors seems an example of something "new"
Too small a thing to be fundamental, to require any degree of re-learning.
Of course there is a lot of new fancy syntax sugar and all that, but the nature of the lazy languages did not change a bit since Miranda. If you knew Miranda, you'll learn Haskell in no time, and 30 years in between them would not make it any harder.
Dependent types are making their way into more practical applications now, yes, but the concept itself is also not new at all, it stems from the Curry-Howard isomorphism, which is known for far more than 30 years.
So, back to the point: anyone who knew how to program 30 years ago would easily pick it up now, without any significant learning.
I guess my point is if you learned to program 30 years ago using functional programming with dependent types and category theory, it must have been an awesome place to work/study, and I envy you.
Which university it was?