A write-up by David Cassel on proponents and opponents of OOP.
Ilya Suzdalnitski, in his article, is proposing functional programming as an alternative to object-oriented programming.
In this email exchange, Alan Kay, the person who invented the term Object-Oriented, outlined the original intent behind the term Object:
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I’m not aware of them.
Alan has written a series of some good class design and implementation guidelines post. URL: Object Design and Implementation
Rule #1: Practice Drawing Make Good Classes
Rule #2: Documation!
Rule #3: Alan’s Class Template (“ACT”)
Rule #4: Never Walk, But Fly!!!
Rule #5: Always evaluate How We Fly!
Rule #6: No Private Variable Shall Have Direct Access to the Class Public Interface
Rule #7 & #8: All about Numbers!!