Earlier quoted context omitted.
Different languages provide different features and support these patterns in different ways. I think they’re complementary. Not to mention that learning different languages can be quite valuable for one’s career, as it is another skill one can employ for practical purposes and for distinguishing oneself among peers.
> Different languages provide different features and support these patterns in different ways. I think they’re complementary. I mean, I didn’t learn that much from learning FP that didn’t already know from reading Uncle Bob’s clean code and style guides. In fact I think for awhile it just made me a pretentious clown who wouldn’t stop calling things monads. Furthermore, haven’t most languages today pretty much converg…
If anything, functional programming has absolutely won.
Support for first-class and higher order functions, anonymous functions and so in are absolute must-haves for any modern language.
These features have become so bread and butter that people will not even think about them as functional programming but these were the main features that functional programming languages pioneered.
Now, PURE functional programming like in Haskell is not mainstream. It is a testament to the success of functional programming that these days we mostly think about these extreme examples when we talk about functional programming.
If anything, it is object oriented features that are becoming optional. At least the class based approach is starting to decline for good with many new languages explicitly not implementing them.
Also, I strongly disagree that all programming languages are starting to converge. It seems you just picked languages that are very similar which I agree, will not expand your mind much.
Learning languages like Common Lisp, APL, Forth, Prolog, Haskell and so on though will will greatly expand your understanding of programming.