I've read some texts about declarative/functional programming (languages), tried out Haskell as well as written one myself. From what I've seen, functional programming has several advantages over the classical imperative style:
- Stateless programs; No side effects
- Concurrency; Plays extremely nice with the rising multi-core technology
- Programs are usually shorter and in some cases easier to read
- Productivity goes up (example: Erlang)
Imperative programming is a very old paradigm (as far as I know) and possibly not suitable for the 21st century
Why are companies using or programs written in functional languages still so "rare"?
Why, when looking at the advantages of functional programming, are we still using imperative programming languages?
Maybe it was too early for it in 1990, but today?