49. ¿Qué son las librerías y las APIs?

Librerías y APIs son conceptos básicos de programación. Son términos parecidos, que muchas veces se mezclan, pero realmente son distintos.

¿Qué es una librería?

Una librería es una serie de código de programación. Un código que alguien ha creado para que puedas utilizar en otros proyectos.

El objetivo de una librería es el de hacer más fácil y sencillo el desarrollo de ciertas funciones. Típicamente están orientadas a solucionar un problema concreto. En otras palabras, una librería te ofrece ciertas funciones de tu aplicación ya hechas y programadas.

Un ejemplo podría ser una librería para cargar y mostrar imágenes que provienen de un servidor en una aplicación.

Si tuvieras que programar esta función desde cero podrías hacerlo sin problemas. Tendrías que descargar la imagen, guardarla en el almacenamiento interno del móvil y finalmente cargarla en la interfaz del usuario. El caso es que, aunque estos pasos parezcan rápidos y simples, realmente no lo son.

Una librería de carga de imágenes te permitiría convertir todos esos pasos en un solo. No te tendrías que preocupar de gestionar la descarga, de guardarla de forma local ni de cargarla en la interfaz. Quizás solo tendrías que decirle : “Cárgame esta imagen que está en esta dirección web en esta parte de mi interfaz”. Obviamente esto lo harías con código de programación y no en el lenguaje de las personas 🙂

¿Qué es una API?

Las siglas de API vienen a ser Application Programming Interface. Una API podríamos decir que son las instrucciones que permiten utilizar una librería o un servicio. Son como un librito de instrucciones entre programas.

En el caso de la librería de carga de imágenes hemos comentado que todos los pasos que tendríamos que hacer desde cero se podrían resumir, quizás, en una sola instrucción. Pues bien, esta instrucción/es nos las va a ofrecer la API.

La idea general es que utilizamos las librerías a través de las APIs. La API actúa como un librito de instrucciones sin necesidad de que tengamos que saber qué hay detrás de ella. Para nosotros la librería en sí va a ser una caja negra. Una caja negra en la cual vamos a confiar que hace su trabajo bien y únicamente nos limitaremos a invocarla a través de la API.

Entendiendo las librerías y las APIs a través de un ejemplo del día a día

Con el fin de acabar de entender las diferencias entre ambos conceptos podríamos hacer una analogía con una máquina de café.

Hace unos 20 años hacíamos café a través de cafeteras que teníamos que rellenar de agua, de café, enroscarlas, ponerlas al fuego y esperar unos 5 minutos a que se hiciera.

Sin embargo hoy en día es mucho más fácil. Con un cafetera Nespresso podemos hacer un café en 1 minuto. Simplemente colocamos una cápsula, apretamos un botón y listo.

Bien, podríamos decir que la cafetera Nespresso es una librería para hacer café y su librito de instrucciones es su API.

Estas cafeteras nos facilitan el hecho de hacer café. Lo hacen todo mucho más sencillo. Además no tenemos que entender cómo funcionan. Lo único que tenemos que hacer es mirar el librito de instrucciones para saber dónde poner la cápsula y qué botón pulsar para que salga el café.

¿Qué beneficios tienen las librerías

Los programas de hoy en día están compuestos de muchas librerías. Es muy extraño que a día de hoy se creen programas que no tengan absolutamente ninguna librería, que se hayan hecho completamente desde cero, que ningún código sea externo.

Esto se debe a que librerías en programación son muy populares porque obviamente tienen varios beneficios.

1. Agilizan el desarrollo

Quizás el principal y mayor beneficio. Utilizar librerías significa añadir un código que, de no haberlo añadido a través de una librería, seguramente tendrías que crearlo tú. Esto permite ser más rápidos a la hora de programar, más eficientes y más productivos. Permiten ahorrar tiempo y coste de desarrollo.

2. Hacer viables ciertos proyectos

Muchos proyectos de hoy en día no hubieran sido posibles de no existir el mundo de las librerías. Si tuviéramos que crear absolutamente todo desde cero sería imposible que la tecnología avanzara tan rápido.

Hoy en día es posible hacer muchos proyectos posibles porque no tenemos que reinventar la rueda. Podemos aprovechar código ya creado por otras personas para completar ciertas partes de un producto.

3. Código probado

Si elegimos bien la librería, si utilizamos librerías con cierta reputación estaremos obteniendo seguramente un código mejor y más fiables que el que nosotros mismos podríamos hacer desde cero.

Las buenas librerías son usadas y mantenidas por muchas personas. Esto permite que la detección y la corrección de errores sea más rápida que si lo tuvieran que hacer únicamente una o dos personas. Si 4 ojos ven más que 2, 400 ven más que 4 🙂

4. Nos abren los ojos a nuevas posibilidades

Quizás no es la principal razón por la cual la gente utiliza librerías, pero es por la cual he creado este episodio.

Cuando vemos qué tipos de librerías existen, qué servicios podemos utilizar y qué posibilidades nos ofrecen, muchas veces se nos enciende la luz. Una librería puede dar origen a un nuevo proyecto.

Es por eso que a partir de aquí vamos a ver algunas de las librerías que existen que nos pueden dar algunas ideas para crear nuevos proyectos.

Librerías y servicios interesantes

Conclusión

Estas son algunas de las APIs que podemos utilizar en nuestros proyectos. Espero que hayan podido ser de ayuda y hasta puedan dar nuevas ideas para nuevos proyectos. Si créeis que puede ser interesante ver más ejemplos simplemente decírmelo y ya haré otro episodio de esto.

En resumen, las librerías son piezas de código hecho por otras personas que nos simplifican y nos hacen más fácil el desarrollo de software. Las APIs no son más que las instrucciones de cómo utilizar estas librerías o servicios. Por último hemos estado viendo algunos ejemplos de APIs que, si les damos unas cuantas vueltas y pensamos cómo las podríamos utilizar, seguro que dan lugar a nuevas y buenas ideas.

Como siempre sabes que puedes escuchar y recomendar este podcast a través de las plataformas como iTunes y iVoox. También puedes contactar conmigo a través de mi formulario de contacto para cualquier duda, sugerencia o proyecto. ¡Nos escuchamos el miércoles que viene a las 8AM!