Question d’entretien chez Citi

What is protocol oriented programming? How do we use it? Why do we use it? When have you used it?