> ...the careful observer may wonder...what was the essential difference to the traditional view of programming. After all, the old cornerstones of procedural programming reappear, albeit embedded in a new terminology: Objects are records, classes are types, methods are procedures, and sending a method is equivalent to calling a procedure. True, records now consist of data fields and, in addition, methods; and true, the feature called inheritance allows the construction of heterogeneous data structures, useful also without object-orientation.
> Was this change of terminology expressing an essential paradigm shift, or was it a vehicle for gaining attention, a “sales trick”?
As someone who thinks OOP is oversold, I think I agree with him. I've long felt that OOP dresses itself up in too many layers of terminology. That has a cost in the complexity of the resulting code written. Agree or disagree?
When speaking of object-oriented programming, I think going back to its roots helps to clarify the idea:
Meaning of "Object-Oriented Programming" According to Dr. Alan Kay
Wirth points out that Algol used := for assignment. That is also what Smalltalk uses, which leaves = for testing equality (and == for testing object identity). Of course, after using the equals sign for assignment for so long, I often stumbled when I was in Pharo.