Summarizing protocol-oriented programming and object-oriented programming