The reliance on protocols in Internet engineering is another significant difference from the practice in the software industry to use application programming interfaces (APIs). Internet protocols specify only how processes running on different computing devices on the Internet communicate “across the wire” and do not impose any restriction on how the applications and protocol machines are implemented (this is best left to the creativity and competitiveness of the software developers).
By contrast APIs are commonly used to program most applications by developers. APIs are, however, most often owned and under the control of the software vendor. In addition, they are often written for a specific operating system only. Users and developers of telecommunication equipment are informed of the “open APIs” for the product so as to develop or customize services. Remember, however, that “open APIs” introduce a certain level of dependency on (1) the software vendor and (2) the operating system vendor, because they both have intellectual property rights and change control.
Protocols are preferred on the Internet for these reasons, since any Internet standard or practice must be completely vendor- and computing-platform independent. Moreover, a core design principle for the Internet and the World Web is that the various parts should be designed and implemented independently of each other, and yet still interoperate flawlessly.
This is experienced daily by everyone using file transfer, e-mail, the web, or any other standards-compliant applications over the Internet, on a truly global scale