Que diferencia existe entre API, biblioteca y Framework?

publicado por: Anonymous

Son términos muy próximos y ya he encontrado textos que intercambian estos conceptos, como si en determinadas situaciones las definiciones sean casi iguales.

¿Cuales son las definiciones técnicas que distinguen una API de una biblioteca o un Framework?

¿Existen situaciones en que sean permitido intercambiar estos términos sin cometer violar la correcta definición técnica?

solución

  • Una biblioteca es un conjunto de elementos (funciones, clases, tipos predefinidos, constantes, variables globales, macros, etc) que es posible utilizar en un programa para facilitar la implementación de ese programa.

  • API viene del inglés “Application programming interface” que significa “Interfaz para programación de aplicaciones”. Es la parte de una biblioteca a la que accede un programa que usa la biblioteca; haciendo así el uso de la biblioteca independiente de los detalles de implementación. Una API puede ser implementadas por distintas bibliotecas.

  • Un framework es un conjunto integrado de herramientas que facilitan un desarrollo software. Puede incluir APIs y bibliotecas. Pero también puede incluir otros elementos como herramientas de depuración, diseño gráfico, prototipado, edición, etc.

Con frecuencia se usan los términos API y biblioteca indistintamente. Pero hay que tener en cuenta que una API es siempre única (dejando aparte distintas versiones) y que una API no incluye detalles de implementación. Mientras que una biblioteca no tiene por qué ser única y debe contener una implementación completa. Que una API sea única es muy importante, es lo que permite escribir un programa en C++ para Linux y que ese programa, sin modificar, sirva para Mac si las bibliotecas que usa están disponibles para ambos sistemas.

Un ejemplo de biblioteca es JavaMail de Oracle. Es posible hacer un programa que envíe correos electrónicos programando diréctamente sockets. Pero es mucho más rápido utilizar JavaMail o cualquier otra biblioteca para correos eléctronicos pues estas bibliotecas ya implementan la funcionalidad que necesitas. Además de ser más rápido también es menos propenso a errores, sobretodo en una biblioteca de amplio uso; pues el código es probado por millones de usuarios y la comunidad de desarrollo hará en general un mejor trabajo que el que puede hacer el equipo de un programa individual.

CORBA es una API. Pero puede haber una implementación para Linux, otra para Mac, etc.

Un ejemplo de framework sería Unity3D que ofrece un conjunto de herramientas que facilitan el desarrollo de videojuegos.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *