When uncorrelated entities (programs) have to communicate, they have to figure out how to communicate with one another. Goals are a constant language, and goal-based objectives can bridge communication specifics

This counterpoints the current API model, which has programmers implementing detail work that should be handled by the computer

From @ JCR Licklider