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é.
Hey Hola está genial la información, gracias por fin logré comprender cada concepto.Super sigue así
ResponderEliminar