Emails with Bob Harper

I ran into Bob Harper at POPL in Philadelphia. We chatted briefly in the hallway. We invariably disagree on most topics when we talk, but the conversation was pleasant enough. I enjoy talking to Bob, since he has a strong world-view and is a very smart guy. When I got home, Bob wrote me a followup note. After a few emails I noticed that he had updated his draft book, Practical Foundations for Programming Languages, to include two chapters that touch on topics related to object-oriented programming. I believe that a previous version of the book only mentioned objects once, in a footnote, so I was curious to read what Bob had to say about objects. I have an special interest in this question given the strong and unsupported criticisms that Bob has made about object-oriented programming in his blog, Existential Type. Over the next few weeks we exchanged almost 50 emails about the book and object-oriented programming in general.

I previously started posting the messages, because it is an interesting story. I viewed our discussion as a continuation of the debate that we began in person at POPL. Bob never manages to support his criticisms of object-oriented programming, and in the end shows that his criticisms are based on misunderstanding of the subject. At least, that is my interpretation of our exchange. He conclusions are completely different, I am sure. I have since decided to remove the posts. Just because Bob is impolite, does not mean that I have the right to be as well. If my actions offended anyone, I apologize. I will write some separate notes on his book, based on the email discussion. He has already modified the book and removed some of the unsupported claims based on our conversation.

I am still concerned with the fundamental internal conflict and lack of understanding between different camps within programming languages. It is unhealthy and reduces our reputation within the larger community. No other sub-discipline within computer science is so fundamentally at odds with itself. I will find another way to address these issues.