It is not only that functional languages are more succinct, easier to reason about and are more readable, they also often come with significantly better type systems. Some have type systems sophisticated enough to specify nearly all the legal states and guarantee these are the only states the program can stay in at compile time. One can look at languages with dependent types for that.
On the more practical front, Erlang proved itself over three decades to be one of the best choices when it comes to fault-tolerant, highly concurrent systems. Jane Street is using OCaml for all of their trading software, Morgan Stanley has moved to Scala, and so on and so forth.
Now I write mostly in python and go, learning a bit of haskell.
And I realise that is an unfair target, but there is very little user facing FP software. The only one I can think of I have used is xmonad, which is both hard to use and fairly buggy
Or maybe Genera.
Or maybe Remote Agent software used by Nasa Deep Space 1?
Or eventually the train control systems running on software from Siscog?
Huh, TIL:
My first functional programming language was Caml Light, back in 1996. Followed by Prolog and eventually Lisp.
All alongside traditional lambda calculus and logic proofs, with ocasional references to a programming language called Mirada.
So for me, Lisp is functional programming and I don't buy into this modern notion that only Haskell is the poster child of FP.
Lisp is definitely a functional language. It's just not as pure as Haskell, which is the poster child for Maximally Pure FP, if not for the functional style.
We were already doing functional programming while Haskell was still using diapers.
Meanwhile, this is good news for people creating startups or otherwise being competitive. Having advanced programming languages where your competition is mired down having to churn out 10x more code, is certainly a benefit. Although not every (many?) business really comes down to technical ability.
Actually I would rather see this happening, than the continuous effort on Firefox OS.
(reading http://clean.cs.ru.nl and looking at the archives of the mailing list may give the impression the project died at the end of 2011, but http://clean.cs.ru.nl/Download_Clean has binaries from November 2014)
So, if you find nowadays Java apps and openoffice work fine (or, you don't use them), and you are careful about which extensions you add, then you will probably be fine.
Interesting, to be honest I don't really use any extensions. I do use Java apps and openoffice these days and they work fine.
Thanks for your response! I'll have to try adding some extensions and see what happens.
Purely functional programming still remains a purely academic exercise because it fetishizes type systems to the detriment of all other concerns in software engineering. Although I do enjoy some of the things that come out of that kind of work, e.g. parser combinators.
This is false.
Also, as far as I can see, only you mentioned pure functional programming. Sophisticated type systems do not mandate purity; see Scala for example.
As for the existence of sophisticated type systems I again don't disagree with you. I'm having a lot of fun playing with TypeScript and mixing and matching dynamically and statically typed portions of my code. I'm looking forward to see where that line of work leads because it is an extremely pragmatic approach to type systems and helps me program instead of adding unnecessary cognitive overhead.