Anthropomorphism Gone Wrong: Poor Motivating Example for OOP

I’d like to show an example of anthropomorphism gone wrong. It was given to me as a classic justification of why so called “Object Oriented Programming” is better than procedural programming. You may have learned it in your first lesson about OOP.

(Note: I’m not disparaging OOP here, just the example. For genuine OOP bashing, see here.)

via Anthropomorphism Gone Wrong: Poor Motivating Example for OOP.

From slashdot comments that I found funny:

Lets say you’re a traveling auto salesman, and you would like to sell your cars to different stores around the state. You could either drive each car, one at a time, to each assigned destination and hitchhike back to your starting point (always with a towel). Or you could come up with an algorithm for taking all the cars, putting them into a truck, and finding the shortest path that visits each auto store, saving gas and giving you the street credibility to comment on the appropriateness of OOP vs procedural languages. Then, after having spent a more fulfilling life than most people by being so efficient, you can watch as people invoke your name, and come up with a poor analogy which doesn’t really explain OOP vs procedural languages that shows up on Slashdot.

Why the above was funny?  See this wiki article on Dijkstra’s algorithm which the first quoted editorial used as a source:

Dijkstra’s algorithm, conceived by computer scientist Edsger Dijkstra in 1956 and published in 1959,[1][2] is a graph search algorithm that solves the single-source shortest path problem for a graph with non-negative edge path costs, producing a shortest path tree. This algorithm is often used in routing and as a subroutine in other graph algorithms.