Una de las enseñanzas que me dejó un gran amigo, es que todo este mundo de la construcción del software aún se encuentra en una etapa de crecimiento y maduración. Una muestra de esto es la falta de un lenguaje común entre los profesionales de esta area a nivel mundia, y es algo que simplemente se puede evidenciar con el uso de conceptos como: Estandar, Especificación y Protocolo.
Estas tres palabras son, para bien o mal, usadas de diferentes maneras, en diferentes contextos y por diferentes actores, llevando al lector en muchas ocasiones a la confusion sobre el texto leido y sobre los conceptos.
Estos son las definiciones que considero establece las diferencias entre los tres conceptos:
Protocolo: Reglas de comunicación que se establecen para que dos sistemas (hardware o software) puedan intercambiar información.
Estándar: son las normas que se establecen ante entidades nacionales o internacionales para permitir el acomplamiento de diferentes elementos que han sido creados por diferentes entidades. Busca escencialmente los siguientes objetivos:
- Simplificación
- Unificación
- Normalización
Ejemplos:
- ISO 3166 Códigos de Países
- ISO 4217 Códigos de monedas
- ISO/IEC 14496 Codificación de objetos audiovisuales
Especificación: son las normas que define una empresa para permitir la interoperabilidad de las herramientas que desarrolla con herramientas de otras empresas o de terceros, no es avalada por un ente internacional (de lo contrario sería considerada un protocolo) pero si es un documento valido que el fabricante se compromete a cumplir tanto como las personas que buscan comunicarse con su componente.
Ejemplos:
- Microsoft Open Specifications: Microsoft Exchange Active Sync
- Que REST es un protocolo para servicios WEB. NO!, REST es un estilo arquitectónico, SOAP si es un protocolo para la transferencia de objetos.
Algún otro ejemplo donde se malinterpreten estos tres conceptos?

This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 2.5 Colombia License.