One thing I noticed learning Swift is how it’s approach to object orientation differs from the classical approach I was taught in college, back when OO was the dominant way of designing software. This post

I can’t find any academic papers about “protocol oriented programming”. How does it differ from “design by contract”?

I searched the ACM Digital Library for “Protocol Oriented Programming”. None of the top 50 hits were about the actual thing that Apple’s Swift developers are talking about.