> Also, a lot of functional programming concepts has been since added to big programming languages like Javascript and hell, even Java has lambdas now.
JavaScript was "functional" since the beginning. It always had statically scoped first class closures.
But as you say, that's not very special anymore...
If you want to do primarily FP with a data oriented touch you want stuff like:
- immutable, persistent data structures
- a comprehensive library around transforming these
- expression based syntax
- idiomatic (functional style code) performance is good
- a comprehensive library around manipulating, composing and transforming functions
- more stuff that I'm forgetting right now
Clojure gives you all of that and _more_, such as a powerful REPL, macros, multiple dispatch, spec instrumentation, proper namespaces, ...
Personally I write JS in a very straight forward, functional style. But the differences is still night and day in many dimensions. There are fundamental issues with the language that are unfortunately unfixable. Just having first class function objects isn't cutting it.
JavaScript was "functional" since the beginning. It always had statically scoped first class closures.
But as you say, that's not very special anymore...
If you want to do primarily FP with a data oriented touch you want stuff like:
- immutable, persistent data structures
- a comprehensive library around transforming these
- expression based syntax
- idiomatic (functional style code) performance is good
- a comprehensive library around manipulating, composing and transforming functions
- more stuff that I'm forgetting right now
Clojure gives you all of that and _more_, such as a powerful REPL, macros, multiple dispatch, spec instrumentation, proper namespaces, ...
Personally I write JS in a very straight forward, functional style. But the differences is still night and day in many dimensions. There are fundamental issues with the language that are unfortunately unfixable. Just having first class function objects isn't cutting it.