Polymorphism is GOTO on steroids

James O'Coplien talk at GOTO 2017.

  • GOTO
  • Polymorphism
Written by Mark McKeown • 23 Apr 2018 • 2 min read • Last updated 2 months ago

James O'Coplien talk at GOTO 2017 (https://www.youtube.com/watch?v=ZrBQmIDdls4) is full of interesting and controversial ideas and comments. His book "Advanced C++ Programming Styles and Idioms" (https://www.amazon.co.uk/Advanced-Programming-Society-Culture-East-Central/dp/0201548550/ref=asap_bc?ie=UTF8(opens new window) ) from 1991 was a seminal work on C++, it heavily influenced the patterns community and the evolution of C++, which also meant it influenced Java as well. He was also part of the Agile community and in the talk he highlights a reference that identifies him as being one of the originators for the ideas behind eXtreme Programming.

The talk is very interesting, it points out the connection between the object oriented community, the pattern community and the the agile community through the common set of influential people. Some of the quotes and thoughts are challenging: "Java is the only language you cannot do object oriented programming - you are a class oriented programmer", "If you cannot understand your program you test it, test driven development", "test driven development leads to bottom up designs" etc

He also points out that a focus on tools like docker, Jenkins, test frameworks, mock frameworks, CI etc is counter to the Agile Manifesto, "Individuals and interactions over processes and tools". However, in one part I think he actually contradicts himself. He challenged people to describe the primary purpose of the Start Of Day in SCRUM. Most people in the audience responded with it was a chance to communicate and exchange information among team members, he corrects them pointing out that it is a mini-planning meeting for re-prioritisation. He imposes process over people's natural inclination to use the meeting to interact with each other.