Shifting Paradigm

Object- Oriented:
1. Started from  Simula 67 (created in 1967),  only went mainstream in 1983 by C++.
2. Java created in 1997 but too slow and memory – hungry for high-performance applications, only flourishes in 2000s after hardware improvement.
    

Functional Programming: 1958  Lisp, mainstream now in Clojure, Scala, Haskell…

Other major languages add-on “FP” :
1. Groovy : memoization : ability of the runtime to cache function return values automatically),
2. Java 8 : Lambda blocks ie. higher-order functions.
3. JavaScript: numerous functional features,
4. C++: lambda blocks in 2011 standard, including Boost.Phoenix library

Complect: to join by weaving and twining together : Interweave. (Rich Hickey 《Simple Made Easy》)

Michael Feathers , author of 《Working With Legacy Codes》 in Twitter:

“OO makes code understandable by encapsulating moving parts,
FP makes code understandable by minimizing moving parts. ”

“Moving Parts” are: variables scoping, visibility, mutable state.
OO controls them, FP eliminates them by Immutability data.

Clojure ‘s Selling Point : removes concurrency concern from developers just as Java JVM removes garbage collection concern (by automating it).

Leave a comment