Cuestiones de APIs

Especificaciones, interoperabilidad y largas guerras de derechos de autor

Cuando en términos de programación se habla de una API, hablamos de una serie de especificaciones: una “Interfaz de Programación de Aplicaciones” contiene una serie de prototipos, es decir, los nombres de las funcionalidades, los parámetros que usa como entradao salida, y una descripción de lo que se espera que ésta haga. Pero cuando nos preguntamos cómo hace eso que dice, se queda en blanco. El cómo se hace, que es donde está la chicha, es la implementación.

¿Qúe es lo bueno de las APIs? Pues que se pueden implementar de diversos modos, generando patrones de uso y facilitando el buen diseño de aplicaciones. Para los programadores es una herramienta fantástica, pues nos permiten no solo ayudar a afianzar buenas prácticas, sino que el manteniemiento del código es mejor: si tienes que cambiar un componente por dentro pero mantienes la interfaz, los cambios son invisibles desde otras capas de código, pues desde ellas solo ven los prototipos.

¿Deberían patentarse las APIs? Evidentemente el derecho de autoría sobre los patrones es algo que debe reconocerse, pero aplicar copyright sobre algo que a fin de cuentas es humo es absurdo. Las implementaciones pueden tener copyright, evidentemente, pues hay un trabajo y un desarrollo de ideas tangible y real, pero no las APIs. Cerrar su uso solo llevaría al empobrecimiento del desarrollo software, lo que a todas luces es algo malo.

De ahí el interés en el caso de Oracle contra Google por las APIs de Android, cuyo prototipado es básicamente idéntico a las de Java, aunque sus implementaciones se parezcan como un huevo a una castaña. Que compartan las interfaces nos permite a los programadores de Java ser capaces de trabajar con Android con una transición prácticamente nula, permitiéndonos poder tener nuestras aplicaciones en entornos y dispositivos diferentes “picando el código” una única vez, lo que es algo fantástico. Oracle debería alegrarse de que de esta manera, Java siga siendo un lenguaje muy vivo, en lugar de intentar ahogarlo con patentes y falta de atención a su mantenimiento, tal como está haciendo con MySQL. MariaDB cada vez le está comiendo más y mas terreno, y no es por casualidad.