Diferencias entre api, framework y librería

 



En la programación existen cientos de conceptos que un programador debe de saber. Es cierto que para lograr esto se necesitan años de experiencia ensayando y cometiendo errores, así que es una buena idea ir aprendiendo constantemente, y un tema muy importante al momento de programar es saber diferenciar entre una librería, un framework y una API. Eso es lo que te voy a mostrar ahora, espero poder hacer que comprendas esto con facilidad.

 

Para poder ver las diferencias primero te voy a explicar qué es cada uno de estos conceptos para luego hacer una conclusión denotando las desigualdades.

 

¿Qué es una librería? 

 

Una librería es un conjunto de funciones y subprocesos codificados en algún lenguaje de programación, estas tienen el fin de facilitar la creación de un software y mejorar su funcionamiento. Las librerías no son ejecutables, pero son indispensables para que otro programa ejecutable funcione perfectamente.

 

En otras palabras, una librería es un archivo, que generalmente, colocamos al principio de todo programa al momento de escribir el código.

 

Las librerías tienen código previamente escrito para que tú no tengas que escribirlo en cada momento, por ejemplo, en C++ utilizamos la librería <cstring> para el manejo de cadenas por medio de los arreglos, ¿no? Cuando quieres ver la longitud de una cadena, utilizas la función strlen()” y listo, pero, ¿en algún momento has escrito el código de esa función? ¡No! Tú solo la colocas y ya está, no más. Imagina qué pasaría si la librería <cstring> no existiera, pues tendrías que escribir todo el código para cada función que quieras implementar en tu proyecto.

 

Con todo lo anterior, nota lo indispensables que son las librerías, de ellas hay muchas, y para todos los lenguajes de programación.

 

Una librería puede ser estándar del lenguaje, o escrita por ti mismo, así la puedes utilizar para cada proyecto que empieces y también, poder compartirla con cualquier persona de cualquier parte.

 

¿Qué es un framework?

 

Podemos definir a un framework como un conjunto de funciones que se enfocan en una tarea determinada. Un framework es como un dibujo que tú debes ir pintando a tu gusto.

 

En la programación hay cosas “obligatorias” de hacer, pero que se pueden implementar de maneras diferentes, un ejemplo claro sería la interfaz de una página web, piensa un poco cómo podría ser, ¡existen infinidades de estilos! Y esto es algo “obligatorio”, para eso están los frameworks, para hacer estas cosas “obligatorias” más fácil y rápido.

 

Vamos a utilizar el ejemplo del párrafo anterior: la interfaz de una página web. Sabemos que hay infinidades de estilos, pero la forma de hacer cada estilo es muy parecida. Por eso se utiliza un framework como Ruby on Rails para realizar esta tarea.

 

En conclusión, un framework es un conjunto de funciones que se enfocan en realizar una tarea determinada. Un framework se compone de muchas librerías, y por lo general, los frameworks son proporcionados por otros desarrolladores, siendo un poco más complicado crear uno por tu propia cuanta a diferencia de una librería.

 

¿Qué es una API?

 

Podemos definir la API como un conjunto de procesos que permiten la resolución de problemas a partir de la segmentación de códigos. Todos estos procesos, métodos o funciones se encuentran incluidos dentro de una serie de pasos compuestos por una entrada y una salida, en otras palabras, un algoritmo.

 

API es simplemente una abreviación de su nombre en inglés: Aplication Programming Interface, el cual, en español, se refiere a la interfaz de programación de aplicaciones.

 

Con frecuencia, una API es usada como método de enlace para lograr la comunicación entre diferentes componentes. Permitiendo el acceso a ciertos servicios que de otra forma no pueden ser obtenidos.

 

Un ejemplo podría ser Telegram. Telegram tiene una API que le permite a sus usuario modificar ciertas cosas de su aplicación. Con la API de Telegram puedes desarrollar bots que cumplan con diferentes tareas, también crear encuestas, juegos y más. Si Telegram no proporcionara esa API, ¿cómo podría una persona hacer cambios en la aplicación? No habría manera. Por eso en la API, Telegram comparte librerías, funciones, subpreocesos y demás cosas con el fin de que su aplicación sea “moldeable” a los gustos de los usuarios. Con esto no te quiero decir que podrás modificar todo Telegram, pues las compañías solo comparten información limitada para que los cambios ocurran solo en tu dispositivo.

 

Ejemplos como el anterior hay muchos, y todos varían del uno al otro. Sin embargo, cumplen con las mismas características.

 

En muchos proyectos, por ejemplo, en la creación de una aplicación, muchos programadores se valen de las APIs para aligerar trabajo ya que con sus característica de proporcionar funciones de uso general, se evitan programar todo desde el principio.

Diferencias entre API, framework y librería

 

Ya visto los conceptos anteriores, puede ser más sencillo comprender las diferencias entre una librería, framework y API. Vamos a verlas en general.

 

Una librería te permite tener control total sobre tus proyectos, porque claro, eres tú quien crea las funciones y todo el código de cada una, y a sus defectos, también puedes usar otras librerías estándar del lenguaje o una proporcionada por otra persona. Es indiferente de dónde provengan ya que normalmente todas están documentadas permitiéndote utilizarlas como quieras. Con un framework no podrías hacer esto, con un framework es el desarrollador quien te proporciona el conjunto de funciones, sin embargo, no tienes acceso a ninguna de ellas. Un framework solo te muestra lo necesario para que cumplas con tu objetivo de una forma rápida y efectiva.

 

Una clara diferencia entre una librería y un framework es el tiempo que tardas en crear el proyecto, siendo mucho más rápido con un framework. Por otro lado, es indiscutible que con una librería obtienes un programa con más eficiencia (dependiendo de las habilidades que tengas como programador). 

 

Luego finalizamos con una API, que a diferencia de las anteriores, no te permite crear un software, sino comunicarte con otro ya elaborado. Piensa en las apps que tienen un botón para compartir algo en Facebook, ese botón usa la API de Facebook para permitir una comunicación entre ambas aplicaciones. Las APIs facilitan el trabajo porque el código es fácil de entender e implementar.

 

Si te preguntas cuál es mejor, te digo que todo depende de qué quieras hacer, siempre tomando en cuenta las diferencias entre cada uno.

 

Espero que esto haya aclarado tu duda y ahora logres notar la diferencia, si no, entonces deja un comentario con tu pregunta, te responderé.

1 comentario:

  1. Hey Hola está genial la información, gracias por fin logré comprender cada concepto.Super sigue así

    ResponderEliminar